我的日常工作包括经常需要在 HTML 或 Sass 部分中查找同名的 HTML 类或 CSS 选择器。
目前我正在这样做:
:vimgrep/searchTerm/**/*.html
或者:
:vimgrep/searchTerm/**/*.scss
但是,每次手动输入的效率非常低,所以我正在寻找快捷方式。我是 Vim 新手,但通过 Google 搜索和搜索,所以我知道自己更明智。
是否可以创建一些快捷方式,因此我只需输入:
:se searchTerm scss
或 :se searchTerm html
并让它自动填充重复的部分?我只是在该示例中使用 :se
因为它很简洁,但我想它可以是任何东西。
或者,我应该使用一些更智能的搜索工具吗?我习惯了 Sublime 的搜索,我一直对它感到满意 - 它速度快如闪电,并且还提供了一个结果列表,您可以选择,单击其中一个即可直接进入类/选择器。
这里的任何指示/生产力技巧表示赞赏。
更新:刚刚找到https://github.com/dkprice/vim-easygrep这看起来非常直观。我还应该看看其他类似的东西吗?
最佳答案
好吧,让我们把它变成一个自定义命令。 :se
不行,自定义命令必须以大写字母开头,所以让我们使用 :Se
:
:command Se vimgrep /searchTerm/ **/*.html
这尚未参数化。让我们允许搜索词的参数:
:command -nargs=1 Se vimgrep /<args>/ **/*.html
然后,默认文件扩展名为当前缓冲区的扩展名;我们现在需要:execute
插入值:
:command -nargs=1 Se execute 'vimgrep /<args>/ **/*.' . expand('%:e')
将模式和扩展名作为参数传递需要我们拆分参数。 Vim 可以使用 <f-args>
传递单个字符串;我们可以通过用 [
包装它来制作一个列表。和]
,然后使用索引来提取参数:
:command -nargs=+ Se execute 'vimgrep /' . [<f-args>][0] . '/ **/*.' . [<f-args>][1]
瞧!
<小时/>当然,有几个插件可以使搜索变得更容易,但正如您所看到的,逐步为特定用途构建自定义命令也很容易。 :help :command
拥有所有信息。
关于search - Vim – 全站搜索的快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812865/