保存文件在vim中的其他文件夹中

时间:2012-03-05 11:53:29

标签: windows vim

我正在使用Windows 7中的gvim中的几个文件。我需要在linux中测试文件(Python脚本)。因此除了原始位置之外,我还想将文件保存在名为linux的文件夹中。我想用我将要创建/修改的新文件来做这件事。这就是为什么我想使用带有%符号的映射来获取当前文件的名称到新路径中。 我遇到的问题是%符号是用反斜杠转义的,所以这不起作用:

:w C:\projects\linux\%:t

成为原始位置:

C:\projects\foo\

是否有一种简单的方法可以将当前文件保存在其他文件夹中? (我已经读过%符号是一个文件名字符,所以我可以从字符串isfname中删除它并且它应该可以工作但是我认为我使它比实际上更复杂。)

4 个答案:

答案 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