netrw (Vim で) に絶対パスを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com//questions/9609026

  •  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 のコマンドで十分かもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top