如何在vim中创建搜索快捷方式

时间:2014-12-05 13:35:21

标签: vim

大部分时间我都会像def一样进行常规搜索,但应该将光标移到那个地方,/def <search character>。我在想创造一些捷径。

我试过这个

command # /def

希望如果我做 ESC ,它会输入/def<space>,但它不会。

抛出错误

E182: Invalid command name

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您正在寻找map而不是command。试试这个:

nnoremap <F3> /def<space>

我没有映射#,而是使用了<F3>,因为#在普通模式下非常有用。如果您愿意,可以使用#

答案 1 :(得分:1)

使用/进行搜索的替代方法是使用ctags。使用标签可以执行以下操作:

  • 通过<c-]>
  • 跳转到光标下的定义
  • <c-w><c-]><c-]>相同,但在新拆分窗口中打开定义
  • :tag {tag_name}将跳转到{tag_name}
  • 的定义
  • :tag使用完成功能,因此<tab><c-d>可以帮助您减少输入
  • :tag可以使用正则表达式来匹配标记的一部分。例如:tag /foo(也使用完成)
  • 使用<c-t>在您访问定义后跳回(它弹出标记堆栈)
  • 查看Tim Pope的Effortless Ctags with Git文章,以便轻松生成标记文件

对于快速映射,请使用以下内容:

nnoremap <leader>t :ta<space>

更多替代方案:

  • 了解cscope更多定义查询的乐趣。请参阅:h cscope
  • jedi-vim是一个流行的python完成插件。它也适用于定义支持
  • 当标签不可用时,使用:vimgrep / :grep / ack / ag / git-grep搜索多个文件
  • 对于简单案例,请使用gd(转到定义)。请参阅:h gd
  • 查看替代标记生成器,如GNU Global或语言特定的标记生成器。例如jstags

如需更多帮助,请参阅以下内容:

:h tags
:h ctrl-]
:h ctrl-w_ctrl-]
:h :tag
:h ctrl-t
:h :vimg
:h :grep
:h gd
:h cscope