本文介绍 Vim 常用操作命令及快捷键,算是入门级使用。
一、打开、保存、关闭文件
- :w 保存文件
- :w vpser.net 保存至 vpser.net 文件
- :q 退出编辑器,如果文件已修改请使用下面的命令
- :q! 退出编辑器,且不保存
- :wq 退出编辑器,且保存文件
:w 要保存文件路径 可以保存文件到指定路径下
二、移动
2.1、字符间跳转
- j 下移一行
- k 上移一行
- h 左移一个字符
- l 右移一个字符
- 空格键 向右
- Backspace 向左
- Enter 移动到下一行首
-
移动到上一行首- shift + 6 跳转到行首
- shift + 4 跳转到行尾
2.2、单词间跳转
- w:跳转至下一个单词或后一个单词的词首
- e:跳转至当前或下一个单词的词尾
- b:跳转至当前或上一个单词的词首
#COMMAND
由#指定一次跳转的单词数
三、跳转
- n+ 向下跳n行
- n- 向上跳n行
- nG 跳到行号为n的行
- gg 跳转到文件头
- shift + g 跳转到文件末尾
- G 跳至文件的底部
- :n 代表跳转到第n行,如:79 就跳转到第79行
四、设置行号
- :set nu 显示行号
- :set nonu 取消显示行号
五、翻屏
- ctrl + f 下翻一屏
- ctrl + b 上翻一屏
- ctrl + d 下翻半屏
- ctrl + u 上翻半屏
- ctrl + e 向下滚动一行
- ctrl + y 向上滚动一行
六、插入
- a 在当前光标位置的右边添加文本
- i 在当前光标位置的左边添加文本
- A 在当前行的末尾位置添加文本
- I 在当前行的开始处添加文本(非空字符的行首)
- O 在当前行的上面新建一行 OR shift + o
- o 在当前行的下面新建一行
- R 替换(覆盖)当前光标位置及后面的若干文本
- J 合并光标所在行及下一行为一行(依然在命令模式)
七、删除、恢复
- x 删除当前字符
- nx 删除从光标开始的n个字符
- dd 删除当行
- ndd 向下删除当前行在内的n行
- dw 从光标当前的位置开始删除,直到删到单词最后
- daw deletea a word 删除一整个单词
- u 撤销上一步操作
- ctrl + r 恢复上一步被撤销的操作
- U 撤销对当前行的所有操作
- df + 单个字符 可以快速删除当前光标到字符之间所有字符
7.1、跨行多字符删除
- v (visual)模式,jkhl 跨行选中字符
- shift + 4/6 光标到行尾/首
- d 删除
八、查找
- 光标停留在单词字母上,输入 shift + * 可快速选中该单词,通过n或者N进行上一个或下一个的匹配
- shift+4/6 行首/尾
- shift+{/} 代码块首/尾
九、复制/粘贴
9.1、基本复制
- yy 将当前行复制到缓冲区,也可以用 ‘ayy’ 复制,a 为缓冲区,a 也可以替换为a到z的任意字母,可以完成多个复制任务
- nyy 将当前行向下n行复制到缓冲区,也可以用 “anyy 复制,”a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务
- yw 复制从光标开始到词尾的字符
- nyw 复制从光标开始的 n 个单词
- y^ 复制从光标到行首的内容
- y$ 复制从光标到行尾的内容
- p 粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用”ap 进行粘贴
- P 粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用”aP 进行粘贴
- v 进入待处理,yy 复制,p 粘贴
- v 进入待处理,shift + 4 行尾 选中行内容进行复制;shift + 6 行首 选中行内容进行复制
9.2、复制列
- ctrl+ v 按列选
- jk 选中多列
- 大A(shift+a)向后修改;shift+i(或者大写I)向前修改;d 删除列
- esc 退出
9.3、全选
- ggvG 全选
- shift + v 或者 V 可以快速选中一行
- gv 回到之前选中的文本块
9.4、选择一个单词
快速选中一个单词,按 v 按 e 即可
十、替换
表达式:[range]s/from/to/[flags]
- :s/old/new 用 new 替换行中首次出现的 old
- :s/old/new/g 用 new 替换行中所有的 old
- :n,m s/old/new/g 用 new 替换从 n 到 m 行里所有的 old
- :%s/old/new/g 用 new 替换当前文件里所有的 old
10.1、替换例子
- :1,10s/from/to/ 表示在第 1 到第 10 行(包含第1,第10行)之间搜索替换;
- :10s/from/to/ 表示只在第 10 行搜索替换;
- :%s/from/to/ 表示在所有行中搜索替换;
- 1,$s/from/to/ 同上
十一、搜索
- /vpser //向光标下搜索 vpser 字符串,vpser 可以是正则表达式
- ?vpser //向光标上搜索 vpser 字符串
- n //向下搜索前一个搜素动作
- N //向上搜索前一个搜索动作
- *(#) //当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.
- g*(g#) //此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串.
- ^search 要查找仅出现在行首的 search
- search$ 要查找仅出现在行尾的 search
其中:在搜索单词后面紧跟 \c
可以忽略大小写搜索。
或者:set ignorecase smartcase
设置即可。
十二、编辑其他文件
- :e otherfilename 编辑文件名为 otherfilename 的文件
十三、修改文件格式
- :set fileformat=unix 将文件修改为 unix 格式,如 win 下面的文本文件在linux下会出现^M
十四、查找帮助
当你不知道怎么处理时,直接输入 help 可以看到帮助文档的起点,ZZ 是退出或者:q,不建议使用
查找关于某个字母的命令 :help x 查找关于 x 的命令。