Як скопіювати командний висновок у vim?


33

Наприклад, якщо я набираю ' :pwd', щоб отримати поточний робочий каталог, я можу вибрати текст у gvim, але не можу зрозуміти, як його скопіювати у буфер обміну. Якщо я спробую те саме в консолі vim, я навіть не можу вибрати його мишкою. Я хотів би, щоб це працювало з усіма командами vim, такими як set guifontкопіювання guifont=Consolas:h10:cANSIрезультатів.

Відповіді:


41

Ви шукаєте це,

:redir @* | set guifont | redir END

: команда redir перенаправляє вихід команди в регістр (@ *). Реєстр @ * посилається на буфер обміну.

Для отримання додаткової інформації про це,

:help :redir

не працював у vim-gtk якусь підказку?
Серхіо Абреу

@SergioAbreu спробуйте @+замість @*(ну, це працює у gvim).
leeand00

10

Спробуйте " :r !pwd", щоб отримати поточний робочий каталог безпосередньо у відкритому файлі GVIM.
Потім ви можете скопіювати його в буфер обміну, як і будь-який інший вміст текстового файлу, відкритий там.


Це корисно, але чи можна це використовувати, set guifontнаприклад?
Стівен

Ні, це не командна оболонка, тому вона не працюватиме.
Кевін Панько

4

Для цього конкретного прикладу ви можете зробити (зверніть увагу на "!", Що змушує його пройти через оболонку):

:!pwd | xclip

або

:!pwd | xclip -selection secondary

(залежно від того, який X-вибір ви хочете).

Можливо, спочатку доведеться встановити xclip

sudo apt-get install xclip

(або еквівалент)


3

Якщо ви запустите vim у xterm, утримуючи клавішу shift під час вибору тексту, скопіюйте текст у X-еквівалент буфера обміну.


X має два буфера обміну (принаймні); Ваша пропозиція розмістить текст у виборі PRIMARY (вставте середнім клацанням миші), а не у виділенні CLIPBOARD (вставте Ctrl + V у більшості програм).
Маріус Гедмінас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.