как скопировать коды в vi в буфер обмена - PullRequest
16 голосов
/ 04 апреля 2011

Я умею копировать в VI.но мне не удалось скопировать его в другое приложение.Это означает, что я не смог скопировать их в буфер обмена.Как я могу это сделать?

PS Чтобы больше наклоняться.Я также хочу спросить, как скопировать содержимое из буфера обмена в vi.

Отредактировано: я использую MacOs.работает Vim.

Кажется, * уу здесь не работает.Есть ли другие способы?

Ответы [ 4 ]

33 голосов
/ 04 апреля 2011

Вам нужно использовать регистр буфера обмена, который равен *, чтобы скопировать строку текста в буфер обмена:

"*yy

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

 "*p
17 голосов
/ 09 января 2013

"+y или "*y работает, только если ваш vim поддерживает xterm_clipboard. Xterm - это эмулятор терминала для X11. Попробуйте vim --version, чтобы увидеть, поддерживается ли он. Если вы видите +xterm_clipboard, это должно сработать, если вы видите -xterm_clipboard, это не сработает. Сейчас существует много разновидностей Linux, в которых по-прежнему отключена поддержка xterm_clipboard. Срывать через буфер обмена тогда невозможно. Обратите внимание, что у вас все еще есть старый добрый Unix-стиль yank / paste, а именно выберите текст, который вы хотите нажать, и щелкните средней кнопкой мыши там, где вы хотите вставить. Это должно работать всегда и является предпочтительным стилем yank / paste в vim. Убедитесь, что вы находитесь в режиме вставки, и наберите set paste, если он испортит отступ. set nopaste чтобы выйти из режима вставки.

Чтобы получить vim с xterm_clipboard, просто загрузите исходный код, наберите ./configure --with-x, а затем make. Теперь vim должен поддерживать xterm_clipboard, а восстановление и вставка должны работать без ошибок и из буфера обмена.

5 голосов
/ 04 апреля 2011
"+yy or "*yy to copy to clipboard
"+p or "*p to paste from clipboard

" поместит его в регистр +.

Даже больше, чем вы хотели знать: http://vim.wikia.com/wiki/Accessing_the_system_clipboard

2 голосов
/ 04 апреля 2011

Копия vi выполняется в собственном внутреннем буфере обмена vi, так как он происходит от командной строки unix, где не существует буфер обмена в стиле Windows.Позже появился указатель мыши для командной строки, который означал, что вы можете копировать, используя его как стиль Windows, но если вы хотите скопировать из vi в буфер обмена Windows, вам нужно использовать * yy и * p, а не yy и pвнутренний буфер обмена в vi (поэтому смещение и вставка не влияют на буфер обмена Windows)

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