大部分时间我都会像def
一样进行常规搜索,但应该将光标移到那个地方,/def <search character>
。我在想创造一些捷径。
我试过这个
command # /def
希望如果我做 ESC #,它会输入/def<space>
,但它不会。
抛出错误
E182: Invalid command name
我该怎么做?
答案 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>
在您访问定义后跳回(它弹出标记堆栈)对于快速映射,请使用以下内容:
nnoremap <leader>t :ta<space>
更多替代方案:
:h cscope
:vimgrep
/ :grep
/ ack / ag / git-grep搜索多个文件gd
(转到定义)。请参阅:h gd
如需更多帮助,请参阅以下内容:
:h tags
:h ctrl-]
:h ctrl-w_ctrl-]
:h :tag
:h ctrl-t
:h :vimg
:h :grep
:h gd
:h cscope