我想知道在Vim中是否可以创建一个映射(用于普通模式),允许用户在映射执行之前输入.
我想为我最常用的grep命令创建一个快捷方式的映射.我希望命令允许输入我正在搜索的内容然后在输入时执行.
这就是我想要的东西:
nmap F :grep! "*user input*"<CR>:cw<CR>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何暂停和接受用户输入.我是否以正确的方式思考这个问题?有没有更好的方法来做我想做的事情?
Ant*_*nko 14
有一个功能input(prompt [, text [, completion]]):
结果是一个String,它是用户在命令行上键入的内容.{prompt}参数可以是提示字符串,也可以是空字符串(无提示).可以在提示符中使用'\n'来开始新行.
(来自:help input()).
对于类似的事情:grep!,您可能必须使用字符串表达式然后构建命令:execute.
另一种方法是创建自定义命令并使用映射来调用新命令.
command! -nargs=+ -complete=file -bar Grep grep! <args>|cw
Run Code Online (Sandbox Code Playgroud)
现在您可以创建映射:
nnoremap <f2> :Grep<space>
Run Code Online (Sandbox Code Playgroud)
您可能还希望远离映射F键,因为它是一个非常方便的映射.
有关更多帮助请参阅:
:h :command
Run Code Online (Sandbox Code Playgroud)