Я могу кошку файл, копировать и вставлять текст с помощью средней кнопки или 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
и т.д.).
После того, как вы установите один из них, вы можете скопировать (и вставить из) регистры буфера обмена ( *
и +
). Из этого очень информативного поста о Ви и Виме :
Для систем на основе X11 (т. Е. Linux и большинства других UNIX- подобных систем) есть 2 буфера обмена, которые не зависят друг от друга:
- ПЕРВИЧНЫЙ - Это копирование на выбор, и его можно вставить с помощью средней кнопки мыши.
- CLIPBOARD - Копируется (обычно)
^C
и вставляется^V
(Это похоже на MS Windows).
Vim имеет 2 специальных регистра, соответствующих этим буферам обмена:
*
использует ПЕРВИЧНЫЙ; Мнемоника: s деготь s избирает (для копирования-on с Избранным)+
использует CLIPBOARD; мнемоника: CTRL + C (для общего набора клавиш)
Чтобы скопировать в регистр, перед командой копирования ( 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 на мышь.