Как скопировать текст из vim во внешнюю программу?

Я пытаюсь скопировать-вставить некоторый текст из vim. Я делаю v, чтобы войти в визуальный режим, затем y, когда я выбрал свой блок.

Скопируйте текст в буфер обмена vim, потому что p вставляет его. Но в другой программе (например, Chrome) правая кнопка-> вставка не вставляет правильный текст. Как скопировать текст в правильный буфер?

9 Solutions collect form web for “Как скопировать текст из vim во внешнюю программу?”

Следующие действия будут работать, только если vim --version указывает, что у вас есть функция +xterm_clipboard . Если нет, вам придется установить дополнительные пакеты или перекомпилировать vim с добавленной функцией.


Для этого есть два варианта:

 "+y 

копии в «обычный» буфер буфера обмена (чтобы вы могли вставить с помощью Ctrl + V, щелкните правой кнопкой мыши и выберите «Вставить» и т. д.), в то время как

 "*y 

копии к выбору X11 – вы можете вставить этот буфер с помощью среднего щелчка.

Обратите внимание, что "* и "+ работают в обоих направлениях. Поэтому, если вы выбрали какой-либо текст в другом приложении, вы можете вставить его в vim с помощью "*p и если вы скопировали какой-либо текст (используя, скажем, Ctrl-C), вы можете вставить его в vim с помощью "+p .

Если вы используете vim> = 7.3.74, то вы действительно можете поместить это в свой vimrc:

 set clipboard=unnamedplus 

Который автоматически будет использовать буфер + (системный буфер обмена) по умолчанию. Затем, чтобы вынуть (копировать), вы просто используете регулярную команду y и т. Д.

Я нашел это поведение довольно раздражающим, хотя, поскольку команды, такие как d помещают текст, в котором они работают, в буфер по умолчанию, а это означает, что я не мог быстро сделать dd и вставить строку из Интернета.

Я считаю, что стандартные команды "+gP и "+y очень сложны в использовании. Таким образом, я перегруппировал Ctrl-Y для загрузки в буфер обмена и Ctrl-P для вставки из буфера обмена. Добавьте это в .vimrc

 nnoremap <Cy> "+y vnoremap <Cy> "+y nnoremap <Cp> "+gP vnoremap <Cp> "+gP 

Удерживайте клавишу сдвига и выберите текст с помощью курсора мыши.
Текст будет скопирован в буфер обмена.

Это также работает для вставки из буфера обмена в vim.

Чтобы быть ясным, это работает для vim работающего на терминале, таком как xterm .

Неважно, я нашел ответ – это написано в меню вима.

 "+y 

Очень интуитивно.

Просто добавьте не-vim-специфический ответ: вы можете использовать Ctrl+Shift+C для копирования в системный буфер обмена в Ubuntu (если функциональность предоставляется вашим эмулятором терминала, для него предоставляется gnome-terminal для одного). Ctrl+Shift+V вставляется в другое окно терминала, а Ctrl+V – в графическое приложение.

Кроме того, если вы выберете текст в терминале, затем нажмите «средний», он будет вставлен из буфера обмена X11.

По умолчанию, если вы устанавливаете легкую версию vim, тогда у вас не будет функции +xterm_clipboard ( vim --version | grep xterm ), которая необходима для использования регистров * и + вне vim.

Чтобы включить его, вы должны либо скомпилировать vim самостоятельно, либо установить версию vim, которая поставляется с ней preenabled. Я использовал vim-gnome: sudo apt-get install vim-gnome . Если вы выполняете vim --version | grep xterm vim --version | grep xterm , вы увидите, что теперь это +xterm_clipboard .

Теперь попробуйте скопировать на + и * и он должен работать.

Просто добавьте, если что-нибудь работает, попытайтесь переключить терминал, который обертывает vim (если вы используете vim из терминала). Я обнаружил, что, к примеру, буфер обмена недоступен для guake, а доступен из gnome-терминала.

Удерживайте нажатой клавишу SHIFT и текст для выбора мыши, чтобы скопировать его.

Затем вставьте другую программу с помощью CTRL + v .

Работает в терминале на моем Ubuntu 16.04. Не уверен в gvim и других системах.

введите описание изображения здесь

  • Простое LiveCD работает только на сервере Xorg
  • Итак, дизайн разделения клиент-сервер не является узким местом X Window?
  • Как закрыть сеанс XServer с помощью команды
  • Реальный chroot на системной машине
  • startx не работает fedora 23
  • Изменение конфигурации сервера X во время выполнения
  • Запустить скрипт как root после автолога в X
  • XServer: как проверить, кто / что использует отображение: N
  • Как отключить автозапуск сервера X в Debian Jessie?
  • Не удалось разместить сервер с Xpra, подключиться только к существующему
  • Можно ли отключить нажатие на клик в конфигурации X-сервера без разделов «InputClass»?
  • Не удается получить доступ к виртуальным терминалам после ручного запуска X-сервера
  • Linux и Unix - лучшая ОС в мире.