Подтвердить что ты не робот

Вырезать в системный буфер обмена от Vim на Ubuntu

Я использую Ubuntu 12.04 Beta и Vim, которые пришли с ним. Я пытаюсь использовать Vim для копирования содержимого текстового файла в браузер Chrome. Я пробовал +, * y и все его варианты. Я попытался :set clipboard=unnamed и :set clipboard=unnamedplus. Не работает. Я не пытаюсь использовать xclip, GVim или любой из них. Я пробовал с xclip (не стандартный пакет в Ubuntu 12.04), но это тоже не работает, также слишком много усилий.

Как скопировать текст в буфер обмена, а затем вставить в любом месте, например Chrome?

4b9b3361

Ответ 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 включен сейчас.

Ответ 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

Это просто более простой способ, затем набирать "* и" + каждый раз.