2011-11-15 5 views
16

Может ли кто-нибудь помочь мне с этим: Я пытаюсь выяснить, как копировать и вставлять текст между двумя разными экземплярами vim на разных терминалах (используя iterm2 или mac terminal). Я могу сделать это с помощью мыши, если я это сделаю: set mouse = a, но я бы хотел, чтобы это можно было использовать с клавиатуры.Скопируйте и вставьте vim через клавиатуру между различными терминалами Mac?

У меня есть googled around, и в нем говорится, что вы можете использовать регистры «* или» + для копирования/вставки в/из системного буфера обмена, но когда я набираю * или + в vim, mac делает один из этих звуков это делает, когда вы не можете что-то сделать. Я также сделал «: set clipboard = unnamed», но это тоже не сработало.

Я использую Mac OSX 10.7 (Lion) и терминал iTerm2 или Mac.

Спасибо за помощь

+1

Как боковая записка; когда я хотел сделать что-то подобное, я в конце концов понял, что простой способ достичь этого - не запускать два разных экземпляра vim в отдельных терминалах вообще, а вместо этого иметь несколько разделов или буферов в одном экземпляре vim, чтобы я мог Посмотрите сразу несколько файлов всего за один vim. Тогда это даже не проблема, и вы можете выдергивать и помещать текст между этими файлами в свое сердце без каких-либо особых усилий или изучать новые команды или что-то еще. –

+0

Чтобы использовать системный буфер обмена, я использую последовательность '' * y' для того, чтобы подержать его, и '' * p' или '" * P' для вставки из него. И да, мне нравится иметь более одного окна и для переключения между ними с помощью 'ALT-TAB'. Это намного проще, чем использовать одно окно для VIM, и там есть 2 разных каталога с некоторыми файлами. – mliebelt

+0

Я использую только один Vim и делаю всю навигацию/открытие файла из Vim через LustyExplorer. Все буферы, которые я открыл в сеансе, скрыты и доступны очень быстро через один и тот же плагин. Используя только один Vim, я могу совместно использовать регистры (и, следовательно, макросы) и историю между всеми моими открытыми буферами. – romainl

ответ

17

Не могли бы вы добавить вывод :version?

я могу выдернуть с yy или y в одном случае Vim работает в Terminal.app окне A и поставить с p или P в другом Vim, например работает в Terminal.app окна В этой строке в моем ~/.vimrc:

set clipboard+=unnamed 

без использования конкретных регистров буфера обмена (* или +).

И почему у вас есть два экземпляра Vim, работающих в разных терминалах? SSH/локальный? Если кто-то находится в сеансе SSH, yanking/put не будет работать, потому что две машины (локальные/удаленные) не используют один и тот же буфер (ы).

EDIT

Я подозревал, что Vim не был скомпилирован с правом флага (ов). Видимо, это так.

Поскольку вы используете VC по умолчанию для Mac OS X, я считаю, что вам не нужно перекомпилировать его или даже скомпилировать что-либо, поскольку это часто приводит к большему количеству проблем, чем того стоит.

Вместо этого загрузите последнюю версию MacVim и используйте (CLI) Vim исполняемый файл в комплекте MacVim: он имеет все те же функции, что и MacVim (в рамках ограничений CLI, конечно).

Добавить эту строку в ~/.bashrc или ~/.profile или там, где вы привыкли ставить псевдонимы и пользовательские Баш функции:

alias vim='/path/to/MacVim.app/Contents/MacOS/Vim' 
+0

Вот моя версия вывод: VIM - Vi IMproved 7.3 (2010 15 августа, скомпилировано 24.06.2011 20:00:09) Составлено [email protected] Обычная версия без GUI. – Eddy

+0

Я пробовал то, что вы сказали, открыв 2 окна терминала , каждый из которых имеет экземпляр vim. Но я все еще не могу копировать и вставлять между ними (даже с помощью: set clipboard + = unnamed в моем ~/.vimrc) – Eddy

+1

А, я просто заметил это в выпуске версии: -xterm_clipboard. Итак, я думаю, мне нужно будет перекомпилировать vim и включить xterm_clipboard или что-то еще? Как мне это сделать? – Eddy

0

Если вы хотите скопировать весь файл в целевой файл.

Открыть целевой файл в vim.

Поместите курсор туда, куда вы хотите его и введите следующее:

: г /path_to_file/file.ext

Это будет скопировать весь файл, где находится курсор ...

+0

Вы можете связать ответы на разных сайтах обмена стеками, добавив комментарий со ссылкой на ваш оригинальный ответ. Нет необходимости дублировать содержимое путем копирования. – oleksii

 Смежные вопросы

  • Нет связанных вопросов^_^