netrw (Vim で) に絶対パスを使用するにはどうすればよいですか?
-
09-12-2019 - |
質問
Windows 上で Vim73 を使用しており、ファイル ブラウザを通じてファイルを移動しようとしています。
「move」が実行できないというエラーが表示されていました(「move」を参照) この郵便受け)。いくつかのデバッグの後、問題は私の中にあることがわかりました vim73\autoload\netrw.vim
ファイル。move コマンドは機能しましたが、別の問題があります。どうやら、閲覧しているディレクトリに問題があるようです。 :Ex
は現在の作業ディレクトリではないので、 mv.exe
(UnxUtils からの) コマンドでソースまたは宛先が見つかりません。
問題を引き起こす netrw の行は次のとおりです。
let ret= system(g:netrw_localmovecmd." ".shellescape(fname)." ".shellescape(s:netrwmftgt))
ラッピングしてみました shellescape()
で機能する expand()
, 、しかしそれは役に立たなかったようです。
ソースと宛先の絶対パスを取得する方法はありますか?
解決 2
結局のところ、カーソルが ..
ファイルリストでは、それがディレクトリであると見なされます。
本当に必要なのは、カーソルをバナー領域に移動してから、 mt
- または mt
親ディレクトリから。
おっと!
他のヒント
絶対パスを試行するのではなく、次のように設定します。 g:netrw_keepdir
あなたのために働きますか?これはまさにあなたが望んでいることではありません (vim CWD を取得して、その逆ではなく netrw に適用することだと思います) が、netrw を使用して vim CWD を管理することに問題がない場合は、コマンドは正常に動作する可能性があります。そのまま。
編集:見る :help netrw-c
冗長な説明のために。の c
netrw のコマンドで十分かもしれません。