search - Vim – 全站搜索的快捷方式?

标签 search vim performance

我的日常工作包括经常需要在 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/

相关文章:

performance - 高效的文件I/O和字符串到浮点的转换

php - 使用 MySQL PHP 进行部分词搜索

php - 在 MySQL 和 PHP 中返回找到值的行的 id

search - 如何在vim中使用awk进行搜索和替换?

regex - 在字符串中搜索/替换

regex - 正则表达式 - 删除模式前面的空格

ruby - 在 (Mac)Vim 中查看 ri 时摆脱 ANSI 转义字符

vim - 搜索和替换相同的视觉区域

Ruby:在字符串中查找前 N 个正则表达式匹配项(并停止扫描)

c++ - 为什么 emplace_hint 比插入 map 慢?