0

这是这个问题的后续(但一个独特的问题),我将在此重申以完成。

我有一个 Vim 映射来开始搜索(带有 ack.vim 插件的 ack-grep)从当前目录的目录中查找模式(因此是 :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 命令?(如果我的问题可以改写更清楚,请继续)

4

1 回答 1

2

我想你可以用norm c它来调用它。

另一种方法是exe 'norm c'

于 2012-08-17T09:31:37.393 回答