Вопрос Как выбрать весь текст в Vi / Vim?


Использование инструмента VI для редактирования файлов конфигурации.

Как я могу выбрать весь текст в файле (около 1000 строк), скопировать его, а затем вставить в Документы Google?


147
2017-12-30 17:05


происхождения




ответы:


Самый простой и быстрый способ - использовать: :  %  Y  + а затем перейдите в Документы Google (или где угодно) и вставьте. Объяснение:

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

Другой способ г  г  "  +  Y  г но вы, вероятно, признаете, что выше все быстрее и проще.


128
2018-03-26 21:30



@Tuxmentat, пожалуйста, объясните, что делает каждый ключ в :%y+ - Jas
Этот ответ был бы лучше, если бы он объяснил, что делает каждый ключ для обеих последовательностей. - AsksAnyway
Мое лучшее предположение: «:» означает, что мы используем команду «ex mode» (я думаю). Во всяком случае, это команда. «%» - специальная спецификатор диапазона командной строки который определяет весь файл. 'y' yanks все, а '+' указывает регистр буфера обмена, : help <command> помог мне понять это. - Hawkeye Parker
я должен делать что-то неправильно. Я печатаю :%y+, и я получаю E488: Trailing characters - johny why
Я получаю «E850: неверное имя регистра». Второй метод отлично работал для копирования, но не попадает в системный буфер обмена на Ubuntu 16.04 (для меня, по крайней мере, у меня есть .vimrc, что может повлиять на вещи). - EntangledLoops


Многие предоставленные ответы также вызывают выбор, которого я не искал.

я использую ggVG для этой цели (необходимо запустить в обычном режиме). Эта команда только выбирает весь текст внутри документа.

Я даже перепрограммировал Ctrl + A, для этой цели, так как мне не нужно увеличивать целое число с помощью ярлыка (по умолчанию Ctrl + A, карта).

Просто добавьте это в свой .vimrc:

map <C-a> <esc>ggVG<CR>

В нем есть <esc> во-первых, чтобы убедиться, что пользователь находится в нормальном режиме.


67
2018-05-29 15:09



Именно то, что я искал, и приятно видеть, что Ctrl + A по умолчанию не занят в vim. Надеюсь, никаких побочных эффектов нет. - Nikos Alexandris
Я лично использую ggVG, но gg0vG$ может быть более уместным, поскольку он более точно повторяет «нормальную» операцию Ctrl + A. - Sheharyar


Вы можете использовать cat file а затем выберите вывод и скопируйте и вставьте, если вам нужно вставить его в свой браузер.

Для vi это то, как вы можете выбрать весь текст и записать его в новый файл:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

Теоретически это должно работать как на Linux, так и на Windows - я пробовал его на Mac, но он не работает.


35
2017-12-30 17:21



Вставить в веб-браузер cat file это путь. shift v метод копирует только в внутренний буфер Vi. - Aleksandr Levchuk
если вы используете системный буфер обмена, который использует * реестр, - но это работает только на X, и я слышал об окнах - так что если вы ssh вам нужен -X-, чтобы проверить, поддерживает ли vim это в vim -: установите буфер обмена + = неназванный
Есть ли альтернатива для этого, не создавая новый файл. Если мы редактируем live на сервере, нам нужно сохранить резервный код на локальном компьютере, чтобы мы могли вернуться назад. - Nagama Inamdar
+1 для кошки и выберите в шпаклере. Конечно, не будет работать для огромных файлов и не самый удобный для пользователя метод. Но для копирования небольших файлов сценариев, выходящих за пределы экрана просмотра, достаточно. - Arnis Juraga


ИСПОЛЬЗУЙТЕ ggVG. введите «gg», чтобы перейти в начало теста Затем введите VG.


13
2017-12-29 12:47





gg"+yG

или

gg"*yG

в зависимости от того, является ли + или * системным буфером обмена. (Во многих unixes + - буфер выбора мыши для щелчка мышью по середине мыши, а * - системный буфер обмена).


6
2017-12-30 19:19



Я думаю, что это наоборот: «* это выбор, а« + »- буфер обмена. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection - Mikel
Ты прав. Я тоже это знал, но набрал неправильную вещь. - frabjous


Я использую Vim 7.4 в среде CentOS-7. Что помогло мне выбрать весь текст

:%y

Тогда просто p в следующем файле, где мне нужна полная копия.

Или 

Вы можете использовать команду cat.

cat copyfile > pastefile

Это git repo есть и другие полезные команды.


4
2017-07-17 04:07





Для Mac используйте pbcopy (copyboard copy):

cat file.txt | pbcopy

Содержимое file.txt теперь находится в буфере обмена для вставки в другое приложение (например, браузер).

Вы также можете вставить содержимое буфера обмена в файл с помощью pbpaste:

pbpaste > file.txt

Хотя это не связано с vi, оно действительно достигает той же цели на Mac.


3
2018-01-08 19:05