11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

好用的 77 款 Vim 插件

  • 2020-04-18
  • 本文字数:9767 字

    阅读完需:约 32 分钟

好用的77款Vim插件


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_post|s(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 class="post">cursor here</div>,那么这个插件将突出显示<div></div>标签。


38.Matchup

Matchup 添加了快捷方式%,允许你在匹配的括号对之间快速跳转。如果你的光标在{字符上,那么按 %后它将跳到}。如果你再次按 %,它将跳回{。它还添加了快捷方式z%,使你可以向前跳转到下一对圆括号内。假设你有一个函数pri|nt_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命令将它们转移到这个插件中进行编辑。


英文原文:vim plugins that I use


2020-04-18 07:003475
用户头像

发布了 532 篇内容, 共 242.3 次阅读, 收获喜欢 1273 次。

关注

评论

发布
暂无评论
发现更多内容

可视化算法网站汇总,从此简单学算法!(附动图)

王磊

Java 算法

vs code中使用vetur对eslint格式化

玏佾

vscode

玄姐公开课总结【构建基于ServiceMesh的普适业务中台架构】

魔曦

架构 Service Mesh

量子技术到底有哪些突破值得重点关注?

蔡芳芳

02-kubernetes自建CA及双向TLS认证

绿星雪碧

Kubernetes TLS CA证书

你并不理解i++和++i

flyhero

Java 程序员 JVM i++

关于UML、4+1视图、系统架构的思考

吴建中

SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)

小傅哥

小傅哥 中间件 springboot 分布式任务

搭建websocket消息推送服务,必须要考虑的几个问题

GoEasy消息推送

websocket 消息推送 即时通讯

架构师训练营--第1周总结感想

芥菜

LocalDateTime和Date的比较与区别

彭阿三

时间格式化 LocalDateTime Date

游戏夜读 | 如何成长为游戏人?

game1night

系统/子系统/模块/组件/框架/架构

gen_jin

Intellij IDEA 右击没有run

程李文华

架构第一课学习总结

师哥

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

数据同步,应该如何设计

迹_Jason

<<架构师训练营>>第一周作业

R20114

极客大学架构师训练营

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

非结构化数据可视化 —— 现在与未来

做技术BP的文案Gou

人工智能 大数据 数据可视化 非结构化数据

小师妹学JavaIO之:NIO中Channel的妙用

程序那些事

io nio 小师妹 buffer channel

数据库周刊27丨6月最新国产数据库排行;OB成立新公司奥星贝斯;腾讯云发布图数据库TGDB;Oracle坏块修复;MySQL故障排查导图;经典SQL语句大全...

墨天轮

数据库

Android 无埋点从入门到放弃:了解 Java 字节码

GrowingIO技术专栏

钟离昧的一梭子架构师之旅

X中倪

30岁,就被大厂抛弃了

J.Smile

求职

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

钟离昧的第一张架构设计图之旅

X中倪

架构师训练营第一周学习总结

R20114

2020年6月11日 高性能MySQL

瑞克与莫迪

【写作群星榜】6.5~6.11写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

让独立思考成为习惯

Neco.W

学习 深度思考 思考

好用的77款Vim插件_语言 & 开发_Peter_InfoQ精选文章