Arhn - архитектура программирования

Как скопировать выделенные строки в буфер обмена в vim

Как скопировать выделенные строки в буфер обмена в vim. Я знаю, как это сделать для всех текстовых файлов, но я хочу сделать это для выбранных строк. Спасибо!

vim
06.02.2012


Ответы:


1

SHIFT V переводит вас в режим выбора строк. Затем " * y перетаскивает выбранные в данный момент строки в регистр *, который является буфером обмена. Есть довольно много разных регистров для разных целей. Подробнее о различиях между регистрами * и + на Windows и Linux.

06.02.2012
  • В Linux + - это глобальный буфер обмена, * - буфер обмена выбора, в то время как в Windows они отображаются в глобальном буфере обмена. 21.02.2017

  • 2

    Если вы работаете в Linux и используете VIm версии 7.3.74 или выше (версия, которая устанавливается в Ubuntu 11.10 и более поздних версиях, удовлетворяет этому), вы можете сделать

    set clipboard=unnamedplus

    который поместит извлеченный текст в глобальный буфер обмена и позволит вам вставить его из глобального буфера обмена без использования каких-либо специальных регистров. В отличие от решения ldigas, это также будет работать с версиями VIm без графического интерфейса.

    06.02.2012
  • Это работает, только если я устанавливаю пакет vim-gnome вместо vim. 27.11.2012
  • @ dan-klasson: для этой опции требуется vim, скомпилированный с поддержкой буфера обмена. Вы можете проверить, так ли это, набрав vim --version | grep "+xterm_clipboard". 28.11.2013
  • Кажется, это работает для копирования в другие программы, отличные от vim, но когда я перехожу в режим вставки в vim и использую shift + insert для вставки из буфера обмена, вставляются только первые две строки ... Я установил vim-gnome; я что-то упустил? 13.05.2014
  • Если вы используете macOS, вам, вероятно, придется вместо этого использовать clipboard=unnamed (vim.wikia.com/wiki/ Accessing_the_system_clipboard) 08.12.2016

  • 3
    set guioptions+=a
    

    будет ... ммм, короче говоря, всякий раз, когда вы выбираете / дергаете что-то, также помещает это в буфер обмена (не в Vim, а в глобальную клавиатуру оконной системы). Таким образом, вам не придется думать о занесении данных в специальный регистр.

    06.02.2012
  • //, к каким операционным системам и / или версиям Vim применим этот совет? 28.03.2017

  • 4

    Для GVIM нажмите v, чтобы перейти в визуальный режим; выделите текст и нажмите Ctrl+Insert, чтобы скопировать выделение в глобальный буфер обмена.

    Из меню видно, что это сочетание клавиш "+y, т.е. удерживайте клавишу Shift, затем нажмите ", затем +, затем отпустите Shift и нажмите y (громоздко по сравнению с Shift + Insert).

    09.06.2014
  • Почему этот ответ не пользуется популярностью? :( 09.10.2018

  • 5

    Если вы используете vim в MAC OSX, к сожалению, он поставляется со старой версией и не соответствует параметрам буфера обмена. К счастью, домашнее пиво легко решает эту проблему.

    установить vim:

    brew install vim --with-lua --with-override-system-vim

    установить версию vim с графическим интерфейсом:

    brew install macvim --with-lua --with-override-system-vim

    перезапустите терминал, чтобы изменения вступили в силу.

    добавьте следующую строку в ~ / .vimrc

    set clipboard=unnamed

    теперь вы можете скопировать строку в vim withyy и вставить ее по всей системе.

    16.08.2016
  • //, я только что протестировал это на OSX 10.12.3, и он работал правильно после того, как я установил как последнюю версию Vim, так и версию Vim с латентным графическим интерфейсом, как вы рекомендовали здесь. Спасибо, @anonymous. 28.03.2017

  • 6

    Установите "xclip", если еще не ...

    sudo apt-get install xclip

    Xclip помещает данные в буфер обмена «выделенный / выделенный», который вы щелкаете средней кнопкой мыши, чтобы вставить, в отличие от «ctrl + v»

    В vim используйте ex-команды:

    7w !xclip
    

    or

    1,7w !xclip
    

    or

    %w !xclip
    

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

    16.04.2014

    7

    Если vim скомпилирован с поддержкой буфера обмена, вы можете использовать "*y значение: скопировать визуально выделенный текст в регистр * ('*' для буфера обмена)

    Если нет поддержки буфера обмена, я думаю, что единственный способ - использовать Ctrl+Insert после визуального выделения текста в vim.

    09.06.2014

    8

    Я добавил следующую строку в свой .vimrc

    vnoremap <F5> "+y<CR>
    

    Это позволяет скопировать выделенный текст в буфер обмена, нажав F5. Чтобы это работало, вы должны находиться в визуальном режиме.

    20.04.2019
  • Добавить в ~/.vimrc Спасибо, это намного лучше. 15.05.2020

  • 9

    Добавьте следующий код в свой .vimrc:

    if has('clipboard')
        if has('unnamedplus')  " When possible use + register for copy-paste
            set clipboard=unnamed,unnamedplus
        else         " On mac and Windows, use * register for copy-paste
            set clipboard=unnamed
        endif
    endif
    
    25.05.2017

    10

    Сначала проверьте, поддерживает ли ваша установка vim буфер обмена.

    vim --version
    

    Если установлена ​​поддержка буфера обмена, вы увидите:

    +clipboard
    +X11
    +xterm_clipboard
    

    Если поддержка буфера обмена не установлена, вы увидите:

    -clipboard
    -X11
    -xterm_clipboard
    

    Чтобы установить поддержку буфера обмена:

    apt-get install vim-gnome
    

    Убедившись, что поддержка буфера обмена установлена, выполните следующие действия:

    1. Установите курсор на первую строку, которую хотите скопировать.
    2. Нажмите Shift v, чтобы войти в визуальный режим.
    3. Нажмите , чтобы выбрать несколько строк.
    4. Нажмите + y, чтобы скопировать выделенный текст в системный буфер обмена.
    5. Теперь вы можете скопировать выделенный текст в браузер, текстовый редактор и т. Д.
    6. Нажмите + p, если вы хотите скопировать текст системного буфера обмена в vim.

    Вышеупомянутые шаги могут быть утомительными, если вам придется многократно копировать из vim в системный буфер обмена и наоборот. Вы можете создать ярлыки vim, чтобы при нажатии Ctrl c выделенный текст копировался в системный буфер обмена. И когда вы нажимаете Ctrl p, текст системного буфера обмена копируется в vim. Чтобы создать ярлыки:

    1. Откройте файл .vimrc и добавьте следующий текст в конец файла:

       nnoremap <C-c> "+y
       vnoremap <C-c> "+y
       nnoremap <C-p> "+p
       vnoremap <C-p> "+p
      
    2. Сохраните и перезагрузите ваш .vimrc, чтобы применить новые изменения.

    3. Установите курсор на первую строку, которую хотите скопировать.

    4. Нажмите Shift v, чтобы войти в визуальный режим.

    5. Нажмите , чтобы выбрать несколько строк.

    6. Нажмите Ctrl c, чтобы скопировать выделенный текст в системный буфер обмена.

    7. Теперь вы можете скопировать выделенный текст в браузер, текстовый редактор и т. Д.

    8. Нажмите Ctrl p, если вы хотите скопировать текст системного буфера обмена в vim.

    Примечание: это для систем ubuntu.

    11.01.2021

    11

    Вот шаги, которые подойдут:

    1. Файл с открытым исходным кодом в vim.
    2. Перейдите в визуальный режим, нажав shift v
    3. Выберите количество строк, перемещая клавиши со стрелками вверх / вниз.
    4. Когда текст, который нужно скопировать, выделен, скопируйте его в + регистр, нажав следующие клавиши: + y
    5. Теперь откройте целевой файл в vim.
    6. Вставьте текст, скопированный на шаге 4, в целевой файл, нажав: Ctrl v
    12.03.2021
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..