VIM 7和cscope:在键盘映射中使用“cscope find f”来切换文件

时间:2011-03-24 06:06:48

标签: vim shortcut cscope

我通常使用

在我的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>

1 个答案:

答案 0 :(得分:2)

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

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

但为什么不呢:

noremap ` :cscope find f<space>

这会让你在最后一个空格准备好进入你的模式后,只需点击输入