0

これは、この質問のフォローアップです(ただし、明確な質問です)。ここで繰り返し説明します。

現在のディレクトリであるディレクトリからパターンの検索を開始するためのVimマッピング(ack.vimプラグインを使用したack-grep)があります(したがって、:pwdの後の結果)。このマッピングは、バッファーを見ているときに機能します。

netrwにいる間も同じマッピングを使用したいと思います。しかし、現在のディレクトリ(:pwd)をnetrwが表示しているディレクトリに変更したいので、検索は私が見ているディレクトリから開始されます。netrwcコマンドでこれを実行できることはわかっています。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 に答える