好用的 77 款 Vim 插件-冯金伟博客园

  英文原文: vim plugins that I use

  1. Alternate

  在 C 或 C++ 项目中,源文件和头文件常常成对出现。例如,utils.cutils.h,你经常需要同时编辑这两个文件。使用 Alternate,你可以输入:A命令,在 .c 和 .h 文件之间快速切换。如果你在 .c 文件中,就会切换到 .h 文件,如果你在 .h 文件中,就会切换到 .c 文件。

  2. Bufexplorer

  要高效地处理多个文件,你需要使用几个不同的命令,如:ls(列出缓冲区)、:b(编辑缓冲区)、:bn(下一个缓冲区)和:bp(前一个缓冲区)。然而,通常情况下,在找到正确的文件之前,你的大部分时间都在键入:bn:bn:bn

  Bufexplorer 使得在 vim 中处理多个文件变得轻而易举。它添加了\be键绑定(\是前导键),它会打开一个所有缓冲区的列表,移动到显示文件名的行并按回车键,你就可以快速切换到另一个缓冲区。

  3. Bufferize

  许多 vim 命令继承自 vi,它们的输出非常简陋。它们把输出打印到屏幕上,不能搜索或复制。如果你按空格太多次,内容就消失了。几乎不可能搜索这个文本,有时你甚至不知道如何让 vim 再次显示它。

  Bufferize 解决了这个问题。它接受一个 vim 命令并从其输出创建一个临时缓冲区,然后在一个分屏窗口中打开它。例如:Bufferize map将在一个新窗口中显示所有键盘映射,你可以搜索它们。要退出新窗口,只需使用常规的:q命令。

  4. Bufferline

  Bufferline 补充了 Bufexplorer(见上文),使它更容易处理多个文件 / 缓冲区。它在状态行中打印所有打开的文件及其缓冲区编号的列表。你只需要浏览一下这个列表,输入:b 5就可以切换到第 5 个文件 / 缓冲区,或者使用 Bufexporer,点击\be后面跟/5,然后回车。

  5. Bufkill

  如果你在一个分割中打开了两个缓冲区,并且你想要关闭一个缓冲区,那么你可以使用:bd命令。不幸的是,这个命令也关闭了分割。通常,你不想关闭分割,而只想关闭缓冲区。在这种情况下,使用 Buffkill 的:BD命令,该命令将关闭缓冲区,但保留分割。

  6. Characterize

  Characterize 添加了ga快捷方式,显示光标下 Unicode 字符的名称、代码点值和十六进制值。

  7. Clever-f

  此扩展改进了用于查找下一个 / 前一个字符的fF快捷键。按下fa会转到下一个a。按下Fa会转到前一个a。没有这个扩展,你必须再次输入fa来找到下一个a或者按下分号;。类似地,你必须输入Fa才能再次找到前面的a。如果你是一个 vim 老手,你已经在用;,,你最终会fafafafaFaFaFaFa

  有了这个扩展,你可以再按一次f,它会搜索下一个字符,你可以再按一次F,它会搜索前一个a,所以,不用fafafafa,你现在可以用fafaff代替FaFaFaFa,你可以FaFFF。此外,当你按下fF时,它将显示下一个 / 前一个匹配项,你立即就知道光标将跳转到哪。

  8. Colorscheme-gruvbox

  深色系主题。灰色背景,浅绿色文字和功能。

  9. Colorscheme-jellybeans

  深色系主题。黑色背景,浅绿色文字,浅黄色功能。

  10. Colorscheme-seoul256

  深色系主题。灰色背景,淡蓝色文字,淡黄色功能。

  11. Commentary

  最简单、最快捷的注释插件之一。按gcc将整个行注释掉。按gc注释掉一个可视化选中部分。再次按下相同的快捷键取消注释。

  12. Conflicted

  这个插件有助于解决 git 合并冲突。假设你刚从 github 上的项目主分支中取出代码,遇到了一个合并冲突错误。要解决这个问题,可以运行这个插件提供的:Conflicted命令。该命令创建一个三向 diff,并将结果放在三个垂直分割的窗口中。左边的分割是上游更改,中间的分割是工作更改,右边的分割是本地更改。你可以接受上游 diff 或本地 diff 来解决冲突。为快速接受正确的 diff, Conflicted 提供了两个键映射。dgu命令将使用上游 diff,dgl将使用本地 diff。要解决下一个冲突,使用:GitNextConflict命令。如果没有更多的冲突,vim 将退出,你可以git commit已解决冲突的文件。

  13. Ctrlp

  这个插件添加了ctrl+p绑定来打开一个模糊文件打开对话框。例如,如果你需要编辑math-config.json文件,你可以键入文件名的一些字母,如mat.jsmjson,甚至thfig(“th”是“math”的最后两个字母,“fig”是“config”的最后三个字母)。Ctrlp 将立即缩小搜索范围,并提供最佳匹配。它还可以用来打开 mru 文件(最近使用的文件)和缓冲区,你可以使用ctrl+rctrl+f快捷键在文件 /mru/ 缓冲区模式之间切换。

  14. Ctrlp-funky

  Ctrlp-funky 通过添加函数查找模式扩展了上面的 Ctrlp 插件。你可以运行:CtrlPFunky命令,立即在函数搜索模式下打开 Ctrlp,或按下ctrl+p打开 Ctrlp,然后按ctrl+r(或ctrl+f)几次,进入函数搜索模式。例如,如果你有一个void debug_print ()函数,你可以输入vodepr(单词 void、debug、print 的前两个字母),然后回车,vim 将跳转到这个函数的定义。

  15. Ctrlsf

  有了这个插件,你可以快速搜索和替换大量的文本。当你运行:CtrlSF模式命令时,它将在左侧创建一个包含所有匹配项的结果窗口。“结果”窗口中还有一些围绕匹配项的上下文行,方便你知道你正在查看的是否是正确的匹配项。现在,你可以直接在结果窗口中进行编辑。当你保存结果窗口时,更改也将保存在文件中。你也可以按下回车键,在右边的窗口中打开每个结果并在那里编辑它。

  16. Delimitmate

  Delimitmate 会自动关闭引号和括号。例如,你输入“会自动得到“”,而且光标位于两个引号之间。

  17. Diff-enhanced

  这个插件为 vimdiff 添加了一个新的 diff 可视化方法,它试图最小化差异的数量。当你处于 diff 模式时,输入:EnhancedDiff patience命令,你就能够更好地查看 diff。

  18. Dirvish

  Dirvish 支持惯用的缓冲区驱动开发,它作为一个文件浏览器补充了 Nerdtree(见下文)。当你按下-键时,当前缓冲区将变成一个文件浏览器。你将看到当前工作目录或当前打开的文件目录中的所有文件。然后可以使用箭头键 hjkl 和搜索操作符/导航这个目录并查找文件。当你按下回车键时,Dirvish 将退出,光标下的文件将在当前窗口中打开,作为一个新的缓冲区。当你有多个分割打开时,这个插件特别强大,因为你可以指定下一个文件在哪个分割中打开。你只需导航到分割,点击-,找到文件,然后点击回车,就可以在希望的分割中打开它了。

  19. Dsf

  Dsf 是删除周围函数的缩写。通过在函数调用中按下dsf,它将删除周围的函数名。例如,如果你有像print_r(get_posts (true))这样的代码,并且你的光标位于字符所在的位置,那么当你按下dsf时,你将获得输出get_posts (true)

  20. Easy-align

  有了这个扩展,你就可以整齐地将文本对其到列中。它添加了:EasyAlign命令,你可以将其绑定到你想要绑定的任何键盘快捷键。当你执行它时,它会要求你输入列分隔符字符,然后对所选文本进行格式化。例如,要对齐代码使所有=符号都在同一列中,你可以使用V命令直观地选择行,然后运行:EasyAlign,接着=,然后回车。

  21. Easymotion

  Easymotion 让你可以更快地在文件中导航。它添加了\\ w快捷方式,允许你快速跳转到光标之后的任何单词。它为每个单词分配一个唯一的字母,当你下次按下它时,光标会立即跳转到该单词。它还添加了\\b快捷方式,让你可以快速地向后导航。类似地,如果你需要跳转到上面或下面的任何一行,你可以使用\\k\\j快捷键。

  22. Exchange

  使用 Exchange 插件,你可以非常快速地交换两个单词。转到第一个单词并按cxw,然后转到第二个单词并再次按cxw。你就完成了这两个词位置的交换!

  实际上,你不仅可以交换两个词,还可以交换任何两个 motion。按下cx后,下一个快捷键是 motion(motion 是移动光标的键盘快捷键)。例如,要交换两个字符,可以执行cxl,然后再执行cxl(l 是将光标向右移动一个位置的动作)。类似地,要交换两个句子,你可以执行cxis,然后对第二个句子也执行cxis操作。在这种情况下,motion 是选择整个句子。

  同样,如果两个 motion 相同,只要按一下.重复第一个操作。

  23. Expand-region

  通常,你希望选择比刚刚选择的文本多一点的文本。例如,你使用viw选择了一个单词,但随后发现需要选择整个引用字符串。有了这个插件,你可以按+,它会把当前的选择扩展到下一个最大的文本对象。从字符到一个单词、一个带引号的字符串、一行、一段到整个文件。

  24. Far

  Far 使查找和替换多个文件中的文本变得很容易。它添加了:Far pattern1 pattern2命令。当你运行这个命令时,它将屏幕分成两半。在上半部分,它显示了pattern1匹配的所有文件和行。在下半部分,可以预览匹配的上下文。在上面的分割中,你可以使用 hjkl 键来导航匹配项。默认情况下,所有匹配项都将用pattern2替换,但你也可以使用t键取消匹配项的标记(并再次使用 t 标记它们)。选择要替换的所有匹配项之后,运行:Fardo命令。这个命令将执行实际的替换。

  Far 也很适合于查找所有匹配项。你可以使用:F pattern命令,它将查找所有匹配的模式,并把它们显示在两个分割中,但是它不会执行替换。

  25. Fugitive

  使用 Fugitive,你可以直接从 vim 使用 git。它添加了:Git命令(或简写为:G),该命令运行git status,并在一个分割窗口中显示结果。然后,可以使用键盘快捷键s来暂存(git add)一个文件,使用u来恢复(git reset)一个文件。暂存文件之后,可以按cc创建提交。我还不知道如何进行 git 推送,所以这是我需要学习的内容。如果我能够在不离开 vim 的情况下进行代码推送和部署,那将非常方便。

  26. Fzf

  Fzf 是 Ctrlp(见上文)的一个替代方案。它为快速打开文件和切换缓冲区添加了几个命令。这些命令是:Files:Buffers。如果你以前是按多次 tab 键来补全文件名和缓冲区名,那么现在你只需要键入文件名或缓冲区名的几个字母。例如,如果你需要打开options.c文件,你可以直接输入opt.c,甚至是oc,Fzf 都会为你提供最佳匹配。

  27. Fzf-mru

  Fzf-mru 增加了一个可以通过:FZFMru命令访问的 mru 模式。此模式允许你快速访问最近编辑的文件。假设你昨天在从事 scraper 项目相关的工作。今天,当你进入 mru 模式时,只需要输入scra,它就会显示你昨天处理的 scraper 项目的所有文件。

  28. Gitgutter

  Gitgutter 增加了两个有用的东西。第一个列位于 vim 最左边,它快速显示当前文件的 git diff 信息。你可以快速查看添加和更改了哪些行。第二个是]c[c映射,让你可以在更改的行之间跳转。

  29. Goyo

  我最近切换到 Goyo 模式编程。当你输入:Goyo命令时,这个插件会将内容居中,并删除行号和状态行,这样你就可以专注于无干扰的编码了。如果还让 vim 全屏,那就更好了。

  30. Grepper

  Grepper 改进了 vim 中的查找,并增加了对 ripgrep 的支持。你可以输入:Grepper,然后输入你的搜索查询,它将找到所有匹配项并在 quickfix 窗口中加载它们。然后你可以使用 vim 的:cn:cp命令来导航到下一个 / 前一个匹配项,或者使用 Unimpaired 插件(见下文)的快捷方式]q[q

  这个插件的作者建议将它与 qfenter.vim 插件一起使用。这是我还要尝试的东西。

  31. Gv

  Gv 将 git 提交浏览器添加到 vim 中。你可以运行:GV命令,它将显示整个提交树。然后,你可以在提交窗口中按下回车或 o 来查看各个差异。要退出 diff 查看器,请按q。如果你只对当前文件的 git 日志感兴趣,那么可以使用:GV!命令。

  32. Illuminate

  Illuminate 高亮显示当前可见缓冲区中光标下这个单词的所有出现。例如,如果光标在单词var上,那么所有其他的var也将高亮显示。

  33. Interestingwords

  这个插件允许你同时高亮显示多个单词。它添加了快捷方式\k,可以更改光标下单词的背景颜色,以及文件中出现的所有相同单词。你还可以使用nN来跳转到下一个 / 上一个高亮显示的单词。当你处理复杂的代码并需要跟踪多个变量的使用情况时,它非常有用。

  34. Linediff

  Linediff 让你可以快速比较两个文本块。可视地选择第一个文本块并运行:Linediff命令。然后可视地选择第二个块并再次运行相同的命令。这个插件将创建一个新的标签页,将两个文本块的差异垂直分割。如果结果看起来太冗长,运行:EnhancedDiff patience命令(来自上面的 Diff-enhanced 插件)来改进差异。

  你还可以使用这个插件快速解决 git 合并冲突。如果你打开的文件中存在合并冲突,将光标放在合并冲突标记<<<<<<>>>>>之间,并运行:LinediffMerge命令。接下来,插件会自动创建一个垂直分割,分割合并冲突差异,你可以在左边或右边的分割中进行编辑,并通过运行:LinediffPick命令来自动解决合并。

  35. Listtoggle

  一旦你对 vim 的熟练达到了一定的程度,你将开始一直使用 quickfix 窗口(以及位置列表窗口)。查找结果将在 quickfix 中,linting 错误将在 quickfix 中,编译错误将在 quickfix 中,待办事项列表将在 quickfix 中。一切都会很快解决。你会一直关闭和打开 quickfix。不幸的是,没有简单的方法来切换 quickfix 窗口和位置列表窗口。你必须使用:copen:cclose命令来打开 / 关闭 quickfix,以及:lopen:lclose来打开 / 关闭位置列表。这打字太多了。

  Listtoggle 使它更加简单,并增加了两个快捷方式来快速切换它们。\q绑定将切换 quickfix 窗口,而\l绑定将切换位置列表窗口。

  36. Locate

  通常,你需要查找当前文件中的所有出现。你不想来一次全局搜索,你不想搜索和替换,你不想要任何分割,你只想要一个所有结果的总览。Locate 通过:Locate命令(或简写为:L)提供完全相同的功能。只需键入:L pattern,这个插件就会打开一个快速位置列表,其中包含当前文件中所有出现该模式的地方。你可以使用快捷方式\l切换位置列表(由 Listtoggle 插件提供,见上文),你还可以通过快捷方式]l(下一个结果)和[l(前一个结果)(由 Unimpaired 插件提供,见下文)来浏览结果。

  37. Matchtagalways

  这个插件突出显示了光标所在位置最内层的 HTML 打开和关闭标记。例如,如果光标在<div >cursor here</div>,那么这个插件将突出显示<div></div>标签。

  38. Matchup

  Matchup 添加了快捷方式%,允许你在匹配的括号对之间快速跳转。如果你的光标在{字符上,那么按 % 后它将跳到}。如果你再次按 %,它将跳回{。它还添加了快捷方式z%,使你可以向前跳转到下一对圆括号内。假设你有一个函数print_data ("hi", 7)和你的光标在。然后,在按下z%之后,光标将出现在函数参数中。

  39. Nerdcommenter

  Nerdcommenter 是另一个代码注释插件。借助 Commentary (见上文),你可以使用gc快捷方式快速切换注释,但是 Nerdcommenter 提供了对注释的更多控制。例如,你可以使用\cm快捷方式执行多行注释,并使用\cA快捷方式在行尾添加注释。

  40. Nerdtree

  Nerdtree 是一个文件管理器。它在 vim 的左侧显示当前项目的完整目录和文件树结构。要打开和关闭 Nerdtree,请运行:NERDTreeToggle命令。方便起见,你可以将它绑定到快捷方式\t。当它打开时,你可以使用常规的 hjkl 键进行导航。使用键O打开项目中的所有目录,然后使用常规的/search 操作符搜索文件。要在右侧打开光标下的文件,请按下 ok 键。要查看隐藏的文件,请使用 I 键。与 Dirvish(见上文)相比,它支持文件管理器驱动的开发。Nerdtree 总是在右侧打开文件,而不是指定在哪里打开文件。

  41. Nerdtree-syntax-highlight

  这个插件将语法高亮显示添加到 Nerdtree 中。现在,文件和目录有了不同的颜色。

  42. Peekaboo

  Vim 有许多不同的寄存器。当你复制文本时,它会进入"寄存器。当你删除文本时,它会进入数字寄存器。然后还有小写和大写等寄存器供你个人使用。

  当你要使用寄存器时,这个插件会预览它们。当你按下 ” 键时,它会在右侧打开一个寄存器备忘单,你可以看到每个寄存器的内容并选择正确的寄存器。你还可以按空格键加大寄存器备忘单。

  43. Qfgrep

  Quickfix 是 vim 最大的特性之一。不幸的是,一旦用结果填充了 quickfix 列表,它就会被冻结。你无法进一步过滤 quickfix 列表。这种行为不太合理,因为你总是希望细化结果。

  Qfgrep 允许你这样做。现在,你可以在 quickfix 窗口中过滤结果。使用\g快捷方式过滤结果,\v转换过滤结果,\r 还原原始条目。它还添加了:QFGrepPat命令,该命令执行与\g 相同的操作,:QFGrepPatV则执行与\v相同的操作。

  44. Qlist

  Qlist 添加了:Ilist函数,它是 vim 内置的:Ilist函数的改进版本。内置的:ilist 函数来自一个计算机没有多少内存的时代,所以它当时不是很有用,因为它会一股脑把所有东西都打印到屏幕上,你无法使用这样的结果(见上文的 Bufferize 插件)。改进后的:Ilist函数从结果中创建一个 quickfix 列表。你现在可以运行:Ilist pattern,这个插件将在当前以及包括的项目文件中找出所有用到的单词模式,并把它们放在 quickfix 窗口中,正是你想要显示所有结果的地方。

  45. Quickfix-reflector

  你不仅希望筛选 quickfix 结果(上面的 Qfgrep),还希望编辑 quickfix 窗口,就好像它只是另一个缓冲区一样。这个插件使得 quickfix 窗口可以修改。现在可以使用dd删除 quickfix 条目,使用i添加新条目。你还可以直接编辑 quickfix 结果,当你通过:w 保存 quickfix 窗口时,文件也会得到更新。

  46. Ranger

  这个插件让你可以跳转到外部 Ranger 文件管理器,在 vim 中打开一个文件。它类似于 Dirvish(见上文),让你可以轻松地进行缓冲区驱动的开发。当你在任何窗口中运行:Ranger命令时,它将启动ranger进程。然后,当你选择一个文件时,它将在选择的文件中作为一个新的缓冲区打开。

  47. Repeat

  Repeat 改进了.命令。它让你可以重复其他插件的命令和动作。例如,如果你使用 Surround 插件(见下文)将文本括在引号中,那么按下.会重复这个动作。

  48. Rooter

  由于 vim 不是 IDE,所以它几乎没有项目的概念,也不知道项目的根目录是什么。当你尝试打开一个文件时,vim 会搜索主目录或其他目录,而不是项目目录。

  这个插件会自动将 vim 的当前工作目录设置为项目目录,使得处理项目变得更加简单。它通过查找最根部的.git目录来实现。通常,此类目录表明了项目的起点。

  49. Scratch

  Vim 的文档提到了一种称为 scratch 缓冲区的特殊缓冲区类型。这个插件实现了它。Scratch 缓冲区是临时丢弃缓冲区。当你在做一个项目的时候,快速笔记是很有用的。使用:Scratch命令打开它。光标将跳转到顶部的 scratch 窗口。当你将光标移动到另一个窗口时,scratch 窗口将自动关闭。

  50. Signature

  当使用标记时,没有一种可视化的方式来告诉你在哪里添加了它们。你可能记得一两个标记,但当你再加的时候,你就迷失了。这个插件解决了这个问题,它会在最左边的列中显示标记。你可以用默认快捷方式mamb、…添加和切换标记,用dmadmb、…删除单个标记,用m-删除所有标记,用]'['跳到下一个和前一个标记,用m/将所有标记放到位置列表窗口中。

  51. Speeddating

  在正常模式下,ctrl+actrl+x可以实现数值递增和递减。这个插件使这些键盘快捷键也可以实现日期和时钟时间的增加。例如,如果光标位于字符串2000-01-31上时,按ctrl+a将使其变为2000-02-01,按ctrl+z将使其变为2000-01-30

  52. Swap

  Swap 让你可以快速地交换单词或逗号分隔的函数参数。例如,如果你有一个函数 print (a, b, c),那么你可以按 g>,它会变成print (b, a, c)。按g<,它会再次变成print (a, b, c)。你还可以通过按gs进入可视化交换模式。然后使用 hjkl 键来交换参数。

  53. Syntax-css3

  CSS3 语法高亮插件。

  54. Syntax-dockerfile

  Dockerfile 语法高亮插件。

  55. Syntax-html5

  HTML5 语法高亮插件。

  56. Syntax-i3config

  i3 窗口管理器配置文件语法高亮插件。

  57. Syntax-javascript

  JavaScript 语法高亮插件。

  58. Syntax-json

  JSON 语法高亮插件。

  59. Syntax-nginx

  Nginx 配置文件语法高亮插件。

  60. Syntax-php

  PHP 语法高亮插件。

  61. Syntax-tmux

  tmux 配置文件语法高亮插件。

  62. System-copy

  Vim 终端没有用于从系统剪贴板复制和粘贴的寄存器*+。这个插件添加了cp快捷方式,通过调用外部实用程序xsel将所选文本或 motion 复制到系统剪贴板。它还具有从系统剪贴板粘贴的快捷方式cv

  63. Tabular

  Tabular 的功能与 EasyAlign(见上文)相同。它对文本进行列对齐。与 EasyAlign 相比,它的一个优点是,你可以直接将用于对齐的正则表达式传给它。与正则表达式相匹配的位置将会对齐。例如:Tabular /regex将创建整齐的regex列。

  64. Targets

  掌握 vim 的一个步骤是学习使用文本对象。文本对象允许你操作整个文本结构,而不是单个字符。Vim 已经附带了许多文本对象——你可以访问单词、句子、段落和代码块。这个插件增加了十几个文本对象。例如,你可以使用di删除逗号分隔的项,或者你可以使用cincil来更改前一个和后一个逗号分隔的项,你可以使用ci+来更改 sum 元素,等等。

  65. Textobj-user

  从头编写自己的文本对象非常困难,因为在调用文本对象时必须精确复制 vim 的行为,并了解所有的陷阱和缺陷。这个插件提供了一个快速简单的接口,让你可以实现自己的文本对象。“textobj”插件有一个完整的生态系统,使用这个插件可以添加各种有用的文本对象。

  66. Textobj-entire

  这个插件使用 Textobj-user(见上文)创建一个文本对象 ie 和 ae 来操作整个文件。例如,要选择整个文件,你可以执行 vae,要删除整个文件,你可以执行 vaed 或 dae。

  67. Textmanip

  这个插件让你可以直观地移动选中的文本。例如,你能可视化地选择一个单词,然后使用快捷键 ctrl+h 和 ctrl+l 将其向左或向右移动。类似地,你可以使用快捷键 ctrl+j 和 ctrl+k 向下移动整个行。

  68. Thesaurus-query

  有了这个插件,你可以访问 Libreoffice 同义词典。一旦配置了它,你可以使用:Thesaurus word命令来查找与 word 相关的所有单词,你还可以使用:ThesaurusW来查找与光标下的单词相关的所有单词。

  69. Tmux-complete

  当你处于流程中时,会同时发生许多事情,并且会打开许多 tmux 窗口和窗格。一个显示 git 日志,另一个用于测试,还有一个显示帮助手册,等等。通常,你需要从 tmux 窗格获取信息到 vim。通常,你必须用鼠标来复制它,但这非常低效。有了这个插件,你可以在插入模式下按下 ctrl+x ctrl+u,从任何 tmux 窗口 / 窗格补全单词。它将提供来自所有 tmux 窗口 / 窗格的所有单词的列表。

  70. Traces

  当用:s/old/new命令替换文本时,执行这个命令后才能看到更改。这个插件让你可以在输入时预览 old 匹配和用于替换的部分 new,你可以直接看到你是否做对了。

  71. Undoquit

  通常,你可能因为操作太快关闭了一个你不想关闭的窗口。有了这个插件,你现在可以按ctrl+w+u撤消关闭操作。

  72. Unicode

  这个插件让你可以快速搜索和插入 Unicode 字符。例如,如果你想插入一个 Unicode 兔子符号,你可以输入 rabbit,然后按下 ctrl+x ctrl+z。输入文字 rabbit 将被“兔子”的表情符号取代。

  73. Unimpaired

  许多命令都是成对的。例如:bn:bp跳到下一个 / 前一个缓冲区,:cn:cp跳到下一个 / 前一个 quickfix 列表项,:ln:lp跳到下一个 / 前一个位置列表项,等等。此插件为这些命令添加了灵活的快捷方式。你现在可以用]b[b跳到下一个/前一个缓冲区,用]q[q跳到下一个 / 前一个 quickfix 条目,用]l[l跳到下一个 / 前一个位置列表条目,等等。

  74. vimade

  当你使用多个分割窗口时,在短暂的分心之后,很容易忘记你在哪个分割窗口中工作。这个插件会淡化其他所有的分割线,使当前聚焦窗口的分割线清晰可见。

  75. Visual-split

  通常,你需要将注释、函数定义或代码片段在上方折叠,使其始终可见。通常的方法是用ctrl+w+s分割窗口,然后用10ctrl+w+-重新调整窗口大小。这个插件合并了这两个动作。现在你可以直观地选择该区域并按下ctrl+w+gss。该插件将分割窗口并调整大小,使其与所选的行完全匹配。

  76. Visual-star-search

  有两个操作符可以搜索光标下的单词。它们是*(向前搜索)和#(向后搜索)。不幸的是,在可视化模式中,它们不会搜索可视化选择部分,你也不能搜索包含特殊字符的单词。例如,如果单词是 h#e#l#l#o,那么这些操作符将选择并搜索这个单词中的一个字母,这不是你想要的。

  使用此插件,你可以搜索可视化选择的序列,它可以包含任何特殊字符。使用v命令进行选择,然后按*#进行搜索。

  77. Writeable-search

  Writeable-search 类似于 CtrlSF(见上文)。它让你可以快速查找结果并立即在结果窗口中编辑它们。当你运行:WritableSearch pattern命令时,它将在当前目录中的所有文件中搜索这个 pattern,并打开一个包含结果的新选项卡。然后,你可以编辑结果,当你在相同的结果窗口中执行:w操作时,它会更改更新文件。如果你已经在 quickfix 窗口中有一个要修复内容的列表,那么你可以通过:WritableSearchFromQuickfix命令将它们转移到这个插件中进行编辑。