Витягнути весь файл


126

Я часто щось пишу в gVim, після чого потрібно скопіювати та вставити його в інший додаток.

Чи є простий спосіб витягнути весь файл? Я зазвичай роблю щось подібне

ggVG"+y

(Перейти вгору, режим візуального рядка; перейти вниз, тягнути)

Але чи є кращий спосіб, який я пропускаю?

Відповіді:


202

Я використовую таку інструкцію: :%y+


6
Що робить +, будь ласка?
VoY

5
Це реєстр, пов’язаний із буфером обміну. Той самий, який використовував ОП у своєму питанні. => :h :y,:h registers
Люк Ермітт

5
@VoY: Для отримання робочого "+ буфера обміну" вам потрібно скласти буфер обміну -власність у Vim. Це означає "все, що стосується зовнішнього-буфера обміну в якомусь вікні-менеджера". Ця властивість не є фактичною, але вона має деякі графічні вими, очевидно де-факто, такі як gVim. Будь ласка, виправте мене, якщо я помиляюся (щойно я помітив цю річ, коли довелося використовувати yank у Windows gVim, тому я не можу бути абсолютно впевненим, але я вважаю, що це властивість).
hhh

8
Якщо реєстр + не працює для вас в ubuntu 11.04+, спробуйте встановити gVim (apt-get install vim-gnome). Це також забезпечить властивість + буфер обміну в термінальній версії vim
adharris

3
Раніше я це робив, gg"+YGале мені це ніколи не подобалося, тому що я втратив оригінальну лінію, на якій був. Це прекрасно!
вислів

56

ggyG (перейти до першого рядка, перейти на останній рядок)

Редагувати: Ах, буфер обміну системи. Не точно відкочує пальці, але:gg"+yG


1
Дякую, це працює для мене, а не:% y +. Але як я вставити його на localhost з віддаленого? :)
valk

1
Отже, в основному ця команда піднімається вгору до документа, і щось робить, перебираючи внизу документа? Що "робить тут?"
geoyws

1
@Geoyws "каже, що ви хочете працювати з реєстром. "+являє собою реєстр, прив’язаний до буфера обміну системи. "+yGyanks все до нижньої частини файлу до цього реєстру. :help "+
Annika Backstrom

15

Робоче рішення у старому vi є :r filenameу новому файлі.


5
Хоча це не зовсім відповідь на питання, це була відповідь на мою . Дякую.

2
Мені потрібно додати нуль, щоб вставити його на початку файлу::0r filename
Стефан ван ден Аккер



6

Я використовую наступну команду: :%y.


... не над різними вікнами у вікні менеджера. + врешті-решт, тикає його до зовнішнього буфера обміну (очевидно, що намагається зробити оператор)
hhh



3

В OSX:

ggVG
!tee >(pbcopy)

Що мені здається приємніше, ніж:

ggVG
:w !pbcopy

Оскільки він не спалахує підказку: " Press ENTER or type command to continue"


1

:%yбез +роботи над усією системою, якщо ви використовуєте neo-vim (nvim).

Це дозволяє нам не тягнути пальці до +- фактично зробити цей ярлик кращим, ніж ggyG.


0

Залежно від того, як часто ви це робите, просто картографуйте ключ для цього і необов'язково додайте до vimrc

:nnoremap <F5> :%y

або

:nnoremap <leader><whatever> :%y

або будь-який ключ, який ви знаєте, безпечний і найшвидший - тоді додайте до джерела відображення чи будь-якого іншого. Перевагою цього ggyGє те, що він не переміщує курсор (швидше) і щоб зберегти позицію курсора, вам доведеться додати<Ctrl-o><Ctrl-o>

Люди часто забувають, що команди засновані на сеансі, якщо тільки немає vimrc. Я часто знаю, коли я збираюсь робити щось багато, але мені це не потрібно як за замовчуванням і просто:[mode]remap <whatever> <whatever>

Я можу закрити та знову відкрити vim, якщо потрібно.

Якщо <Ctrl-A><Ctrl-C>працює для вас, тоді ви використовуєте mswin.vim у своєму джерелі і втрачаєте силу операцій збільшення <Ctrl-a>та зменшення <Ctrl-x>(серед іншого). Я почав працювати з Windows і час від часу переставав використовувати mswin.vim. Особисто я вважаю, що найкраще поправити Vim правильним шляхом, а потім додати в милиці, які вам справді потрібні: P


2
Ласкаво просимо до Stackoverflow. Редактор підтримує форматування , тому, будь ласка, врахуйте, як пришивати приклади коду (наприклад, команди, які ви використовували), у backticks ( `) або блоки коду.
Ян Кундрат

-1

Це брудно, але вам зовсім не потрібно використовувати клавішу shift, а лише 3 різні клавіші, які можуть бути швидшими:

gg1111yy

(Припустимо, що файл коротший, ніж 1111 рядків)


-2

У Windows я часто роблю CTRL-A, CTRL-C, щоб скопіювати все до буфера обміну Windows ... Не можу простіше!

Я використовую стандартний gvim 7.1 з веб-сайту ...

(BTW: також працює на моєму mac з MacVim, і цей смішний mac-ключ + A, mac-key + C)


1
windows gvim додає додаткові ярлики, яких немає в інших версіях, щоб спробувати покращити його з користувачами Windows. ctrl + a, ctrl + c - це два приклади.
davr

9
Mm, ctrl-c має зовсім інше значення для користувача терміналу.
Xiong Chiamiov

звичайно, але якщо у Windows, зробіть так, як це роблять вікна :) Просто кажу, що gvim та MacVim шанують стандартні ярлики буфера обміну платформи - нічого поганого в тому, щоб використовувати їх і ....
Дарен Томас,

4
Можна також взагалі не використовувати vim, якщо ви хочете використовувати такі ярлики.
VoY

1
CTRL-A збільшує число під курсором.
Alexcp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.