1
我有一個noremap
將當前完整文件路徑發送給解釋器。將替代應用於地圖中的字符串變量
問題是,在窗口\
需要/
- 所以當我通過expand("%:p")
錯誤被拋出。
我已經想通過使用:[email protected]\\@/@g
在vim編輯框中的字符串做到這一點,但是,我無法弄清楚如何在從vim發送給解釋器之前將替代命令應用於字符串。
這可能嗎?
我有一個noremap
將當前完整文件路徑發送給解釋器。將替代應用於地圖中的字符串變量
問題是,在窗口\
需要/
- 所以當我通過expand("%:p")
錯誤被拋出。
我已經想通過使用:[email protected]\\@/@g
在vim編輯框中的字符串做到這一點,但是,我無法弄清楚如何在從vim發送給解釋器之前將替代命令應用於字符串。
這可能嗎?
有一個substitute()
函數,它的工作原理與:s
一樣:只需使用substitute(expand("%:p"), '\\', '/', 'g')
即可。但是,對於這種特殊的字符交換,更簡單的tr()
就足夠了:tr(expand("%:p"), '\', '/')
。
實際上,一個簡單的替換實際上可以結合expand()
(感謝Peter Rincker的評論!),通過文件名修飾符的一個相當模糊的特性:expand('%:p:gs?\\?/?')
。
另外,看看:set shellslash
;它可以在Windows上將反斜槓全局翻譯成正斜槓。
+1/accepted ...謝謝(當然可能...這是'vim' :) – ricardo
您可以擴展並替換爲一個命令:'expand('%:p:gs?\\ ?/?')'。有關更多信息,請參閱':h filename-modifiers'。 –