После включения set mouse=a
текст, скопированный внутри Vim, не будет вставляться вне Vim. Кто-нибудь знает, как это исправить?
Здесь выбор текста с помощью мыши включает визуальный режим и отключает параметр Copy
во всплывающем меню:
После включения set mouse=a
текст, скопированный внутри Vim, не будет вставляться вне Vim. Кто-нибудь знает, как это исправить?
Здесь выбор текста с помощью мыши включает визуальный режим и отключает параметр Copy
во всплывающем меню:
Нажмите shift во время выбора мышью. Это приведет к выбору мыши, как если бы mouse=a
не был включен.
Примечание. Этот трюк также применяется к "средней паре кнопок": если вы хотите вставить текст vim, который был выбран снаружи, нажмите shift, щелкнув среднюю кнопку. Просто убедитесь, что режим вставки активирован, когда вы это делаете (вы можете также хотеть :set paste
, чтобы избежать непредвиденных эффектов).
OS X (mac): удерживайте alt/option при выборе (source)
Используйте "+y. Вы не должны использовать команду копирования терминалов в любом случае, потому что это копирует то, что видит терминал, а не фактический контент.
Вы можете сопоставить его так:
:vmap <C-C> "+y
Затем выделите что-то с помощью мыши и нажмите Control-C, чтобы скопировать его.
Эта функция работает только тогда, когда Vim был скомпилирован с опцией +xterm_clipboard
. Запустите vim --version
, чтобы узнать, есть ли у него.
Вместо set mouse=a
используйте set mouse=r
в .vimrc
В OSX используйте fn вместо shift.
В Ubuntu можно использовать привязки X-Term для копирования и вставки в VIM (Ctrl-Shift-C и Ctrl-Shift-V) в тексте, который был hilighted с помощью клавиши Shift.
Еще одна опция OSX-Mac - снять отметку View->Allow Mouse Reporting
(или нажать ⌘-R для ее переключения). Это позволяет вам переключаться между взаимодействием мыши и выбором мыши, что может быть полезно при выборе и копировании/вставке нескольких бит потому что вам не нужно удерживать ключ-модификатор для этого.
У меня обычно есть номера строк, поэтому это также скопирует номера строк, если вы выберете несколько строк. Если вы хотите скопировать несколько строк без номеров строк, отключите номера с помощью :set nonu
, а затем вы можете :set nu
повторно включить их после завершения копирования.
Вы можете использовать :set mouse&
в командной строке vim, чтобы разрешить копирование/вставку текста, выбранного с помощью мыши. Затем вы можете просто использовать среднюю кнопку мыши или shift insert, чтобы вставить ее.
Если вы используете сеанс Putty, он автоматически копирует выбор. Если мы использовали опцию "set mouse = a" в vim, выбор с помощью Shift + Mouse перетаскивает текст автоматически. Необходимо проверить X-term.
em... Продолжайте нажимать Shift, а затем щелкните правой кнопкой мыши
Я случайно объяснил, как отключить set mouse=a
, когда перечитал вопрос и обнаружил, что OP не хочет его отключать. В любом случае, для тех, кто ищет, как централизованно отключить мышь (set mouse=
), я оставляю ссылку на свой ответ здесь: https://unix.stackexchange.com/a/506723/194822
Параметры компиляции, с которыми был скомпилирован vim, являются частью проблемы. vim --version
показывает это.
В OSX по умолчанию vim имеет -clipboard
но вам нужно +clipboard
На OSX вы можете и, по-видимому, как правило, следует использовать Macvim. Вы можете сделать brew cask install macvim
который есть у +clipboard
.
Их у вас будет два VIMS.
~$ ls -l /usr/bin/vim <--- default vim
-rwxr-xr-x 1 root wheel 1745984 15 Jul 2017 /usr/bin/vim
~$ ls -l /usr/local/bin/vim <-- macvim, installed recently via that mentioned brew line.
lrwxr-xr-x 1 apple admin 42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$
запуск vim запустит macvim, потому что /usr/local/bin
путь /usr/local/bin
должен быть перед /usr/bin
в пути, хотя вы можете проверить, с which vim
.
запуск vim (для запуска macvim), это нормально, но вы можете захотеть отобразить vi на macvim, потому что в противном случае запуск vi останется по умолчанию vim! Вы можете переписать или удалить (с помощью rm) и заново создать ссылку на sy sym с помощью ln. И чтобы сделать это без ошибки "операция не разрешена", вам необходимо (временно) отключить SIL. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-rootless-on-macos-os-x.
у macvim есть +clipboard
как показывает vim --version
Вот рабочий ~/.vim/vimrc
с необходимыми строками.
:set mouse=a
:map <leader>c "+y
:map <leader>v "+p
Ключ лидера по умолчанию - это обратный слеш.
Я прочитал предложение о том, что следует использовать ключевой ключ... (конечно, контроль имеет много ключей, которые уже используются, поэтому было предложено не использовать контроль. Я не знаю, относится ли это также к командному ключу, но так или иначе).
С этим упомянутым отображением \c
сделает "+y
который скопирует из регистра, известного как +, в буфер обмена. И \v
вставит из регистра, известного как +.
Так что копирование/вставка, которая работает между окнами.
Другая ОС может потребовать "*
вместо "+
У меня сработало удержание смены при копировании и вставке с выделением
В режиме ESC, когда установлено mouse = a, выберите текст с помощью мыши. Это позволит визуальный режим в vim. Затем вы можете нажать "y", чтобы вынуть выделенный текст и "p", чтобы вставить его туда, где вы хотите. Это происходит только внутри vim.