我正在使用Windows 7中的gvim中的几个文件。我需要在linux中测试文件(Python脚本)。因此除了原始位置之外,我还想将文件保存在名为linux
的文件夹中。我想用我将要创建/修改的新文件来做这件事。这就是为什么我想使用带有%
符号的映射来获取当前文件的名称到新路径中。
我遇到的问题是%
符号是用反斜杠转义的,所以这不起作用:
:w C:\projects\linux\%:t
成为原始位置:
C:\projects\foo\
是否有一种简单的方法可以将当前文件保存在其他文件夹中? (我已经读过%
符号是一个文件名字符,所以我可以从字符串isfname
中删除它并且它应该可以工作但是我认为我使它比实际上更复杂。)
答案 0 :(得分:1)
我的回忆是你可以通过加倍来逃避反斜杠(但我目前不在Windows上,因此我无法立即确认)。你不需要全部逃避它们,只需要引起麻烦的那个:
:w C:\projects\linux\\%:t
答案 1 :(得分:0)
您可以使用autocmd
功能自动完成此类操作。
平台等同于~/.vimrc
的以下(未经测试)行将在gvim
进行修改时更新文件的副本:
" clear commands
autocmd!
" when writing buffers, save a copy -- see :help filename-modifiers
autocmd BufWritePost c:/path/to/source/directory w %:t
:t
将只取路径名的尾部;如果您正在使用多级目录,那么:p:.
可能会更好。有关详细信息,请参阅文档。
答案 2 :(得分:0)
抱歉,聚会晚了,但是您也可以使用解决方法
:exe 'w C:\projects\linux\' . expand('%:t')
答案 3 :(得分:0)
如果您将最后一个反斜杠更改为正斜杠,它将起作用:
:w C:\projects\linux/%:t