【笔记】 vim命令大全

vim

光标控制命令

“h”、”j”、”k”、”l”分别控制光标左、下、上、右移一格。

“w”: 光标跳到下个字的开头。

“e”: 光标跳到下个字的字尾。

“b”: 光标回到上个字的开头。

“)” : 光标移至句尾

“(“ : 光标移至句首

“}”: 光标移至段落开头

“{“: 光标移至段落结尾

“nl”: 光标移动该行的第n个位置,例如: “5l”表示移动到该行的第5个字符。

“ctrl+b”: 屏幕往后移动一页。

“ctrl+f”: 屏幕往前移动一页。

“ctrl+u”: 屏幕往后移动半页。

“ctrl+d”: 屏幕往前移动半页。

—数字”0”: 移动到文本的开头。

“G”: 移动到文件的最后。

—“$”: 移动到光标所在行的行尾。

“^”: 移动到光标所在行的行首。

文本插入文本

“i” : 在光标前

“I” : 在当前行首

“a”: 光标后

“A”: 在当前行尾

“o”: 在当前行之下新开一行

“O”: 在当前行之上新开一行

“r”: 替换当前字符

“R”: 替换当前字符及其后的字符,直至按ESC键

“s”: 从当前光标位置处开始,以输入的文本替代指定数目的字符

“S”: 删除指定数目的行,并以所输入文本代替之

“ncw”或”nCW”: 修改指定数目的字

“nCC”: 修改指定数目的行

删除命令

“dd”: 删除整行

“dw”: 删至下一个字的开头

“ndw”或”ndW”: 删除光标处开始及其后的n-1个字

“do”: 删至行首

“d$”: 删至行尾

“ndd”: 删除当前行及其后n-1行

“x”或”X”: 删除一个字符,x删除光标后的,而X删除光标前的

“Ctrl+u”: 删除输入方式下所输入的文本

复制命令

“yw”: 将光标所在之处到字尾的字符复制到缓冲区中。

“nyw”: 复制n个字到缓冲区。

“yy”: 复制光标所在行到缓冲区。

“nyy”: 例如: “6yy”表示复制从光标所在行开始6行字符。

“p”: 将缓冲区内的字符写到光标所在位置。

查找与替换

“/text”: 在文件中向前查找 text

“?text”: 在文件中向后查找 text

“n”: 在同一方向重复查找

“N”: 在相反方向重复查找

“ftext”: 在当前行向前查找 text

“Ftext”: 在当前行向后查找 text

“ttext”: 在当前行向前查找 text,并将光标定位在 text 的第一个字符

“Ttext”: 在当前行向后查找 text,并将光标定位在 text 的第一个字符

“:set ic”: 查找时忽略大小写

“:set noic”: 查找时对大小写敏感

“:ranges/pat1/pat2/g”: 用 newtext 替换 oldtext

“:m,ns/oldtext/newtext”: 在 m 行通过 n,用 newtext 替换 oldtext

“:g/text1/s/text2/text3”: 查找包含 text1 的行,用 text3 替换 text2

撤消与重复

“u”: 撤消最后一次修改

“U”: 撤消当前行的所有修改

“.”: 重复最后一次修改

“,”: 以相反的方向重复前面的 f、F、t 或 T 查找命令

“;”: 重复前面的 f、F、t 或 T 查找命令

“n”: 重复前面的 / 或 ? 查找命令

“N”: 以相反方向重复前面的 / 或 ? 命令

末行模式操作

“:set nu”: 列出行号

“:set nonu”: 取消列出行号

“:set ic”: 搜索时忽略大小写

“:set noic”: 取消在搜索时忽略大小写

“:n”: 跳到文件中的某一行,“n”表示一个数字,如输入数字15,再回车就会跳到文本的第15行

“:!cmd”: 运行shell命令cmd

文本缩进

“ctrl+i”或”tab” 插入文本时,插入移动的宽度,移动宽度是事先定义好的

“:set ai”: 打开自动缩进

“:set sw=n”: 将移动宽度设置为 n 个字符

“n>”: 使 n 行都向右移动一个宽度,例如 3>> 就将接下来的三行每行都向右移动一个移动宽度

保存和退出

“:w”: 保存文件但不退出 vi

“:w file”: 将修改保存在 file 中但不退出 vi

“:wq” 或 “ZZ” 或 “:x”: 保存文件并退出 vi

“:q!”: 不保存文件,退出 vi

“:e!”: 放弃所有修改,从上次保存文件开始再编辑