码迷,mamicode.com
首页 > 系统相关 > 详细

linux文本编辑之王——vim

时间:2016-08-10 01:13:10      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:vim模式转换   命令模式下的操作   扩展模式下的操作   vim多文件模式   vim多窗口模式   vim编辑二进制文件   

linux文本编辑之王——vim

vim:全屏的、模式化的文本编辑器
vi:visual interface
vim:vi improved(vi增强版)

一、vim [options] [file ..]
 vim file 打开或新建一个文件
   如果该文件存在,文件被打开并显示内容
   如果该文件不存在,当编辑后第一次存盘时创建它
  vim +# file 打开文件,并让光处于第#行
  vim + file 打开文件,并让光处于文件末行vim + file 打开文件,并让光处于文件末行
  vim + /pattern file 打开文件,让光标处于第一个被PATTERN匹配到的行的行首
  vim –b file 二进制方式打开文
  vim –d file1 file2…  比较多个
  vim  -m file 以只读方式打开文件
  vim –e file 打开文件后,直接进入扩展命令模式

二、击键行为是依赖于 vim的 “模式”
 vim三种主要模式:
  命令模式(默认):移动光标,剪切/粘贴文本
  输入(编辑)模式:修改文本
  扩展命令模式:保存,退出等

三、vim模式转换:
 1,命令模式——>输入模式
  i:在当前光标所在字符的前面,转为输入模式
  a:在当前光标所在字符的后面,转为输入模式
  o:在当前光标所在行的下方插入新行,并转为输入模式
  I:在当前光标所在行的行首,转为输入模式
  A:在当前光标所在行的行末,转为输入模式
  O:在当前光标所在行的上方插入新行,并转为输入模式

 2,命令模式——>扩展模式 :——冒号
   创建一个命令提示符,处于底部的屏幕左侧

 3,编辑模式——>命令模式 ESA按键
 4,扩展模式——>命令模式 ESA按键
 5,编辑模式无法直接转换到扩展模式
 6,锁定和解锁 Ctrl+s,Ctrl+q

四、关闭文件
 1,命令模式:
  ZZ 保存并退出
  ZQ 不保存退出

 2,扩展模式:
  :w 保存
  :q 退出
  :wq 保存并退出
  :x 保存并退出 等同于:wq
  :q! 不保存退出
  :w! 强行保存

五、扩展命令模式下的常用命令:
 r filename 从其它文件中读取内容到当前文件中
 w  filename  将当前文件另存为一个新文件
 addr1,addr2w filename 将当前文件的第#行到第#行另存为一个新文件
 !command 直接启动其它命令,执行完成之后,按ENTER键返回vim界面
 r!command 直接启动其它命令,并把执行结果插入到当前位置
 #d 删除第#号
 #,#d 删除第#行到第#行
 1G 跳转到文件首行
 G 跳转到文件末行

六、命令模式下的操作:
 1,移动光标:
  k:上 j:下 h:左 l:右
  #(kjhl)上下左右跳转#

 2,行内跳转:
  ^: 跳转至行首的第一个非空白字符;
  0: 跳转至行首
  $: 跳转至行尾

 3,句子间跳转:(——上一句 )——下一句
 4,段落间跳转{——上一段 }——下一段
 5,文件首尾行跳转[[——首行 ]]——尾行

 6,翻屏操作
  Ctrl+f: 向文件尾部翻一屏
  Ctrl+b: 向文件首部翻一屏
  Ctrl+d: 向文件尾部翻半屏
  Ctrl+u:向文件首部翻半屏

 7,字符编辑:
  x: 删除光标处的字符;
  #x: 删除光标处起始的连续#个字符
  xp: 交换光标所在处的字符及其后面字符的位置
  ~:转换大小写

 8,替换命令(r, replace)
  r: 替换光标所在处的字符
  R:切换成REPLACE替换模式

 9,删除命令:
  dd,D: 删除光标所在的行
  #dd:删除连续的多行
  d$: 删除光标所在处到行尾(留有空行)
  d^:删除光标所在处到非空行首
  d0:删除光标所在处到绝对行首

 10,删除字符的后(留有空行)转为输入模式:
  cc,C: 复制光标所在的行后转输入模式
  #cc:删除连续的多行后,转为输入模式
  c$: 删除光标所在处到行尾后,转为输入模式
  c^:删除光标所在处到非空行首后,转为输入模式
  c0:删除光标所在处到绝对行首后,转为输入模式
  
 11,复制命令:
  yy,Y: 复制光标所在的行
  #yy:复制连续的多行
  y$: 复制到行尾
  y^:复制光标所在处到非空行首
  y0:复制光标所在处到绝对行首

 12,粘贴命令:
  p(小写):如果删除或复制的内容为整行,则粘贴至光标所在行的下方
             如果删除或复制的内容为非整行,则粘贴至光标所在字符的后面
  P(大写):如果删除或复制的内容为整行,则粘贴至光标所在行的上方
          如果删除或复制的内容为非整行,则粘贴至光标所在字符的前面

 13,#i“Input”:自动复制“Input”并粘贴#次

 14,撤消更改
  u撤销最近的更改
  #u撤销之前多次更改
  U 撤消光标落在当前行后所有对此行的更改
  按Ctrl+r重做最后的“撤消”更改
  . 重复前一个操作
  n.重复前一个操作n次

七、扩展模式下的操作:
 1,地址定界
  #: 具体第#行
  #,#: 从第#行开始,到第#行结尾
  #,+#: 从第#行开始,向后延续#行
  .: 当前行
  $: 最后一行
  .,$-1 当前行到倒数第二行
  %:全文, 相当于1,$
   /pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
  #,/pat/从第#行开始,一直到第一次被pat匹配到的行结束
  /pat/,$从第一次被pat1模式匹配到的行开始,一直到文件尾行

 2,行间移动:
  #G:跳转至第#行
  G:跳转至最后一行
  1G, gg: 跳转至第一行

 3,查找
  /PATTERN:从当前光标所在处向文件尾部查找
  ?PATTERN:从当前光标所在处向文件首部查找
  n:与命令同方向
  N:与命令反方向

 4,查找并替换
   s: 在扩展模式下完成查找替换操作
  格式:s/PRTTERN/STRING/修饰符
        s///或者s@@@或者s###
  PATTERN:可使用正则表达式
  STRING:不能使用模式,但可以使用\1, \2, (后项引用)
    可以使用“&”引用前面查找时查找到的整个内容
  修饰符:
  i: 忽略大小写
  g: 全局替换;默认情况下,每一行只替换第一次出现
  gc:全局交互替换,每次替换前询问

 5,可视化模式
  允许选择文本块
   v 面向字符
   V 面向行
   ctrl-v 面向块
  可视化键可用于与移动键结合使用:
   kjhl , ) , } ,方向箭头
  突出显示的文字可以被删除,复制,变更,过滤,查找替换

八、vim多文件模式
 vim FILE1 FILE2 ...
  :next 下一个
  :prev 上一个
  :first 第一个
  :last 最后一个
  :wall 保存所有文件
  :qa,:qall 退出所有
  :wqa,:wqall 保存并退出所有


九、vim多窗口模式
 1,单文件多窗口
  Ctrl+w,s: split, 水平分割
  Ctrl+w,v: vertical, 垂直分割

 2,多文件多窗口
  vim -o|-O FILE1 FILE2 ...
  -o: 水平分割
  -O: 垂直分割

 3,窗口间切换:
  Ctrl+w按两次自动跳转到下一个窗口
  Ctrl+w,kjhl方向键
 
 4,取消多窗口
  ctrl+w,q:取消相邻窗口
  ctrl+w,o:取消全部窗口
  :wqall 保存并退出所有文件

十、vim寄存器
 有a-z 26个字母命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容
 字母命名寄存器可以在不同会话间共享
  如:3"tyy 表示复制3行到t寄存器中
  "tp  表示将t寄存器内容粘贴到当前位置
 未指定,将使用无命名寄存器
 有10个数字命名寄存器,用0-9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。
 数字命名寄存器不能在不同会话间共享

十一、vim编辑二进制文件
 以二进制方式打开文件 vim –b binaryfile
 扩展命令模式下,利用xxd命令转换为可读的十六进制格式 :%!xxd
 编辑十六进制文件
 扩展命令模式下,利用xxd命令转换回二进制 :%!xxd –r
 保存退出

十二、vim工作特性定制
 扩展模式:当前vim进程有效
 更改配置文件:永久有效
  全局:/etc/vimrc
  个人:~/.vimrc(没有此文件时可自行建立)
 
 1,行号
  set nu:set number显示行号
  set nonu:set nonumber取消显示
 2,自动缩进
  set ai:启用
  set noai:禁用
 3, 搜索高亮
  set hlsearch:启用
  set nohlsearch:禁用
 4, 语法高亮
  syntax on:启用
  syntax off:禁用
 5, 忽略字符的大小写
  set ic:忽略
  set noic:不忽略
 6, 括号成对匹配
  set sm:set showmatch 启用
  set nosm:set noshowmatch 禁用
 7, 文件格式
  set fileformat=unix 设置文件格式为unix格式
  set fileformat=dos 设置文件格式为dos格式
 8, 设置文本宽度(只能用于vim)
  默认宽度80个字符
  :set textwidth=65 设置左侧宽度
  :set wrapmargin=15 设置右侧宽度
 9,设置tab宽度
  set ts(tabstop)=#

本文出自 “爱情防火墙” 博客,请务必保留此出处http://183530300.blog.51cto.com/894387/1836182

linux文本编辑之王——vim

标签:vim模式转换   命令模式下的操作   扩展模式下的操作   vim多文件模式   vim多窗口模式   vim编辑二进制文件   

原文地址:http://183530300.blog.51cto.com/894387/1836182

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!