Vim:Vimscript调用netrw命令

时间:2012-08-17 09:27:51

标签: vim netrw

这是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命令? (如果我的问题可以改写为更清楚,请继续)

1 个答案:

答案 0 :(得分:2)

我认为您可以使用norm c来调用它。

另一种方式是exe 'norm c'