Vim 使用 input() 和嵌套命令执行命令

Vim exec command with input() and nested command

我想创建一个 vim 命令,它正在等待输入 THEN,它将在第一个命令后自动执行 ':cw'。

这是我的尝试:

noremap <C-p> :exec ":ProjectGrep /".input('Search: ')"/ src/**"<CR>:cw

但是':cw'并没有在命令之后执行,它完成了输入()。

将以下代码段添加到您的 vimrc 中,使 Vim 在存在有效 errors/locations:

时打开 quickfix/location window
augroup qf
    autocmd!
    autocmd QuickFixCmdPost [^l]* cwindow
    autocmd QuickFixCmdPost l* lwindow
augroup END

该片段解决了我认为是您的潜在问题(在您执行搜索命令后自动打开 quickfix window),但不是您的实际问题。

无论如何,cwindow 应该是您的 :ProjectGrep 命令调用的函数中的最后一个命令;不在映射级别。