Linux下VI编辑器命令行,记录一下,用到的时候方便查询。
游标控制
h 游标向左移 j 游标向下移 k 游标向上移 l (or spacebar) 游标向右移 w 向前移动一个单词 b 向后移动一个单词 e 向前移动一个单词,且游标指向单词的末尾 ( 移到当前句子的首部 ) 移到下一个句子的首部 { 移到当前段的首部 } 移到下一段的首部 [[ 移到当前区段的首部 ]] 移到下一个区段的首部 0 移到当前行的首部 $ 移到当前行的尾部 ^ 移到当前行第一个非空白字符的地方 + or RETURN 移动到下一行的第一个字符 - 移动到上一行的第一个字符 n | 移动到当前行的字符n的地方 H 移动到当前屏幕的首部 M 移动到当前屏幕的中部 L 移动到当前屏幕的尾部 nH 移动到当前屏幕首部下的n行 nL 移动到当前屏幕尾部上的n行 Ctrl-F 移动到下一屏 Ctrl-B 移动到上一屏 Ctrl-D 向下移动半屏 Ctrl-U 向上移动半屏 z RETURN 刷新屏幕,调整屏幕,使当前的游标在刷新后的屏幕的首部(是不是不明白???不明白的话,试试就知道是什么意思了) z . 刷新屏幕,调整屏幕,使当前的游标在刷新后的屏幕的中部 z - 刷新屏幕,调整屏幕,使当前的游标在刷新后的屏幕的尾部 Ctrl-L 刷新屏幕,不调整屏幕位置 Ctrl-R 刷新屏幕,不调整屏幕位置 /text 向下搜索text / 重复上次的搜索的内容向下搜索一次 ?text 向上搜索text ? 重复上此搜索的内容向上搜索一次 n 重复上此的搜索,向下搜索 N 重复上此的搜索,向上搜索 /text/+n 移动到text所在行的下面n行 ?text?-n 移动到text所在行的上面n行 nG 移动到n行 :n 移动到n行 G 移动在最后一行
内容编辑
A:当前行的尾部追加内容 i:游标前插入内容 I:游标后插入内容 o:在鼠标所在行的下面添加内容 O:在鼠标所在行的上面添加内容 ESC:退出编辑模式 Ctrl-T:移动到下一个tab Backspace:向后移动一个字符 Ctrl-U:删除当前 cw:删除游标所在的字符,然后进入编辑模式 cc:删除游标所在的行,然后进入编辑模式 C:删除从游标所在的位置到行尾的字符,然后进入编辑模式 dd:删除当前行 ndd:删除第n行 D:删除当前行游标所在的位置后面的字符 dw:删除邮编所在的字符 d}:删除当前段剩余的字符 d^:删除游标前到行首的字符 c/pat:删除游标后面到第一次匹配字符间的内容 dn:删除游标后面到下一个匹配字符间的内容 dfa:删除当前行游标到匹配字符间的内容(匹配的字符也将被删) dta:删除当前行游标到匹配字符间的内容(匹配的字符不被删) dL:删除从游标到屏幕的最后一行之间的内容 dG:删除从游标到文件末尾之间的内容 J:连结上下两行的内容 p:在游标后面插入buffer中的内容 P:在游标前面插入buffer中的内容 rx:用x替换字符 Rtext:用text从游标开始处进行替换 u:撤销最后的改变 U:还原当前行的内容 x:向后删除游标所在位置的字符 X:向前删除游标前面的字符 nX:删除前面的n个字符,游标所在的字符将不会被删 .:还原最后的改变 ~:反转字母的大小写 y:拷贝当前行到新的buffer yy:拷贝当前行 "xyy:拷贝当前行的buffer名为x的buffer ye:拷贝当单词的末尾
文件操作
:w 写文件 :w! 写文件,忽略警告信息 :w! file 覆盖文件,忽略警告信息 :wq 写文件之后退出编辑 :q 退出编辑器 :q! 强制退出编辑器 :w file 把文件的内容写到另一个文件 ZZ 退出编辑器,如果文件有改动,则保存再退出 :x 退出编辑器,如果文件有改动,则保存再退出 :n1,n2w file 把n1行到n2行间的内容写到文件file :n1,n2w >> file 把n1行到n2行间的内容追加到文件file :e file2 在当前文件的命令行模式下编辑file2 :e! 重新从磁盘加载文件 :e# 交替编辑文件 :n 编辑地下一行 :n! 编辑地下一行(忽略警告) :r file 在游标后面插入文件 :r !command 在当前行的后面,插入运行命令后的输出内容