Сохранить файл в другой папке в vim - PullRequest
2 голосов
/ 05 марта 2012

Я работаю с несколькими файлами в gvim в Windows 7. Мне нужно протестировать файлы (скрипты Python) в Linux.Поэтому, помимо их первоначального местоположения, я хочу также сохранить файлы в папке с именем linux.Я хочу сделать это с новыми файлами, которые я буду создавать / изменять.Вот почему я хочу использовать сопоставление со знаком %, чтобы получить имя текущего файла в новом пути.У меня проблема в том, что знак % экранирован обратной косой чертой, поэтому это не работает:

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

Исходное местоположение:

C:\projects\foo\

Isли простой способ сохранить текущий файл в другой папке?(Я читал, что знак % является символом имени файла, поэтому я мог бы стереть его из строки isfname, и он должен работать, но я думаю, что я делаю это более сложным, чем он есть на самом деле.)

Ответы [ 3 ]

1 голос
/ 05 марта 2012

Насколько я помню, вы можете избежать обратной косой черты, удвоив ее (но сейчас я не на Windows, поэтому не могу подтвердить ее сразу). Вам не нужно избегать их всех, только тот, который вызывает проблемы:

:w C:\projects\linux\\%:t
0 голосов
/ 01 апреля 2019

Извините, опоздал на вечеринку, но вы также можете использовать обходной путь

:exe 'w C:\projects\linux\' . expand('%:t')
0 голосов
/ 05 марта 2012

Вы могли бы сделать это довольно автоматически, используя функцию 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:. будет лучше. См. Документацию для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...