Vim (терминал) - копировать в буфер обмена x и вставлять в режиме ожидания - PullRequest
4 голосов
/ 14 мая 2010

У меня установлен vimx, поэтому я могу копировать в vimx в буфер обмена x, используя "+y и т.п., что работает хорошо, если я могу поддерживать текущий vimx в рабочем состоянии.

Однако мне также нравится иметь возможность переключаться на текущую запущенную оболочку с помощью ctrl-z и вставлять то, что я скопировал из vim, в оболочку. Кто-нибудь знает, как это сделать, потому что как только я приостанавливаю vim с ctr-z, x-буфер обмена становится пустым, пока я снова не вставлю vim в fg.

Ответы [ 2 ]

2 голосов
/ 21 мая 2010

ки

Примерно через час после этого я решил использовать другой подход, чтобы сделать то же самое.

Я подробно опишу, что я сделал здесь для тех, у кого такая же проблема.

Если у вас есть wxcopy в вашей системе, этого достаточно, чтобы получить поддержку копирования / вставки в вашей системе между vim и другими приложениями. Если вы хотите скопировать из vim, выделите текст, используя v или V или любым другим способом, который вы предпочитаете, затем используйте команду :tee >(wxcopy). Это скопирует этот код в буфер вырезки oldschool X11. Этот буфер имеет дополнительный бонус: он не требует запуска родительского приложения для вставки в работу, поэтому моя проблема исчезает.

Я понимаю, что это может быть трудно достать wxcopy, под Fedora пакет, который обеспечивает это:

WindowMaker

1 голос
/ 14 мая 2010

Это не столько ответ, сколько толчок в правильном направлении, но начните здесь:

:help quoteplus
:help x11-cut-buffer

В частности, второй текст справки содержит некоторые интересные заметки о приостановке vim. Он утверждает, что записывает буфер в PRIMARY и CUT_BUFFER0, чтобы вы могли использовать средний щелчок после приостановки. Может быть, вы удалили те или плагин мешает? Возможно, вы используете старую версию vim (я использую 7.2.182).

Я предлагаю отключить все плагины, которые вы установили вручную, и попробовать vanilla vim. Если это не сработает, попробуйте использовать флаг vim -V (подробный) и посмотрите, попытается ли он поместить буфер в PRIMARY или CUT_BUFFER0, прежде чем он действительно будет приостановлен.

У меня нет vim, скомпилированного с X (vimx), поэтому я сам не могу проверить это. Надеюсь, это приведет вас в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...