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

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

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

  • Как иметь X-сервер на другой графической карте, которая постоянно освежает, когда я работаю над своим основным дисплеем?
  • Не удалось обновить драйвер NVIDIA
  • Не удалось запустить Sugar на Arch Linux из-за PyGIWarning
  • Доступ к X-окну и звуку на ноутбуке на другом Unix
  • Linux Mint 18 удаляет /etc/init.d/xorg.conf при каждой перезагрузке и не запускает x-сервер
  • X-сервер, блокировка клавиатуры и мыши с поврежденным дисплеем
  • Ошибка ошибки сегментации Startx после установки дополнений VirtualGuest для Virtualbox
  • import: невозможно открыть X-сервер `@ ошибка / import.c / ImportImageCommand / 361
  • 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 и других системах.

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

    Linux и Unix - лучшая ОС в мире.