25 ответов:
в зависимости от того, какую версию vim я использую, я могу использовать регистр + для доступа к буферу обмена.
http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing могут быть некоторые идеи, которые работают и для вас.
на MacVim и Windows Gvim, просто добавьте следующее к вашему
~/.vimrc:set clipboard=unnamedтеперь все операции, такие как
yy,DиPработа с буфером обмена. Не нужно ставить перед ними префикс"*или"+.
если буфер обмена включен, вы можете скопировать выбранную область в буфер обмена, нажав
"*yчтобы увидеть, если он включен, o vim-версия и искать
+clipboardили-clipboard. Например, он не включен по умолчанию в моем поле 10.5.6:% which vim /usr/bin/vim % vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 11 2008 17:20:43) Included patches: 1-22 Compiled by [email protected] Normal version without GUI. Features included (+) or not (-): ... -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...если бы он был скомпилирован с
+clipboard, Я бы мог использовать"*регистрация для доступа к системному буферу обмена.Я скачал 7.2 источник и скомпилировал его (просто, как
tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install), и буфер обмена был включен:% which vim /usr/local/bin/vim % vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 24 2009 17:31:52) Compiled by [email protected] Normal version with GTK2 GUI. Features included (+) or not (-): ... +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...однако, даже после компиляции, я не мог скопировать в буфер обмена при запуске vim в терминале.приложение, только в X11.приложение.
вы можете визуально выбрать текст и ввести
:w !pbcopy<CR>или вы можете включить ниже ключевых сопоставлений в вашем . Они вырезать/копировать текст в визуальном режиме в буфер обмена операционной системы.
vmap <C-x> :!pbcopy<CR> vmap <C-c> :w !pbcopy<CR><CR>
звездочка с двойной кавычкой ("*) перед любой командой yank будет дергать результаты в буфер копирования. Это работает для Windows и Linux тоже.
на macos 10.8 vim компилируется с помощью
-clipboardчтобы использовать"*yвам нужно будет перекомпилировать. К счастьюbrew install vimлегко скомпилировать новую версию для вас и это будет+clipboard.
визуально выделите текст и типа:
ggVG !tee >(pbcopy)что я нахожу лучше, чем:
ggVG :w !pbcopyТак как он не мигает приглашение: "нажмите ENTER или введите команду, чтобы продолжить"
Если вы используете MacPorts, вы можете обновить VIM, чтобы включить поддержку буфера обмена через:
порт установки vim +x +x11
теперь вы используете " + register, чтобы дергать текст непосредственно в буфер обмена Mac. Работает как шарм.
Если вы находитесь на MacOS X:
$ brew install vim $ vim --version VIM - Vi IMproved 7.4 [...]затем добавьте к вашему .vimrc:
set clipboard=unnamedТеперь вам просто нужно быть в ВИМ и
:%y, чтобы все содержимое было скопировано в буфер обмена.
Если ваш vim не скомпилирован с помощью clipboards, вы хотите скопировать выделенный текст вместо целых строк, вы не хотите устанавливать macvim или другой графический интерфейс, самым простым решением является добавление этой строки в ваш .vimrc:
map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>чтобы использовать его, просто визуально выберите текст, который вы хотите скопировать, а затем Control-C. Если вы хотите полное объяснение этой строки,читать здесь
Я только что попробовал
map <C-x> :!pbcopy<CR> vmap <C-c> :w !pbcopy<CR><CR>это сработало очень хорошо.
использовать доморощенного тут vim:
brew install vimMac (начиная с 10.10.3 Yosemite) поставляется с предустановленной системой vim, которая делает не есть
clipboardфлаг включен.вы можете либо скомпилировать vim для себя и включить этот флаг, либо просто использовать vim Homebrew, который настроен правильно.
чтобы увидеть это для себя, проверьте систему запаса vim с
/usr/bin/vim --versionвы увидите что-то например:
$ /usr/bin/vim --version VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 5 2014 21:00:28) Compiled by [email protected] Normal version without GUI. Features included (+) or not (-): ... -clientserver -clipboard +cmdline_compl ...Примечание
-clipboardС доморощенным vim вы вместо этого получаете
$ /usr/local/bin/vim --version VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May 10 2015 14:04:42) MacOS X (unix) version Included patches: 1-712 Compiled by Homebrew Huge version without GUI. Features included (+) or not (-): ... +clipboard ...Примечание
+clipboard
command-C? Это, по крайней мере, работает для vim, запущенного из терминала.приложение для текста, выбранного с помощью мыши.
можно использовать MacVim когда вы находитесь на Mac, чтобы легко получить доступ к буферу обмена с помощью стандартных клавиш ОС.
Он также полностью обратно совместим с обычным Vim, поэтому мне даже не нужно иметь отдельный
.vimrc.
Fakeclip реализует буферы + и*, если они не поддерживаются изначально.
моей главной проблемой была версия osx по умолчанию VIM. Установка его через homebrew добавил
+clipboardдля построения.чека с
vim --versionесли он говорит
-clipboardили+clipboard
Если у вас есть опция + буфер обмена на вашей установке VIM (вы можете проверить с помощью: version), и вы находитесь в визуальном режиме, вы можете сделать " +y это будет дергать выбор в буфер + что такое буфер обмена.
Я добавил следующие карты в мой vimrc и она отлично работает.
vmap y " +y С этим я могу сделать ключевые лидер за y для копирования в буфер обмена в visual режим
nmap p " +p С этим я могу сделать ключевые лидер за p вставить из буфера обмена в обычном режиме.
PD: на Ubuntu мне пришлось установить vim-gtk, чтобы получить опцию +буфер обмена.
для пользователей Ubuntu пакет, который вы хотите получить для использования буфера обмена, является vim-full. Другие пакеты (vim-tiny, vim) не включают функцию буфера обмена.
на mac, когда что - нибудь еще, кажется, работает-Выберите с помощью мыши, щелкните правой кнопкой мыши выберите Копировать. уфф
в настоящее время я нахожусь на OS X 10.9 и мои усилия по компиляции vim с +xterm_clipboard ничего мне не принес. Так что мое текущее решение-использовать MacVim в терминальном режиме с опцией
set clipboard=unnamedв моем ~/.файл vimrc. Работает идеально для меня.
я встречаю ту же проблему, после установки
macvimвсе еще не работает, наконец я нашел способ решить:попробуйте сначала удалить все vim,
brew uninstall macvim
brew uninstall --force vimи переустановить macvim
brew install macvim --with-override-system-vimзатем вы можете использовать
"*yили"+y, неset clipboard=unnamed
что работало на меня в моем
.vimrcset clipboard=unnamed if has("unnamedplus") " X11 support set clipboard+=unnamedplus endif
копирование в буфер обмена с помощью регистра ' + ' или ' * ' не работает?
причина: ваша конкретная версия vim была скомпилирована без поддержки буфера обмена.Введите vim --verion на консоли, и вы увидите - xterm_clipboard. Установка vim с пакетами gui решает эту проблему. На ubuntu вы можете сделать это, набрав на оболочке:
sudo apt-get install vim-gui-common
теперь снова сделайте vim -- version на консоли. Скорее всего, вы бы увидели +xterm_clipboard сейчас!!
Итак, теперь вы можете скопировать что-либо в буфер обмена с помощью register + (например, "+yy для копирования текущей строки в буфер обмена)
Comments