[TOC]
vim常用操作命令及快捷键,欢迎一起补充完善~
一、打开、保存、关闭文件
- :w 保存文件
- :w vpser.net 保存至vpser.net文件
- :q 退出编辑器,如果文件已修改请使用下面的命令
- :q! 退出编辑器,且不保存
- :wq 退出编辑器,且保存文件
二、保存文件
- :w 要保存文件路径 可以保存文件到指定路径下
三、移动
3.1、字符间跳转
- j 下移一行
- k 上移一行
- h 左移一个字符
- l 右移一个字符
- 空格键 向右
- Backspace 向左
- Enter 移动到下一行首
-
-
移动到上一行首 - shift + 6 跳转到行首
- shift + 4 跳转到行尾
3.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 撤销对当前行的所有操作
8.1、跨行多字符删除
- v (visual)模式,jkhl跨行选中字符
- shift + 4/6 光标到行尾/首
- d 删除
九、查找
- 光标停留在单词字母上,输入 shift + * 可快速选中该单词,通过n或者N进行上一个或下一个的匹配
- shift+4/6 行首/尾
- shift+{/} 代码块首/尾
十、复制/粘贴
10.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 行首 选中行内容进行复制
10.2、复制列
- ctrl+ v 按列选
- jk选中多列
- 大A(shift+a)向后修改;shift+I向前修改;d删除列
- esc 退出
10.3、全选
- ggvG 全选
- shift + v 或者V 可以快速选中一行
- gv 回到之前选中的文本块
10.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
11.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
十三、编辑其他文件
- :e otherfilename 编辑文件名为otherfilename的文件
十四、修改文件格式
- :set fileformat=unix 将文件修改为unix格式,如win下面的文本文件在linux下会出现^M
十五、查找帮助
当你不知道怎么处理时,直接输入help可以看到帮助文档的起点,ZZ是退出或者:q,不建议使用
查找关于某个字母的命令 :help x 查找关于x的命令。