Добавить или добавить выбранный текст в файл в Vim - PullRequest
19 голосов
/ 06 февраля 2012

В Vim есть способ переместить выделенный текст в <current_file>.bak, добавляя или добавляя?Если возможно, файл резервной копии не должен отображаться.

Я предполагаю, что рабочий процесс будет следующим:

  1. Выберите какой-либо текст
  2. Тип :sbak
  3. Выбор сохраняется в <current_file>.bak

Ответы [ 2 ]

31 голосов
/ 06 февраля 2012

Вы можете сделать это в три шага:

  • введите Shift-v j ... j , чтобы выбрать некоторыестроки
  • введите :'<,'>w! >>file.bak для сохранения выбранных строк в file.bak (добавление)
  • введите g v d для удаления исходных строк

Вы можете написать пользовательскую команду Sbak, если хотите:

com! -nargs=1 -range Sbak call MoveSelectedLinesToFile(<f-args>)
fun! MoveSelectedLinesToFile(filename)
    exec "'<,'>w! >>" . a:filename
    norm gvd
endfunc
11 голосов
/ 06 февраля 2012

А как же

  1. v
  2. некоторая команда движения / даже поиск для выделения текста
  3. :'<,'> w! >> /YOUR/SELECTIONFILE
  4. :'<,'>d

Это то, что вы хотите? Если это так, установите map для него, например

map <F2> :'<,'> w! >> /YOUR/SELECTIONFILE<cr>:'<,'>d<cr>

Примечание это добавляет к SELECTIONFILE, и не только выделение, но и целые строки. Кроме того, прочитайте :h :w и :h ++opt (в котором вы можете узнать о возможных вариантах записи файлов (например), вы можете добавить к файлу с другой кодировкой, что действительно мешает, так что не делайте этого ;-)

...