如何在Vim中添加接受输入的按键绑定

3

我对vim不太熟悉,但我正在尝试创建一些C++ IDE。

我习惯于使用ctrl f(或ctrl-shift-f)来帮助我查找文件..所以我看到了一个我喜欢的插件叫做pss。

我想用什么东西来替换ctrl-f,它可以接受输入,但仍然添加它自己的参数(例如*.cpp).. 我在想这样的东西:

如何正确地实现它?

noremap <C-f>:Pss $1 *.cpp

这不是你问题的答案,但你可能会发现http://www.vim.org/scripts/script.php?script_id=4450有用。 - johnsyweb
但是我想要在*.cpp文件中只有默认外观 - Alon
2个回答

5

由于您在命令行中具有编辑能力,常用的方法是构建不完整的映射。您可以将光标定位到编辑位置,像这样:

:noremap <C-f> :Pss  *.cpp<Left><Left><Left><Left><Left><Left>

触发映射(通过<C-f>),您可以插入搜索模式,然后通过<CR>触发搜索。

替代方法

您可以通过input()函数查询输入;其结果可以通过:execute插入到命令行中:

:noremap <C-f> :execute 'Pss' input('Pattern: ') '*.cpp'<CR>

非常非常好,第二个选择更酷,但第一个是非常好的了解。 - Alon

0
默认搜索热键比“Ctrl-F”更快,您可以在普通模式下键入“/”,然后继续输入关键字。一旦您需要在多个文件中进行搜索,grep就是您的好帮手。

那么,即使是grep,如何将其默认设置为查找*.cpp文件? - Alon
@Alon:我的方式是:alias finder='find . -name "*.cpp" | xargs grep'。请查阅 man find -print0 以使其更加健壮。 - erenon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接