Vim在命令中找到文件快捷方式

时间:2018-09-11 05:37:15

标签: vim

嗨,我使用vimgrep在项目中查找文本。

但是有点慢,因为我每次都要写:

vimgrep /text/ **/*.* | cwindow

是否有任何方法可以在C-shift-F中进行映射并显示文本框。

之后,当我按下Enter键时,将执行vimgrep命令。

这将节省很多时间

谢谢

1 个答案:

答案 0 :(得分:1)

Vim具有高度可定制性(这是其流行的一个重要原因),因此有几种提供快捷方式的可能性:

不完整的映射

映射不一定包含完整的命令。您只需准备命令行并将光标停留在某个位置,以便可以填写其余内容并使用 Enter 触发(Ex)命令。例如:

:nnoremap <Leader>f :vimgrep // **/*.* <Bar> cwindow<Home><Right><Right><Right><Right><Right><Right><Right><Right><Right>

后退键将光标置于//之间,因此您可以填写text,然后执行命令。

注意:建议的<C-S-f>映射将与<C-f>相同(当前实现中的不幸限制),因此将覆盖有用的内置命令。我改用了<Leader>f(其中该键的默认值为 \ ; cp。:help <Leader>)。

自定义命令

这已经很不错了,但是假设我们永远不需要编辑命令的其他部分,我们可以将其缩短为自定义命令,例如:FindText

command! -nargs=1 FindText vimgrep /<args>/ **/*.* | cwindow

以此,您可以通过:FindText text进行搜索。如果您仍然喜欢映射,它将变成

:nnoremap <Leader>f :FindText<Space>

自定义命令的其他好处是,这些命令更容易从命令行历史记录中调用(因为它们与您可能使用的其他:vimgrep命令不同),并且您正在构建更高级别的库编辑命令,随着时间的推移,这些命令可以重复使用,以构建更高级别的命令,从而使您的编辑更加高效。