Я можу передати файл, скопіювати та вставити текст середньою кнопкою або вставкою shift.
Як я можу скопіювати текст у vim та вставити його із системного буфера обміну?
:!sed -n 5,10p %
:!cat %
Я можу передати файл, скопіювати та вставити текст середньою кнопкою або вставкою shift.
Як я можу скопіювати текст у vim та вставити його із системного буфера обміну?
:!sed -n 5,10p %
:!cat %
Відповіді:
Ви повинні мати Vim з clipboard
і xtermclipboard
Характеристика скомпільовано. В Ubuntu, вони доступні тільки з ВІМ GUI пакетів ( vim-gnome
, vim-gtk
, vim-athena
і т.д.).
Після встановлення одного з них ви можете скопіювати (і вставити з) буфер обміну ( *
і +
). З цієї дуже інформативної публікації про Vi та Vim :
Для систем на базі X11 (тобто Linux та більшості інших UNIX- подібних систем) є 2 буфера обміну, які не залежать один від одного:
- ПЕРШИЙ - Це копія при виборі і може бути вставлена за допомогою середньої кнопки миші.
- CLIPBOARD - це скопійовано (як правило)
^C
та вставлено^V
(це як MS Windows).
Vim має 2 спеціальні регістри, що відповідають цим буферам обміну:
*
використовує PRIMARY; Мнемоніка: s дьоготь s обирає (для копіювання-on з Обраним)+
використовує CLIPBOARD; мнемонічний: CTRL + C (для загальної зв'язки клавіш)
Щоб скопіювати в регістр, ви передуєте команді copy ( y
) з "
і назвою регістра ( *
наприклад,). "*y
, потім клацніть середнім клавішею, щоб вставити, або "+y
та ShiftInsertвставити.
З цього питання випливає досить цікаве рішення . Встановіть xclip, потім виведіть команду на команду xclip ( cat file | xclip -selection clipboard
наприклад), а потім вставте її куди завгодно (якщо це в терміналі - використовуйте Ctrl ShiftV
). Тепер, виявляється, ви можете насправді скоротити цю команду xclip -sel clip
, що зовсім не видно з читання сторінки man або прикладів там.
/dev
, але текст все ще десь зберігається, правда?
У мене виникла проблема, оскільки мій vim не підтримує буфер обміну :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Я встановив vim-gnome (який підтримує буфер обміну) і знову перевірив:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Тепер я можу скопіювати та вставити відповідно "+ y та" + p.
sed -n5,10p
для друку рядків 5-10, щоб я міг легше копіювати та вставляти, не реагуючи на vim, реагуючи на мишу.