vimplus 快捷键
窗口管理
Leader 操作
| 快捷键 | 说明 |
|---|---|
| , | Leader Key |
| < leader >n | 打开/关闭资源管理器 |
| < leader >t | 打开/关闭函数列表 |
| < leader >d | 删除当前 buffer |
| < leader >D | 删除其他 buffer |
功能键
| 快捷键 | 说明 |
|---|---|
| < c-p > | 切换到上一个 buffer |
| < c-n > | 切换到下一个 buffer |
| < c-w >h | 跳转左边的窗口 |
| < c-w >l | 跳转右边的窗口 |
| < c-w >j | 跳转上边的窗口 |
| < c-w >k | 跳转下边的窗口 |
| < c-w >c | 关闭当前窗口 |
| < c-w >o | 关闭其它窗口 |
命令模式
| 快捷键 | 说明 |
|---|---|
| :e < filename > | 新建 buffer 打开文件 |
| :bp | 切换到上一个 buffer |
| :bn | 切换到下一个 buffer |
| :bd | 删除当前 buffer |
| :sp < filename > | 横向切分窗口并打开文件 |
| :vsp < filename > | 竖向切分窗口并打开文件 |
| :new | 打开一个新的窗口编辑新文件 |
| :enew | 在当前窗口创建新文件 |
| :vnew | 在左右切分的新窗口中编辑新文件 |
| :tabnew | 在新的标签页中编辑新文件 |
光标移动
Leader 操作
| 快捷键 | 说明 |
|---|---|
| < leader >w | 单词跳转 |
功能键
| 快捷键 | 说明 |
|---|---|
| < c-o > | 跳到上一个位置 |
| < c-i > | 跳到下一个位置 |
| < c-b > | 上一页 |
| < c-f > | 下一页 |
| < c-u > | 上移半屏 |
| < c-d > | 下移半屏 |
命令模式
| 快捷键 | 说明 |
|---|---|
| h | 左移动 |
| l | 右移动 |
| j | 下移动 |
| k | 上移动 |
| 0 | 光标移动到行首 |
| ^ | 跳到从行首开始第一个非空白字符 |
| $ | 光标移动到行尾 |
| H | 调到屏幕顶上 |
| M | 调到屏幕中间 |
| L | 调到屏幕下方 |
| :n | 跳到第 n 行 |
| w | 跳到下一个单词开头(标点或空格分隔的单词) |
| W | 跳到下一个单词开头(空格分隔的单词) |
| e | 跳到下一个单词尾部(标点或空格分隔的单词) |
| E | 跳到下一个单词尾部(空格分隔的单词) |
| b | 上一个单词头(标点或空格分隔的单词) |
| B | 上一个单词头(空格分隔的单词) |
| ge | 上一个单词尾 |
| % | 在配对符间移动, 可用于()、{}、[] |
| gg | 到文件首 |
| G | 到文件尾 |
| fx | 跳转到下一个为 x 的字符 |
| Fx | 跳转到上一个为 x 的字符 |
| tx | 跳转到下一个为 x 的字符前 |
| Tx | 跳转到上一个为 x 的字符前 |
| ; | 跳到下一个搜索的结果 |
| [[ | 跳转到函数开头 |
| ]] | 跳转到函数结尾 |
文本操作
Leader 操作
| 快捷键 | 说明 |
|---|---|
| < leader >l | 按竖线对齐 |
| < leader >= | 按等号对齐 |
功能键
| 快捷键 | 说明 |
|---|---|
| < c-o > | 跳到上一个位置 |
| < c-i > | 跳到下一个位置 |
| < c-b > | 上一页 |
| < c-f > | 下一页 |
| < c-u > | 上移半屏 |
| < c-d > | 下移半屏 |
命令模式
| 快捷键 | 说明 |
|---|---|
| i | 在光标处进入插入模式 |
| I | 在行首进入插入模式 |
| a | 在光标后进入插入模式 |
| A | 在行尾进入插入模式 |
| o | 在下一行插入新行并进入插入模式 |
| O | 在上一行插入新行并进入插入模式 |
| gi | 进入到上一次插入模式的位置 |
| Ya | 复制行文本到字母 a |
| Da | 剪切行文本到字母 a |
| Ca | 改写行文本到字母 a |
| gcc | 注释代码 |
| gcap | 注释段落 |
| vif | 选中函数内容 |
| dif | 删除函数内容 |
| cif | 改写函数内容 |
| vaf | 选中函数内容(包括函数名 花括号) |
| daf | 删除函数内容(包括函数名 花括号) |
| caf | 改写函数内容(包括函数名 花括号) |
| cc | 改写当前行(删除当前行并进入插入模式),同 S |
| cw | 改写光标开始处的当前单词 |
| ciw | 改写光标所处的单词 |
| caw | 改写光标所处的单词,并且包括前后空格(如果有的话) |
| ct, | 改写到逗号 |
| c0 | 改写到行首 |
| c^ | 改写到行首(第一个非零字符) |
| c$ | 改写到行末 |
| C | 改写到行末(同 c$) |
| ci" | 改写双引号中的内容 |
| ci’ | 改写单引号中的内容 |
| ci) | 改写小括号中的内容 |
| ci] | 改写中括号中内容 |
| ci} | 改写大括号中内容 |
| cit | 改写 xml tag 中的内容 |
| cis | 改写当前句子 |
| ciB | 改写’{}'中的内容 |
| c2w | 改写下两个单词 |
| ct( | 改写到小括号前 |
| x | 删除当前字符,前面可以接数字,3x 代表删除三个字符 |
| X | 向前删除字符 |
| dd | 删除当前行 |
| d0 | 删除到行首 |
| d^ | 删除到行首(第一个非零字符) |
| d$ | 删除到行末 |
| D | 删除到行末(同 d$) |
| dw | 删除当前单词 |
| dt, | 删除到逗号 |
| diw | 删除光标所处的单词 |
| daw | 删除光标所处的单词,并包含前后空格(如果有的话) |
| di" | 删除双引号中的内容 |
| di’ | 删除单引号中的内容 |
| di) | 删除小括号中的内容 |
| di] | 删除中括号中内容 |
| di} | 删除大括号中内容 |
| diB | 删除’{}'中的内容 |
| dit | 删除 xml tag 中的内容 |
| dis | 删除当前句子 |
| d2w | 删除下两个单词 |
| dt( | 删除到小括号前 |
| dgg | 删除到文件头部 |
| dG | 删除到文件尾部 |
| d} | 删除下一段 |
| d{ | 删除上一段 |
| u | 撤销 |
| U | 撤销整行操作 |
| CTRL-R | 撤销上一次 u 命令 |
| J | 连接若干行 |
| gJ | 连接若干行,删除空白字符 |
| . | 重复上一次操作 |
| ~ | 交换大小写 |
| g~i | w 替换当前单词的大小写 |
| gUiw | 将单词转成大写 |
| guiw | 将当前单词转成小写 |
| guu | 全行转为小写 |
| gUU | 全行转为大写 |
| gg=G | 缩进整个文件 |
| =a{ | 缩进光标所在代码块 |
| =i{ | 缩进光标所在代码块,不缩进"{" |
| << | 减少缩进 |
| >> | 增加缩进 |
| == | 自动缩进 |
| CTRL-A | 增加数字 |
| CTRL-X | 减少数字 |
| p | 粘贴到光标后 |
| P | 粘贴到光标前 |
| v | 开始标记 |
| y | 复制标记内容 |
| V | 开始按行标记 |
| CTRL-V | 开始列标记 |
| y$ | 复制当前位置到本行结束的内容 |
| yy | 复制当前行 |
| Y | 复制当前行,同 yy |
| yt, | 复制到逗号 |
| yiw | 复制当前单词 |
| 3yy | 复制光标下三行内容 |
| v0 | 选中当前位置到行首 |
| v$ | 选中当前位置到行末 |
| vt, | 选中到逗号 |
| viw | 选中当前单词 |
| vi) | 选中小括号内的东西 |
| vi] | 选中中括号内的东西 |
| viB | 选中’{}'中的内容 |
| vis | 选中句子中的东西 |
| gv | 重新选择上一次选中的文字 |
| :set paste | 允许粘贴模式(避免粘贴时自动缩进影响格式) |
| :set nopaste | 禁止粘贴模式 |
| "?yy | 复制当前行到寄存器 ? ,问号代表 0-9 的寄存器名称 |
| "?p | 将寄存器 ? 的内容粘贴到光标后 |
| "?P | 将寄存器 ? 的内容粘贴到光标前 |
| :registers | 显示所有寄存器内容 |
| :[range]y | 复制范围,比如 :20,30y 是复制 20 到 30 行,:10y 是复制第十行 |
| :[range]d | 删除范围,比如 :20,30d 是删除 20 到 30 行,:10d 是删除第十行 |
| ddp | 交换两行内容:先删除当前行复制到寄存器,并粘贴 |
搜索替换
Leader 操作
| 快捷键 | 说明 |
|---|---|
| 搜索~目录下的文件 | |
| 搜索当前目录下的文本 | |
| 全局替换,目前只支持单个文件 |
命令模式
| 快捷键 | 说明 |
|---|---|
| fa | 查找字母 a,然后再按 f 键查找下一个 |
| rr | 替换文本 |
| r | 替换当前字符 |
| R | 进入替换模式,直至 ESC 离开 |
| s | 替换字符(删除光标处字符,并进入插入模式,前可接数量) |
| S | 替换行(删除当前行,并进入插入模式,前可接数量) |
| /pattern | 从光标处向文件尾搜索 pattern |
| ?pattern | 从光标处向文件头搜索 pattern |
| n | 向同一方向执行上一次搜索 |
| N | 向相反方向执行上一次搜索 |
| * | 向前搜索光标下的单词 |
| # | 向后搜索光标下的单词 |
| 😒/p1/p2/g | 替换当前行的 p1 为 p2 |
| :%s/p1/p2/g | 替换当前文件中的 p1 为 p2 |
| :%s/ |
替换当前文件中的 p1 单词为 p2 |
| :%s/p1/p2/gc | 替换当前文件中的 p1 为 p2,并且每处询问你是否替换 |
| :10,20s/p1/p2/g | 将第 10 到 20 行中所有 p1 替换为 p2 |
| :%s/1\2/3/123/g | 将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注) |
| :%s/\r//g | 删除 DOS 换行符 ^M |
| :g/^\s*$/d | 删除空行 |
| :g/test/d | 删除所有包含 test 的行 |
| :v/test/d | 删除所有不包含 test 的行 |
| :%s/^/test/ | 在行首加入特定字符(也可以用宏录制来添加) |
| :%s/$/test/ | 在行尾加入特定字符(也可以用宏录制来添加) |
| :sort | 排序 |
| :g/^(.+)$\n\1/d | 去除重复行(先排序) |
| :%s/^.{10}// | 删除每行前 10 个字符 |
| :%s/.{10}$// | 删除每行尾 10 个字符 |
文件操作
命令模式
| 快捷键 | 说明 |
|---|---|
| :w | 保存文件 |
| :w < filename > | 按名称保存文件 |
| ZZ | 保存文件(如果有改动的话),并关闭窗口 |
| :e < filename > | 打开文件并编辑 |
| :saveas < filename > | 另存为文件 |
| :r < filename > | 读取文件并将内容插入到光标后 |
| :r !dir | 将 dir 命令的输出捕获并插入到光标后 |
| :close | 关闭文件 |
| :q | 退出 |
| :q! | 强制退出 |
| :wa | 保存所有文件 |
| :cd < path > | 切换 Vim 当前路径 |
| :new | 打开一个新的窗口编辑新文件 |
| :enew | 在当前窗口创建新文件 |
| :vnew | 在左右切分的新窗口中编辑新文件 |
| :tabnew | 在新的标签页中编辑新文件 |
其它
Leader 操作
| 快捷键 | 说明 |
|---|---|
| < leader >g | 显示 git 仓库提交记录 |
| < leader >G | 显示当前文件提交记录 |
| < leader >gg | 显示当前文件在某个 commit 下的完整内容 |
| < leader >ff | 语法错误自动修复(FixIt) |
| < leader >e | 快速编辑 vimrc 文件 |
| < leader >s | 重新加载 vimrc 文件 |
| < leader >h | 打开 vimplus 帮助文档 |
| < leader >H | 打开当前光标所在单词的 vim 帮助文档 |
| < leader >< leader >i | 安装插件 |
| < leader >< leader >u | 更新插件 |
| < leader >< leader >c | 删除插件 |
功能键
| 快捷键 | 说明 |
|---|---|
| < F5 > | 显示语法错误提示窗口 |
| < F7 > | 启用 mardown 实时预览 |
| < F8 > | 关闭 markdown 实时预览 |
| < F9 > | 显示上一主题 |
| < F10 > | 显示下一主题 |
命令模式
| 快捷键 | 说明 |
|---|---|
| ! | 告诉 vim 正在执行一个过滤操作 |
| !5Gsort< Enter > | 使用外部 sort 命令对 1-5 行文本排序 |
| !! | 对当前行执行过滤命令 |
| !!date< Enter > | 用"date"的输出代替当前行 |
| qa | 开始录制名字为 a 的宏 |
| q | 结束录制宏 |
| @a | 播放名字为 a 的宏 |
| 100@a | 播放名字为 a 的宏 100 次 |
| :normal@a | 播放名字为 a 的宏直到自动结束 |
| h tutor | 入门文档 |
| h quickref | 快速帮助 |
| h index | 查询 Vim 所有键盘命令定义 |
| h summary | 帮助你更好的使用内置帮助系统 |
| h pattern.txt | 正则表达式帮助 |
| h eval | 脚本编写帮助 |
| h function-list | 查看 VimScript 的函数列表 |
| h windows.txt | 窗口使用帮助 |
| h tabpage.txt | 标签页使用帮助 |
| h tips | 查看 Vim 内置的常用技巧文档 |
| h quote | 寄存器 |
| h autocommand-events | 所有可能事件 |
| h write-plugin | 编写插件 |
| vim -u NONE -N | 开启 vim 时不加载 vimrc 文件 |
| vimdiff file1 file2 | 显示文件差异 |
- 本文标题:vimplus 快捷键
- 创建时间:2020-02-17 14:27:44
- 本文链接:2020/02/17/vimplus-shortcut/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论