1 命令模式下的操作
1.1 保存退出
| 快捷键 | 操作 |
| ZZ | 保存退出 |
1.2 代码格式化
| 快捷键 | 操作 |
| gg=G | 代码的格式化 |
1.3 光标移动
| 快捷键 | 操作 |
| h | 光标左移 |
| j | 光标下移 |
| k | 光标上移 |
| l | 光标右移 |
| w | 移动一个单词 |
| gg | 光标移动到文件开头 |
| G | 光标移动到文件末尾 |
| O | 光标移动到行首 |
| $ | 光标移动到行尾 |
| nG | 行跳转,例12G,调到12行处 |
1.4 删除命令
| 快捷键 | 操作 |
| x | 删除光标后的一个字符,相当于Del |
| X | 删除光标后的一个字符,相当于Backspace |
| dw | 删除光标开始位置的字,包含光标所在字符 |
| d0 | 删除光标前本行所有内容,不包含光标所在字符 |
| D[d$] | 删除光标后本行所有内容,包含光标所在字符 |
| dd | 删除光标所在行(本质其实是剪切) |
| ndd | 从光标当前行向下删除指定的行数,如15dd |
| v/ctrl+v | 使用h、j、k、l移动选择内容,然后按d删除 其中ctrl+v是列模式,v是非列模式 |
1.5 撤销和反撤销命令
| 快捷键 | 操作 |
| u | 一步一步撤销,相当于word中的ctrl+z |
| ctrl+r | 反撤销,相当于word中的ctrl+y |
1.6 复制粘贴
| 快捷键 | 操作 |
| yy | 复制当前行 |
| nyy | 复制n行,如10yy |
| p | 在光标所在位置向下新开辟一行,粘贴 |
| P | 在光标所在位置向上新开辟一行,粘贴 |
| 剪切操作 | 按dd或者ndd删除,将删除的行保存到剪切板中,然后按p/P粘贴 |
1.7 可视模式
| 快捷键 | 操作 |
| v/ctrl+v | 使用h、j、k、l移动选择内容; 使用d删除/使用y复制; 使用p粘贴到光标的后面/使用P粘贴到光标的前面 |
1.8 查找命令
| 快捷键 | 操作 |
| / | /xxx,从光标所在的位置开始搜索,按n向下搜索,按N向上搜索 |
| ? | ?xxx,从光标所在的位置开始搜索,按n向上搜索,按N向下搜索 |
| # | 将光标移动到待搜索的字符串上,按n向上搜索,按N向下搜索 |
| shift+k / K | 在待搜索的字符串上按shift+k或者K,可以查看相关的帮助文档 |
1.9 替换操作
| 快捷键 | 操作 |
| r | 替换当前字符 |
| R | 替换当前行光标后的字符 |
2 切换到文本输入模式
从命令模式切换到文本输入模式只需要如下命令:
| 快捷键 | 操作 |
| i | 在光标前插入 |
| a | 在光标后插入 |
| l | 在光标所在行的行首插入 |
| A | 在光标所在行的行尾插入 |
| o | 在光标所在行的下面新创一行,行首插入 |
| O | 在光标所在行的上面新创一行,行首插入 |
| s | 删除光标后边的字符,从光标当前位置插入 |
| S | 删除光标所在当前行,从行首插入 |
| 按列模式插入 | 先按ctrl+v进入列模式,按hjkl移动选定某列,按I或者shift+i向前插入,然后插入字符,最后按两次esc |
3 末行模式下的操作
3.1 保存退出
| 快捷键 | 操作 |
| q | 退出 |
| q! | 强制退出,不保存修改内容 |
| w | 保存修改内容,不退出 |
| wq | 保存并退出 |
| x | 相当于wq |
3.2 替换操作
下面表格中old表示原字符串,new表示新字符串
| 快捷键 | 操作 |
| :s/old/new/ | 光标所在行的第一个old替换为new |
| :s/old/new/g | 光标所在行的所有old替换为new |
| :m,ns/old/new/g | 将第m行至第n行之间的old全部替换为new |
| :%s/old/new/g | 当前文件的所有old替换为new |
| :1,$s/old/new/g | 当前文件的所有old替换为new |
| :%s/old/new/gc | 同上,但是每次替换需要用户确认 |
3.3 快速翻屏
| 快捷键 | 操作 |
| ctrl+u | 向下翻半屏(up)—光标向上移动 |
| ctrl+d | 向上翻半屏(down)—光标向下移动 |
| ctrl+f | 向上翻一屏(front) |
| ctrl+b | 向后翻一屏(back) |
3.4 在末行模式下执行shell命令
!shell命令(如!ls -l)
按下两次esc可以回到命令模式
3.5 分屏操作
在打开文件之后分屏:
| 快捷键 | 操作 |
| sp | 当前文件水平分屏 |
| vsp | 当前文件垂直分屏 |
| sp文件名 | 当前文件和另一个文件水平分屏 |
| vsp文件名 | 当前文件和另一个文件垂直分屏 |
| ctrl+w+w | 在多个窗口切换光标 |
| wall/wqall/xall/qall/qall! | 保存/保存退出/保存退出/退出/强制退出分屏窗口 |
打开文件时水平分屏:
vi -o[n](n表示分为几个屏,可有可无) 文件名1 文件名2 文件名3 …
打开文件时分屏:
vi -O[n](n表示分为几个屏,可有可无) 文件名1 文件名2 文件名3 …
3.6 从末行模式切回到命令模式
按两次ESC,退格(backspack)或者回车键
4 vim的配置文件
4.1 用户级别配置文件
如果找不到.vimrc文件,可以在家目录(~)下输入下面这句话进行修改
gedit .vimrc
4.2 系统级别配置文件
在家目录(~)下输入下面这句话进行修改:
sudo vi /etc/vim/vimrc
在文件中写入
set tabstop=4
set nu
set shiftwidth=4
修改了系统级别的配置文件将影响系统下的所有用户
注意:当找不到.vimrc文件时,可以在~目录下输入gedit .vimrc,就会看到此文件,然后在里面添加配置!



