Я можу передати файл, скопіювати та вставити текст середньою кнопкою або вставкою 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, реагуючи на мишу.