Кто-то помог бы мне с командой для данных копии из буфера "a" в новый .txt файл? Я скопировал 30 строк от Vi посредством команды ("a30yy
) в буфер "a" и я не делаю известный, как скопировать эти данные в новый .txt файл.
После того, как вы скопировали строки ("a30yy
), откройте новый файл (:e some-file
- открыть в текущем разделе / окне, :tabe some-file
- открыть в новой вкладке, :vs some-file
- открыть в новом вертикальном разбиении / окно и т. д.), перейдите к позиции, в которую вы хотите вставить его, и выполните "ap
(или "aP
, если вы хотите вставить перед курсором).
Технически, a
здесь - это регистр , а не буфер . Регистры - это место, где хранится скопированный (восстановленный) или вырезанный (удаленный) текст. Буферы в Vim - это объекты, которые представляют файлы. Поэтому, когда вы открываете файл в Vim, создается новый буфер, который представляет этот файл. Буфер отображается в окне (он же разделен), а вкладки содержат расположение окон. Один и тот же буфер может отображаться в нескольких окнах. Смотри этот Vi & amp; Vim post .
Если ваша цель - сохранить определенные последовательные строки из файла a в новый файл b, то вы можете использовать визуальный выбор для записи в новый файл .
:'<,'>w new.txt
Но если ваша цель - сбросить содержимое регистра в файл , как предложено muru в связанном сообщении, используйте это:
:call writefile(getreg('a', 1, 1), "new_filename.txt")
Если вы хотите сделать это короче, вы можете определить свою собственную функцию в ~/.vimrc
(назовите ее Wrf
для записи в регистр в файл)
function Wrf(regname,fname)
call writefile(getreg(a:regname,1,1),a:fname)
endfunction
Теперь вы можете просто сделать в vim:
:call Wrf('a','new_textfile.txt')