按键 | 功能 |
---|---|
:wq | 保存退出 |
:w filename | 保存到指定文件 |
:q | 退出,如果文件修改但没有保存,会提示无法退出 |
:q! | 退出,不保存 |
按键 | 功能 |
---|---|
a | 光标位置右边插入文字 |
i | 光标位置当前处插入文字 |
o | 光标位置下方开启新行 |
O | 光标位置上方开启新行 |
I | 光标所在行首插入文字 |
A | 光标所在行尾插入文字 |
按键 | 功能 |
---|---|
Ctrl+v | 进入可视化编辑模式 |
按键 | 功能 |
---|---|
:set expandtab | tab展开为空格 |
cc/S | 清除整行,进入插入模式 |
d$/C | 删除光标右边文字/删除光标右边文字进入插入状态 |
di) | 删除括号内的文本 |
:set undodir=”xxxx” :set undofile | 设置持久性撤销和临时保存的文件位置 |
:ls | 显示当前缓冲区文件信息 |
:e | 打开新文件,其他文件放入缓冲区 |
:b 缓冲区编号或者文件名 | 切换到指定的缓冲区文件处 |
:bd/:bd3 | 删除当前的缓冲区/指定缓冲区窗口 |
“byw | 将当前光标到单词结尾处的内容放入寄存器”b中(无”b则放入匿名寄存器””中) |
“bdw | 将当前光标处到单词结尾的内容剪切到寄存器”b中 |
“bp | 将”b中的内容粘贴 |
“1p/”2p/”3p | 将自动存放的历史删除内容分别粘贴出来,其中”1,”2,”3为寄存器 |
ctrl +n/p | 代码补全,向下查找/向上查找 |
ctrl+x+i | 使用当前工程文件的中的参数进行补全 |
ctrl+x+f | 使用当前工程文件和文件夹名补全 |
ctrl+x+j | 补全标签 |
按键 | 功能 |
---|---|
shift+* | 向下查找当前光标所在的相同单词并高亮显示 |
shift+# | 向上查找当前光标所在的相同单词并高亮显示 |
gd | 从头查找当前光标所在的相同单词并高亮显示 |
:noh | 取消高亮显示 |
n | 定位到查找内容的下一个 |
N | 定位到查找内容的上一个 |
:/String | 查找以String组成的正则表达式 |
/^字符串 | 查找以字符串开始的行 |
/字符串$ | 查找以字符串结尾的行 |
按键 | 功能 |
---|---|
. | 任意字符,不包括换行 |
\_. | 任意字符,包括换行 |
^$ | 行开头和结尾 |
\<\> | 单词开头和结尾 |
\s | 一个tab或空格 |
\d | 一个数字 |
\a | 一个字母 |
\w | 一个数字或字母 |
\l | 一个小写字母 |
\u | 一个大写字母 |
\x | 一个十六进制数 |
\X | 一个非十六进制数 |
\D | 一个非数字 |
\W | 一个非字母 |
\S | 一个非空白字符 |
A\|B | 匹配A或B |
\(X\) \(A\|B\)C | 将X作为一个组 匹配AC或BC |
* | 重复前一个字符0到多次 |
\+ | 重复前一个字符1到多次 |
\? \= | 重复前一个字符0到1次 |
\{m,n} | 重复前一个字符m到n次 |
\{-m,n} | 重复前一个字符m到n次,尽可能少的字符数进行匹配 |
按键 | 功能 |
---|---|
r | 替换当前光标字符 |
:r 文件名 | 在光标当前位置下一行载入另一个文件 |
:%s/p1/p2/g | 将文件中所有p1均用p2替代,p1和p2可以为正则表达式 |
:n1,n2s/p1/p2/g | 将n1到n2行所有p1均用p2替代 |
:%s/p1/p2/gciIe | 替换时、全局替换,替换确认,忽略大小写,区分大小写,没有匹配时不显示错误 |
:106;/endstring/s/p1/p2/g | 在106行到endstring行的p1内容替换为p2 |
按键 | 功能 |
---|---|
gg | 到文件第一行行首 |
G | 到文件最后一行行首,G必须为大写 |
:n | 到指定行,n为目标行数 |
[n]G | 到指定行,n为目标行数 |
按键 | 功能 |
---|---|
w/W | 后移一个字(狭义)/后移一个字(广义) |
b/e,B/E | 光标移动到当前字首/字尾(广义,狭义) |
$ | 光标移动到行末尾 |
0 | 光标移动到行开头 |
fx | x为一个字符,光标向右移动到字符x处 |
cw/ce/cb/c4l | 删除当前光标处经过的字符量,单个单词不删除空格,进入插入模式 |
c2w/c2aw | 删除光标后的两个单词,进入插入模式 |
dw/d3e/db/d4l | 删除当前光标处经过的字符量,并删除空格 |
按键 | 功能 |
---|---|
Ctrl + o(O) | 回到上次编辑的光标位置 |
ctrl + i(I) | 回到下次编辑的光标位置 |
删除和修改功能
按键 | 功能 |
---|---|
[n]x | 删除光标后 n 个字符4x |
[n]X | 删除光标前 n 个字符 |
D | 剪切光标所在开始到此行尾的字符 |
[n]dd | 删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除) |
[n]yy | 复制从当前行开始的 n 行 |
p | 把粘贴板上的内容插入到当前行 |
dG | 删除光标所在行开始到文件尾的所有字符 |
J | 合并两行 |
. | 执行上一次操作 |
u | 撤销前一个命令 |
ctrl+r | 恢复对使用u命令的操作 |
按键 | 功能 |
---|---|
:sp file | 横向新增窗口,file为窗口名 |
:vs file | 纵向新增窗口 |
vim -o file1, file2… | 横向窗口打开文件 |
vim -O file1, file2… | 纵向窗口打开多个文件 |
:qa | 退出所有窗口 |
:res(ize) num | 显示行数调整为num行 |
:res+num/:res-num | 显示行数增加num行/显示行数降低num行 |
:vertical res num | 纵向调整显示行数 |
:n / :N / :n file | 当前窗口显示为下一个窗口内容/上一个窗口内容/指定文件内容 |
:e# | 回到刚才编辑的文件 |
ctrl+w+上下左右 ctrl+w+hjlk ctrl+w+HJLK | 切换到上/下/左/右的一个窗口 切换到←↓↑→的一个窗口 移动窗口位置到←↓↑→ |
ctrl+w+w | 切换到下一个窗口 |
ctrl+w+o | 删除当前外的其它窗口 |
ctrl+w+= | 设置所有窗口大小相等 |
:resize +N -N N | 设置窗口高度,加,减,等于 |
:vertical res +N -N N | 设置窗口宽度,加,减,等于 |
:tabnew + filename | 创建新标签页 |
gt/gT | 切换到下一个/上一个标签页 |
按键 | 功能 |
---|---|
:m N | 将本行移动到第N行下方 |
:g/^/m 0 | 倒序文件行,g为全局查找,^为文件行 |
: +1d | 删除当前行的下一行 |
:g/^/+1d :%norm jdd | 删除偶数行 |
:%norm jkdd | 删除奇数行 |
:%s/^\(.*\)\(\n\1\)\+$/\1/g | 多行重复行压缩为1行 |
:%s/^\(.*\)\n\1$/\1/g | 两个重复行压缩为1行 |
按键 | 功能 |
---|---|
:set list | 显示以“$”表示的换行符和以“^I”表示的制表符等特殊符号 |
:set nolist | 取消特殊符号显示 |
:set ic | 搜寻时不区分大小写 |
:set noic | 搜寻时区分大小写 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:set foldmethod=indent | 折叠当前的所有代码,折叠方式为缩进 |
zi | 把折叠状态的所有代码展开和关闭 |
zo | 展开当前位置的折叠代码 |
zc | 折叠当前位置的展开代码 |
za | 切换当前位置的代码展开和折叠状态 |
:vimgrep string **/*.py | 跨文件查找字符串string。 |
:cn/:cp | 跨文件查找字符串的下一个/上一个 |
按键 | 功能 |
---|---|
:!cmd | 临时执行外部shell命令 |
ctrl+u/ctrl+d | 屏幕向前/向后翻页半个屏幕 |
pageup/pagedown | 屏幕向前/向后翻页一个屏幕 |
:terminal | 打开终端窗口 |
:map newcmd existcmd | 设置命令映射,newcmd如;asdf |
:help existcmd | 查看已经存在的命令 |
:set hlsearch/nohlsearch | 设置/取消高亮查找 |
:arg **/*.py :args :argdo cmd | 匹配跨文件操作文件 查看跨文件操作文件 执行跨文件操作文件内容的命令cmd |
qx @x qxq | 录制宏到x寄存器中 播放x中录制的宏 清空寄存器x中的内容 |
:set wrapscan/nowrapscan | 设置循环查找/非循环查找 |