这是this question的后续(但不一致的问题),我将在此重申完成。
我有一个Vim映射来开始搜索(ack-grep with ack.vim plugin)来自当前目录的目录中的模式(所以结果在:pwd之后)。当我正在查看缓冲区时,此映射有效。
我想在netrw中使用相同的映射。但是,我想将当前目录(:pwd)更改为netrw显示的目录,因此搜索将从我正在查看的目录开始。我知道我可以使用netrw c命令执行此操作。如何在函数中提供c
命令?
我试过了:
function! StartAckSearch()
" If we're in netrw change the current directory to the directory we're
" viewing
if &ft ==# 'netrw'
echo 'in netrw'
c
endif
endfunction
nnoremap <Leader>a :call StartAckSearch()<CR>
和
我试过了:
function! StartAckSearch()
" If we're in netrw change the current directory to the directory we're
" viewing
if &ft ==# 'netrw'
echo 'in netrw'
execute 'c'
endif
endfunction
nnoremap <Leader>a :call StartAckSearch()<CR>
但它们都不起作用。
问题 如何使用Vimscript调用netrw命令? (如果我的问题可以改写为更清楚,请继续)
答案 0 :(得分:2)
我认为您可以使用norm c
来调用它。
另一种方式是exe 'norm c'