VIM常用编辑命令

来源:互联网 发布:简述js的事件委托 编辑:程序博客网 时间:2024/05/22 20:28

VIM编辑命令


切换到插入模式命令

  • i : 再光标位置进行插入(或者说再光标前插入)
  • a : 在光标后进行插入
  • I : 再光标所在行的行首进行插入
  • A : 再光标所在行的行尾进行插入
  • o : 小写字母o,再光标所在行的下面插入一个新行,2o表示插入连个空行
  • O : 大写字母O,再光标所在行的上面插入一个新行,2O表示插入连个空行

移动光标

  • 0 : 数字0,移动到行头
  • ^ : 到本行第一个不是blank字符的位置(blank就是空格、tab、换行、回车)
  • $ : 到本行的行尾
  • /pattern : 搜索pattern字符串(若是搜索到多个匹配,按n键到下一个,按N键到上一个)

undo(恢复)redo(重做)

  • u : undo恢复操作
  • Ctrl + r : redo操作
  • U : 大写字母U,撤销某一行最近所有操作

重复命令

  • . : (小数点)可以重复上一次命令
  • n.: 重复上一次命令n次

使用VIM编辑器显示行数

  • set number : 行号出现
  • set nonumber: 行号消失
  • 在vimrc文件中加入set number命令

VIM复制粘贴命令

  1. 选定文本块

    • 使用v进入可视编辑模式,移动光标选定内容
  2. 复制的命令是y(yank提起)常用命令如下:

    • y : 将使用可视模式选定的内容复制到缓冲区
    • yy : 复制整行的内容(nyy或者yny复制n行,n为数是)
    • y^ : 复制当前到行头的内容
    • y$ : 复制当前到行尾的内容
    • yw : 复制一个word(nyw或者ynw复制n个word)
    • yG : 复制当前到档尾(nyG或者ynG复制到第n行)
  3. 剪切的命令是d(delete),d与y的命令类似

    • d : 将使用可视模式选定的内容剪切到缓冲区
    • dd : 剪切整行的内容(ndd或者dnd剪切n行,n为数是)
    • d^ : 剪切当前到行头的内容
    • d$ : 剪切当前到行尾的内容
    • dw : 剪切一个word(ndw或者dnw剪切n个word)
    • dG : 剪切当前到档尾(ndG或者dnG剪切到第n行)
  4. 粘贴命令p即(put放下)

    • p : 小写字母p,代表粘贴到游标后(下)
    • P : 大写字母P,代表粘贴到游标前(上)

打开/保存/改变文件

  • e <path/to/file> : 打开一个文件
  • w : 保存
  • saveas <path/to/file> : 另存为<path/to/file>
  • x,ZZ,wq : 保存并退出(ZZ不需要输入冒号和回车

在当前行上移动光标

  • fa : 移动到下一个字母为a的地方, 3fa:再当前行查找第三个出现a的位置
  • ta : 到a前一个字符的位置
  • F和T : 跟f和t一样,只不过方向相反

高效移动光标

  • nG : 到第n行(* 或者使用 :n 命令到第n行 *
  • gg : 到第一行(相当于1G或者:1
  • G : 到最后一行
  • w : 到下一个单词的开头
  • e : 到下一个单词的结尾

注意:如果你认为单词是用默认方式,那么就用小写的字母e和w。默认上说,一个单词由字母数字和下划线组成,如果认为单词是由blank字符分割,那么就要用大写的字母E和W

  • % : 匹配括号移动,包括),],}
  • *# :匹配光标当前所在的单词移动到下一个,上一个(说明:*和#符号主要针对英文单词有效

很多命令都跟光标的移动联动 <start position><command><end position>
例如:0y$从头复制到尾,ye从当前拷贝到本单词最后一个字符
例如:dta删除当前到a的所有内容


区域选择<action>a<object><action>i<object>

action可以是任何命令,如d删除、y拷贝、v可视模式
object可以是一个w单词、W一个以空格分割的单词、s一个句子、p一个段落。也可以是特殊字符” ’ ) ] }
假设有一字符串(map(+)(“foo”))光标在第一个o的位置上
* vi” : 选择foo
* va” : 选择”foo”
* vi) : 选择”foo”
* va) : 选择(“foo”)
* v2i): 选择map(+)(“foo”)
* v2a): 选择(map(+)(“foo”))