noremap
現在の完全なファイル パスをインタープリターに送信する があります 。
問題は、Windowsでは\
必要があるということです/
-そのため、パスexpand("%:p")
するとエラーがスローされます。
を使用してvimの編集フレームの文字列でこれを行う方法を理解しましたが:s@\\@/@g
、vimからインタープリターに送信する前に文字列に置換コマンドを適用する方法がわかりません。
これは可能ですか?
noremap
現在の完全なファイル パスをインタープリターに送信する があります 。
問題は、Windowsでは\
必要があるということです/
-そのため、パスexpand("%:p")
するとエラーがスローされます。
を使用してvimの編集フレームの文字列でこれを行う方法を理解しましたが:s@\\@/@g
、vimからインタープリターに送信する前に文字列に置換コマンドを適用する方法がわかりません。
これは可能ですか?
substitute()
次のように機能する関数があり:s
ますsubstitute(expand("%:p"), '\\', '/', 'g')
。ただし、この特定の文字の入れ替えについては、より単純なものでtr()
十分です: tr(expand("%:p"), '\', '/')
.
実際には、ファイル名修飾子のかなりあいまいな機能を介して、単純な置換を実際に組み合わせることができますexpand()
(コメントをくれた Peter Rincker に感謝します!) expand('%:p:gs?\\?/?')
。
また、見てください:set shellslash
。Windows ではバックスラッシュをスラッシュにグローバルに変換できます。