Vim键盘快捷键和命令
Vim是一个功能丰富且完全可定制的文本编辑器,具有难以记住的无数命令和键绑定。Vim用户通常会忘记许多命令和快捷方式,他们需要一个快速的参考来回忆起来。
在这个快速指南中,我将列出每个Vim用户口袋里必须有的常见Vim快捷方式。
模式切换
Vim有多种模式,这些模式对编辑很重要,比如用于键绑定和命令的普通模式、用于键入文本的插入模式和用于选择文本的可视化模式。
插入模式
| 我 | 在光标前插入文本 |
| 我 | 在行首插入文本 |
| 一个 | 在光标后追加文本 |
| 一个 | 在行后追加文本 |
| o | 将文本插入到下面的新行 |
| O | 将文本插入到新行中 |
正常模式
| Esc | 进入正常模式 |
| : | 在正常模式下输入命令 |
视觉模式
| v | 进入可视模式 |
| V | 进入可视线条模式 |
| Ctrl + v | 进入可视块模式 |
| 亚历山大-伍尔兹 | 选择一个单词 |
| ab | 用()选择一个块 |
| aB | 用{}选择一个block |
| 在 | 选择带有标记的块 |
| ib | Select inner block with () |
| iB | 用{}选择内部块 |
| 它 | 选择带有标记的内部块 |
取代
| R | 进入替换模式 |
打开文件
在终端中使用Vim命令可以打开Vim中的文件。但是,如果您已经在缓冲区中,则在正常模式下使用:edit命令和文件名。
| e: | 打开当前缓冲区中的文件 |
| v: | 以只读方式打开文件 |
注意:e和:v命令也可以分别只使用:edit和:view命令来使用。
写文件
Vim编辑器不会自动保存文件,除非您使用该命令编写文件。
| w: | 将更改保存在当前缓冲区中 |
Vim在4秒后或输入200个字符后将文件更改保存到交换文件中。如果您不小心关闭了会话,您将得到一个恢复提示。
退出文件
在Vim编辑器中有各种命令和键绑定可以退出该文件。
| :问 | 如果未对文件进行任何更改,则退出当前缓冲区 |
| :问! | 在不保存的情况下退出当前缓冲区 |
| :质量保证 | 关闭所有文件 |
| :wq或😡 | 保存更改并退出当前缓冲区 |
| ZZ | 保存更改并退出当前缓冲区 |
| 的ZQ | 退出当前缓冲区而不保存更改 |
如果您在当前缓冲区中创建了没有名称的文件,那么将提示您在退出Vim编辑器之前输入文件名。
运动
虽然许多现代的功能已经融入到普通的Vim中,但从本质上讲,它是一个面向键盘的文本编辑器。Vim中的移动主要是通过键绑定完成的。
下面将介绍在Vim中通过字符、行、单词或句子移动光标。
字与行
| h | 向左移动一个字符 |
| j | 向下移动一个字符 |
| k | 向上移动一行 |
| l。 | 向右移动一条线 |
| ^ | 移动到跳过空白的行第一个字符 |
| $ | 到队尾去 |
| 0 | 移动到行首,包括空格 |
| gg | 移动到文件的第一行,不包括空白 |
| G | 移到文件的最后一行,不包括空白 |
| + | 移动到下一行,不包括空白 |
| - - - - - - | 移动到前一行,不包括空白 |
| fs | *移动到当前行的下一个s |
| Fs | 移动到当前行中前面的s |
| ts | 移动到当前行的下一个s |
| Ts | 移动到当前行的前一个s |
*使用;(向前)和(向后)重复f、f、t和t的动作。
词
| w | 向前移动一个单词(到第一个字母) |
| b | 按单词向后移动(到第一个字母) |
| e | 向前移动一个单词(直到最后一个字母) |
| 通用电气 | 向后移动一个单词(到最后一个字母) |
句子和段落
| ) | 转到下一个句子(开头) |
| ( | 转到上一句(开头) |
| } | 进入下一段(开头) |
| { | 移到上一段(开头) |
编程
| % | 在括号或注释之间切换,如(),{},[]或# |
| gd | 转到局部变量 |
| gD | 转到全局变量 |
页面
| Ctrl + b | 向上翻页 |
| Ctrl + f | 下一页 |
| Ctrl + u | 向上翻页(一半) |
| Ctrl + d | 下页(半页) |
屏幕
| zz | 将当前行移动到屏幕顶部 |
| zt型 | 将当前行移动到屏幕中央 |
| zb | 将当前行移动到屏幕的末尾 |
| H | 将光标移动到屏幕顶部 |
| 米 | 将光标移到屏幕中央 |
| l。 | 将光标移动到屏幕底部 |
| Ctrl + e | 将屏幕向下移动一行 |
| Ctrl + y | 将屏幕向上移动一行 |
复制、剪切和粘贴
在任何文本编辑器或文字处理程序中,复制、剪切和粘贴都是核心功能。在Vim中,这些都是通过命令完成的。
| y | 抽取一个字符或选段 |
| d | 删除一个字符或选择 |
| x | 删除一个字符 |
| 年代 | 删除一个字符并启用插入模式(s是替换) |
| 年代 | 删除一行并启用插入模式 |
| C | 从光标位置删除一行并启用插入模式 |
| cc | 删除一行并启用插入模式 |
| yy | 猛拉一条线 |
| dd | 删除一行 |
| “* y | 拖拽到系统剪贴板 |
Vim中的y和d操作符分别类似于copy和cut。这些操作符可以与计数和运动命令一起使用。例如,要复制当前行和当前行以下2行,使用y2j,要复制3行,使用3yy。
使用:put命令或p来粘贴剪切的文本。p命令还接受计数和运动。
| p | 将文本粘贴到光标后面 |
| P | 将文本粘贴到光标前面 |
| “* p | 从系统剪贴板粘贴 |
要将当前拖动的行粘贴4次,请使用4p。
撤销和重做
要撤消和重做更改,Vim中有专门的命令。
| u | 撤销更改 |
| U | 撤消一行中的最后更改 |
| Ctrl + r | 重做上次的更改 |
搜索
在编辑大文件时,搜索变得很重要。Vim提供了各种命令来简化搜索。
| /文本 | 向前搜索:向前搜索文本;这里的text可以是一个字母或者一个单词 |
| /文本\ c | 搜索文本,忽略大小写 |
| 文本吗? | 向后搜索文本 |
| n | 向前搜索最后搜索的文本(\和?) |
| N | 向后搜索最后搜索的文本(\和?) |
| :能剧 | 删除搜索突出显示 |
注意,搜索不是命令,在使用/和?搜索模式之前不需要冒号(:)。
取代
要替换字符或文本,Vim中有一个专用的键绑定。
| r | 替换光标下的字符 |
| R | 要启用替换模式和替换文本,直到按下Esc键 |
查找和替换
可以使用命令来查找和替换特性。
| : % s /文本/替换/ g | 在整个文件中搜索文本,并用replace string替换所有出现的文本(所有出现的文本) |
| : % s / /替换文本 | 在整个文件中搜索文本,并用replace string替换所有出现的文本(仅替换一行中第一次出现的文本) |
替换
替换是一种删除文本并用另一个字符或字符串替换它的方法。
| 年代 | 删除一个字符并启用插入模式 |
| 年代 | 删除一行并启用插入模式 |
删除文本后,将启用插入模式,可以插入任何被替换的文本。
选项卡
Vim还允许在选项卡的帮助下一次处理多个缓冲区。在Vim中有各种命令可以有效地管理选项卡。
| :课程 | 创建一个新选项卡 |
| : tabc | 关闭当前选项卡 |
| :不要 | 关闭除当前选项卡以外的所有选项卡 |
| : tabdo | 在所有选项卡上执行命令 |
| gt | 移动到下一个选项卡 |
| gT | 移动到上一个选项卡 |
| gt | 移动到选项卡 |
| : tabedit | 在新选项卡中打开文件 |
| : tabfind | 找到一个文件,并在一个新的选项卡中打开它,如果存在的话 |
| :标签 | 列出所有选项卡 |
窗口分割
在Vim中拆分窗口允许在同一窗口中打开多个文件。
| : sp | 将文件打开到一个新的水平分割窗口 |
| :对 | 将文件垂直打开到新的拆分窗口 |
| Ctrl + w s | 水平地分割一个窗口 |
| Ctrl + w v | 垂直地分割一个窗口 |
| Ctrl + c w | 关闭当前窗口 |
| Ctrl + w w | 在窗口之间切换 |
| Ctrl + w起来 | 在分割窗口中切换到上 |
| Ctrl + w下来 | 在拆分窗口中向下切换 |
| Ctrl + w左 | 在分割窗口中向左切换 |
| Ctrl + w对吧 | 在分割窗口中向右切换 |
| Ctrl + w + | 将当前窗口的大小增加一个 |
| Ctrl + w - | 将当前窗口的大小减小一个 |
| :调整 | 调整当前窗口的大小 |
是任意整数。
标志着
Vim中的标记类似于位置标记或书签,可以稍后访问,对于导航大文件特别有用。
| 马: | 在当前光标位置创建标记“a” |
| “一个 | 跳过标记“a”;把游标放在精确标记的位置 |
| “一个 | 跳过标记“a”;将光标放在行首 |
| :标志 | 列出标记 |
| : delmarks | 删除标记“a” |
| : delmarks ! | 删除所有小写标记 |
| d萨那 | 从当前行到标记a处删除行 |
| 吸烟者 | 将行从当前行拉到标记a |
| :“一个”,双相障碍 | 删除从标记a到标记b的所有行 |
| :“一个” | 把所有的线从a点拉到b点 |
寄存器
在Vim中,寄存器是用于存储文本或操作以供以后访问的内存位置。默认情况下,Vim有10种类型的寄存器用于各种任务,例如在抓取或删除后存储文本。
| :注册 | 列出所有登记册 |
| “哦 | 猛拉文本以注册' a ' |
| ”美联社 | 粘贴存储在寄存器' a '中的文本 |
| “* y | 将文本拖拽到系统剪贴板 |
| “* p | 从系统剪贴板中放入文本 |
表示回车或回车键。
宏
Vim中的宏在寄存器的帮助下用于存储一组命令。
| qm | 开始记录宏 |
| 问 | 停止录制宏 |
| @m | 执行宏m |
| @@ | 执行最后一个宏 |
关键地图
在Vim中,键映射用于将复杂命令与键绑定。
| :地图 | 包含一组键,并包含键绑定或命令,例如;要使用ctrl+a选择文件中的所有文本,键映射将是:map ggVG |
| :映射 | 取消当前缓冲区中的映射 |
| : mapc | 删除当前缓冲区中的所有映射 |
折叠
在Vim中,折叠用于将几行折叠成一行,以保持文本的组织性。
| zf | 通过运动和计数来创建一个折叠 |
| 咱 | 切换折叠 |
| 佐薇 | 打开折叠 |
| 佐 | 闭合折痕 |
| zd | 删除折叠 |
| zR | 打开所有折叠 |
缩进
缩进非常重要,特别是在使用Vim进行开发时。
| >> | 缩进文本 |
| iB | 用大括号{}缩进内部块 |
| 5 = = | 重新缩进5行 |
| % = | 使用()和{}重新缩进块 |
| gg = G | 重新缩进整个文件 |
编辑
许多命令可以帮助编辑文本。
| J | 连接当前行下面的行 |
| gJ | 连接当前行下面的行,不带空格 |
| ~ | 切换光标下字符的大小写和所选内容 |
| . | 重复:重复最后的改变或命令 |
| ggVG | 选择全部 |
| :设置列表 | 它显示隐藏字符,例如对于tab,它是^I符号,而$显示行尾 |
历史
下面将介绍Vim命令历史记录和搜索历史记录的快捷键。
| 问: | 列出命令历史记录 |
| q / | 列出搜索历史记录 |
| Ctrl + C | 关闭命令或搜索历史记录分割 |
结论
Vim是一个基于终端的编辑器,设计用于使用键盘快捷键。本指南列出了所有重要的Vim键盘快捷键。所有快捷键都按照它们支持的功能进行分类。还提到了一些命令以供快速参考。