2013-12-03 6 views
3

Я хотел бы сделать :wa, но сохранить все буферы по новому пути. Я мог бы каждый буфер писать их индивидуально на новый путь, но я хочу сделать это для всех открытых буферов. Мне было бы все равно, были ли удалены все подпункты или абсолютные пути, и все было просто в одном каталоге.Сохраните все буферы vim в новый каталог

Я пытаюсь сохранить все открытые файлы vim после удаления каталога из оболочки, в то время как vim был открыт.

+2

Я вижу, что у вас есть семь вопросов с нулевыми принятыми ответами и нулевым голосом. Это не приятно. Большинство пользователей, которые помогают вам получить обратную связь, и как работает StackOverflow. А также для тех, кто пришел позже, чтобы найти приемлемый ответ на ту же проблему. – Birei

+1

Спасибо, что указали это. Я пройду и соглашусь/голосую. Ответы определенно помогли мне. – user1088084

ответ

4

Все буферы требует :bufdo. С %:t вы получаете имя текущего буфера (без пути). Прочитайте :help filename-modifiers для всех них; вы также можете включить субпаты. Ergo (сделать копии в /tmp/backup):

:bufdo write /tmp/backups/%:t 
+0

Ничего себе! Я приближаюсь к восстановлению моего проекта. Проблема в том, что многие файлы были записаны как 0 байтов. Являются ли эти скрытые буферы или что-то еще? – user1088084

+0

': bufdo' будет охватывать все перечисленные файлы (см.': Ls'). Получали ли вы сообщения об ошибках? У этих 0-байтовых файлов действительно есть контент внутри Vim, и это происходит, когда вы вручную ': w othername' такой файл ?! –

+0

Нет сообщений об ошибках, они просто генерируют 0-байтные файлы. Я использую плагин [FuzzyFinder] (http://www.vim.org/scripts/script.php?script_id=1984), и я не очень много смотрел на его код, поэтому, возможно, он каким-то образом загружает/выгружает буферы как часть его работы? – user1088084

Смежные вопросы