Как выделить все скопированные данные из vim и вставить в другую программу, например, почтовый клиент?

Как выделить все скопированные данные из vim и вставить в другую программу, например, почтовый клиент?

Как мне сделать следующее?

Скопировать весь текст из vim и вставить его во внешнюю программу, например, почтовую программу Outlook? Я пробовал +y, gg*yGно вставка не работает.

решение1

Для этого требуется, чтобы vim имел интеграцию буфера обмена X11. Вы можете проверить это, выполнив vim --versionи поискав +xterm_clipboard( +clipboardне так ли, это для использования GUI, что на самом деле может быть тем, что вам нужно, в вопросе не указан GUI или терминал).

Если у вас его нет +xterm_clipboard, вам придется скачать версию vim, в которой он есть (или перекомпилировать самостоятельно).

Если у вас это есть, то это здорово. Продолжим.

X11 имеет 2 "буфера обмена". Есть буфер выбора, а затем настоящий буфер обмена. Буфер выбора — это выделение/щелчок средней кнопкой мыши. Буфер обмена — это обычные CTRL+C/CTRL+V.
Чтобы скопировать текущую строку в буфер выбора, выполните "*yy. (да, это shift+кавычка shift+8 yy)
Чтобы скопировать в буфер обмена, выполните "+yy.
(можно использовать другие спецификаторы выбора, например "+yG, или "+yв визуальном режиме)

Если вы хотите сделать один из них значением по умолчанию, чтобы можно было просто использовать yy, без бита "+/ "*, вы можете добавить один из следующих параметров в свой ~/.vimrc:

set clipboard=unnamed

или

set clipboard=unnamedplus

Вы не указали, подключаетесь ли вы к машине удаленно, но если так, вы все равно можете это сделать, но вам понадобится включенный переадресация X11 и работающий SSH. Однако я предупрежу вас, что это может привести к тому, что запуск vim может занять несколько секунд.

Связанный контент