2

我通常通过使用在我的 cscope 索引代码库上的文件之间跳转

:cscope find f <filename>

我正在尝试定义一个键盘快捷键,以防止我每次都必须输入“:cscope find f”。按此快捷方式会弹出一个输入提示,我将在其中输入 cscope 数据库中文件名的一部分。如果有多个文件,它会显示文件列表,我可以从中选择要访问的文件。到目前为止,我已经完成了这么多,但是由于我一点也不精通 VIM 脚本,所以我无法完成它。(到目前为止,我编码的内容来自另一个问题,感谢Eelvex)。

有人可以为我纠正以下脚本吗?尝试使用此快捷方式时遇到许多错误

function! GetPat()
  call inputsave()
  let filename = input("Enter filename: ")
  call inputrestore()
  return filename
endfunction
map ` :cscope find f '.GetPat().'<CR>
4

1 回答 1

2

映射不会等待您输入输入然后继续。此外,映射是错误的,请记住映射就像您键入文本一样工作,您可能会使用类似的东西(未测试):

noremap <expr> ` ':cscope find f '.GetPat()."\<CR>"

但为什么不只是:

noremap ` :cscope find f<space>

这将使您在最后一个空间准备好进入您的模式并点击enter.

于 2011-03-24T06:42:39.170 回答