Возможный дубликат:
vim: скопировать выделенный фрагмент в Буфер обмена OS X
Хотя мне удалось отобразить paste
из буфера обмена (nmap <leader>p "*p
), то же самое для yank
(nmap <leader>y "*y
), похоже, не работает. На самом деле он копается в буфере обмена Vim.
Есть идеи, как это сделать правильно? Я знаю clipboard=unnamed
, но могу сохранить старые команды vim yank / paste.
РЕДАКТИРОВАТЬ. Кажется, есть некоторая путаница в моих потребностях.
Команда "*y
работает. Так что с +clipboard
в моем окружении Vim нет ничего плохого. Что не работает, так это картографирование.
Я хочу добавить что-то вроде:
nmap <leader>y "*y # Doesn't work as expected. It copies only in Vim's clipboard, ie I have to type `p` to paste the copied content instead of `"*p`.
nmap <leader>p "*p # Works as expected.
Я понятнее?
2-й РЕДАКТИРОВАТЬ: на всякий случай, потому что я понятия не имею, что могло бы помочь вам помочь мне, на моем компьютере есть рендеринг vim --version
: https://gist.github.com/3090385
% vim --version | grep clipboard -clientserver **+clipboard** +cmdline_compl +cmdline_hist +cmdline_info +comments
@perreal, @GWW: Дело не в том, как копировать / вставлять с помощью буфера обмена ОС. Уже работает. Дело в том, как сопоставить эти команды. Это просто неправильное отображение, но я не знаю, почему ... - person Adrien   schedule 10.07.2012:reg *
и:reg "
. когда вы делаете"*y
, содержимое всегда помещается в регистр по умолчанию и синхронизируется с системным буфером обмена через регистр*
. Когда вы делаете"*y
, у вас должно быть одинаковое содержимое в обоих регистрах. - person romainl   schedule 10.07.2012source $VIMRUNTIME/mswin.vim
в свой .vimrc, вы можете использовать стандартные Ctrl + C / V для операций копирования / вставки из буфера обмена (+ Shift, если вы запускаете vim из консоли). Может, это тебе больше подойдет. - person MatijaSh   schedule 11.07.2012"*y
помещает одно и то же содержимое в оба регистра. Но при использовании отображаемой команды,y
, где,
- мой<leader>
, затрагивается только регистр"
. И это моя проблема. Я не понимаю, что не так, когда пытаюсь сопоставить эти вещи. Любая идея? - person Adrien   schedule 11.07.2012:nmap <leader>y "*y
), я по-прежнему - по логике - получаю то же содержимое в"
и в*
. Единственный способ, которым я могу иметь различное содержимое в этих регистрах, - это делатьy
с:set clipboard=
. Сопоставлено или нет,"*y
всегда работает одинаково. Может он с чем-то еще конфликтует, попробуйте:verbose nmap <leader>y
и:verbose nmap y
. - person romainl   schedule 11.07.2012:verbose nmap <leader>y
дал мнеn ,y "*yr>y
. Не уверен, что знаю, что это значит: ').:verbose nmap y
дал мнеNo mapping found
. Я попробовал:verbose nmap <leader>p
, и это дало мне нечто подобноеn ,p "*pr>p
. - person Adrien   schedule 11.07.2012"*y
работает, а сопоставление с"*y
нет, то я предполагаю, что у вас есть какое-то другое сопоставление (возможно, в плагине?), Которое вызывает проблемы. Я думаю, вы идете по правильному пути с: verbose nmap. Может быть, происходит какое-то рекурсивное отображение? Ищите сопоставления с подстроками внутри вашей карты. И, может быть, попробуйте удалить плагины, пока проблема не исчезнет или не будет обнаружен проблемный плагин? Вы можете посмотретьexecute "normal!"
или _4 _... - person darcyparker   schedule 11.07.2012noremap
наконец-то спасти меня. Хотя совершенно не понимаю, что могло мешать. Из любопытства, как * искать сопоставления с подстроками внутри моей карты *? Я мог бы вернуться с более подробным ответом, даже если ваше решение меня устраивает :) - person Adrien   schedule 11.07.2012:redir @a
, затем:nmap
или:verbose nmap
и, наконец,:redir END
. Эти шаги в основном перенаправляют вывод nmap в регистрa
. Затем создайте новый буфер, вставьте его в регистрa
и используйте/
поиск, чтобы найти такие вещи, как, * и y, чтобы увидеть, были ли они повторно отображены в некоторых случаях. - person darcyparker   schedule 11.07.2012