2013-08-06 23 views
1

我有一個noremap將當前完整文件路徑發送給解釋器。將替代應用於地圖中的字符串變量

問題是,在窗口\需要/ - 所以當我通過expand("%:p")錯誤被拋出。

我已經想通過使用:[email protected]\\@/@g在vim編輯框中的字符串做到這一點,但是,我無法弄清楚如何在從vim發送給解釋器之前將替代命令應用於字符串。

這可能嗎?

回答

3

有一個substitute()函數,它的工作原理與:s一樣:只需使用substitute(expand("%:p"), '\\', '/', 'g')即可。但是,對於這種特殊的字符交換,更簡單的tr()就足夠了:tr(expand("%:p"), '\', '/')

實際上,一個簡單的替換實際上可以結合expand()(感謝Peter Rincker的評論!),通過文件名修飾符的一個相當模糊的特性:expand('%:p:gs?\\?/?')

另外,看看:set shellslash;它可以在Windows上將反斜槓全局翻譯成正斜槓。

+0

+1/accepted ...謝謝(當然可能...這是'vim' :) – ricardo

+3

您可以擴展並替換爲一個命令:'expand('%:p:gs?\\ ?/?')'。有關更多信息,請參閱':h filename-modifiers'。 –