В vi / vim, как добавить в файл вместо его записи?

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

Пример использования: я хочу взять некоторые образцы из файла журнала в другой файл. Чтобы достичь этого сегодня, я могу сделать:

  1. Открыть файл журнала
  2. Выберите несколько строк с помощью Shift+v
  3. Запись в файл :w /tmp/samples
  4. Выберите еще несколько строк с помощью Shift+v
  5. Добавить в /tmp/samples с помощью :w !cat - >> /foo/samples

К сожалению, шаг 5 длинный, уродливый и подверженный ошибкам (отсутствует a > заставляет вас потерять данные). Надеюсь, у Вима есть что-то получше.

2 Solutions collect form web for “В vi / vim, как добавить в файл вместо его записи?”

От :h :w :

  :w_a :write_a E494 :[range]w[rite][!] [++opt] >> Append the specified lines to the current file. :[range]w[rite][!] [++opt] >> {file} Append the specified lines to {file}. '!' forces the write even if file does not exist. 

Итак, если вы выбрали текст с использованием визуального режима, просто выполните :w >> /foo/samples ( :'<,'> будет автоматически добавляться). Если вы пропустите V > , Vim будет жаловаться:

 E494: Use w or w>> 

Определить функцию:

 fun! App(filename) exec "w !cat - >> " . shellescape(a:filename) endfunc 

Вызвать функцию:

 call App('/foo/samples') 
  • Невозможно получить vim для распознавания unicode
  • Подавление стандартного вывода в vim-latex-suite
  • Загрузка цветовой схемы не влияет на Vim
  • Код выхода Ansi в VIM
  • Bash внутри Vim не работает должным образом
  • Безопасно удалить Ubuntu-минимальный пакет?
  • tmux: как связать ключ для запуска команды оболочки?
  • Как выражать «Есть указанный символ в следующих неизвестных числах символов» в regex (vim)?
  • Сопоставимые определения цвета в файле vimrc
  • Почему Вим иногда показывает эти странные персонажи?
  • vim: используйте другую цветовую схему при подключении через SSH
  • Linux и Unix - лучшая ОС в мире.