Скопируйте все строки в буфер обмена - PullRequest
491 голосов
/ 25 октября 2009

Есть ли способ скопировать все строки из открытого файла в буфер обмена в редакторе VI. Я пытался y G , но он не использует буфер обмена для хранения этих строк

Так возможно ли это?

Ответы [ 24 ]

615 голосов
/ 25 октября 2009

Использование:

: % у +

чтобы восстановить все строки.

Пояснение:

  • % для ссылки на следующую команду для работы на всех строках
  • y чтобы восстановить эти строки
  • + для копирования в системный буфер обмена

NB : в Windows + и * эквивалентны см. Этот ответ .

568 голосов
/ 25 октября 2009

Вы должны вернуть текст в регистры * или + :

г г "* у G

Объяснение:

  • gg чтобы получить курсор на первый символ файла
  • "*y для запуска команды yank в регистр * с первой строки, до ...
  • G до конца файла
73 голосов
/ 12 апреля 2013

на Mac

  • копировать выбранную часть: визуально выбрать текст (введите v или V в обычном режиме режим) и введите :w !pbcopy

  • скопировать весь файл :%w !pbcopy

  • прошлое из буфера обмена :r !pbpaste

49 голосов
/ 25 октября 2009

Буфер обмена буферный + . Чтобы скопировать в буфер обмена, выполните " + y и [движение].

Итак, г г " + у Г скопирует весь файл.

Аналогично, для вставки из буфера обмена, " + p

37 голосов
/ 14 ноября 2016

Другой простой способ скопировать весь файл, если у вас возникли проблемы с использованием VI, - просто набрать «cat filename». Он отобразит файл на экране, а затем вы можете просто прокрутить вверх и вниз и скопировать / вставить.

25 голосов
/ 20 октября 2010

Это то, что я делаю, чтобы восстановить весь файл:

ggVGy
10 голосов
/ 02 марта 2012

(в ответ на @rshdev, чтобы избежать необходимости перекомпилировать vim с + xterm_clipboard per @nelstrom в комментариях к OP)

В Ubuntu 11 есть программа xclip, которая работает как putclip:

:%!xclip -sel clip
u

по умолчанию не устанавливается. для установки используйте:

sudo apt-get install xclip
9 голосов
/ 14 марта 2013

В Ubuntu 12

Вы можете попробовать установить пакет vim-gnome:

sudo apt-get install vim-gnome

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

-> при установке пакета vim-gnome в Ubuntu 12 также была установлена ​​консольная версия vim, у которой эта опция включена (обозначается + перед флагом xterm_clipboard)

В Arch Linux

Вы можете установить vim-clipboard по той же причине.

5 голосов
/ 25 октября 2009

Если вы используете Vim в визуальном режиме, стандартные клавиши вырезания и вставки также применяются, по крайней мере, для Windows.

  • CTRL A означает «Отметить весь файл.
  • CTRL C означает «Копировать выделенную область».
  • ESC означает «Отменить выбор», поэтому следующее нажатие клавиши не заменяет весь файл: -)

Под терминалом Ubuntu (Gnome), по крайней мере, стандартная копия также работает ( CTRL SHIFT C , хотя стандарт не существует сочетание клавиш для select all (кроме ALT E , за которым следует A ).

5 голосов
/ 07 ноября 2013

вы можете нажать gg, чтобы найти курсор в начале файла, а затем нажать yG, чтобы скопировать весь контент от начала до конца (расположенный G) в буфер.

...