Вырезать в системный буфер обмена от Vim на Ubuntu
Я использую Ubuntu 12.04 Beta и Vim, которые пришли с ним. Я пытаюсь использовать Vim для копирования содержимого текстового файла в браузер Chrome.
Я пробовал +
, *
y
и все его варианты. Я попытался :set clipboard=unnamed
и :set clipboard=unnamedplus
. Не работает.
Я не пытаюсь использовать xclip, GVim или любой из них. Я пробовал с xclip (не стандартный пакет в Ubuntu 12.04), но это тоже не работает, также слишком много усилий.
Как скопировать текст в буфер обмена, а затем вставить в любом месте, например Chrome?
Ответы
Ответ 1
Ваша версия Vim не поддерживает X, что требуется для доступа к буферу. По умолчанию Ubuntu отправляет несколько сборок vim, и только вариант GUI поддерживает доступ к буфер обмена. Я всегда перекомпилирую vim из источника, так что один vim (с символическими ссылками для gvim и т.д.) Поддерживает все необходимое (в том числе :gui
для переключения из командной строки в версию GUI). Это действительно очень легко сделать:
# Get the compile-dependencies of vim
sudo apt-get build-dep vim
# If you haven't got mercurial, get it
sudo apt-get install mercurial
# Get the source
hg clone https://vim.googlecode.com/hg/ vim_source
# Compile it
cd vim_source
./configure \
--enable-perlinterp=dynamic \
--enable-pythoninterp=dynamic \
--enable-rubyinterp=dynamic \
--enable-cscope \
--enable-gui=auto \
--enable-gtk2-check \
--enable-gnome-check \
--with-features=huge \
--with-x \
--with-compiledby="Your Name <[email protected]>" \
--with-python-config-dir=/usr/lib/python2.7/config
make && sudo make install
Это установит его в /usr/local
, поэтому убедитесь, что в PATH
до /usr
и он будет использоваться вместо версий Ubuntu.
Ответ 2
Вывод из vim --version
должен выглядеть примерно так:
Huge version with GTK2-GNOME GUI. Features included (+) or not (-):
и далее в выводе вы увидите такие вещи, как + Xll:
+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim
+xsmp_interact +xterm_clipboard -xterm_save
Это означает, что ваша консоль vim может скопировать/вставить в/из буфера обмена X11.
Попробуйте apt-get install vim-gtk
Ответ 3
Установите пакет vim-gnome
вместо vim
. Он поставляется с включенным clipboard
.
Ответ 4
Вы также можете добавить ярлыки к вашему vimrc
# Copy and paste
vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <ESC>"+pa
Это позволит вам скопировать Ctrl + C и вставить Ctrl + V
Ответ 5
Если вы запустили configure
, как описано в @DrAl, но вы все еще не можете скомпилировать GUI, и вы увидите это на выходе вашего ./configure
checking for X... (cached) no
Затем вам может потребоваться удалить файл кэша, созданный configure
.
find . -name config.cache -delete
Затем запустите configure
и make
и снова проверьте src/vim --version
- он должен показать, что gui включен сейчас.
Ответ 6
Вы можете это сделать; просто подключитесь к xclip.
gg
V
G
:'<,'>w !xclip
отсюда: в vim с xclip, yank в буфер обмена
Ответ 7
Я бы открыл файл в браузере, используя URL-адрес файла:
file:///home/dave/some-file
Не супер элегантный, но он работает.
Ответ 8
Мне очень нравится этот набор ярлыков:
" Add shortcut for clipboard registers
noremap <leader>p "*p
noremap <leader>y "+y
noremap <leader>d "+d
Это просто более простой способ, затем набирать "* и" + каждый раз.