2016-11-20 7 views
3

Согласно руководству пользователя vim 04.7 (http://vimdoc.sourceforge.net/htmldoc/usr_04.html#04.7), вы можете вырвать из vim в буфер обмена с "*y и положить в vim из буфера обмена с "*p. I может успешно использовать команду "*p, но команда "*y не работает для меня прямо сейчас. Проблема сохраняется в течение нескольких недель. Я знаю, что вы можете обойти проблему с помощью gvim, но я после решения при запуске vim от терминала.Как я могу получить vim yank в буфер обмена («* y»)?

У кого-нибудь есть мысли о том, что может быть проблемой? Я включил файл .vimrc ниже - как вы увидите, это более или менее файл по умолчанию, который предоставляется в расфасованном виде с помощью vim.

Я запускаю Ubuntu 16.04 в качестве виртуальной машины на Windows 10. Заранее благодарим за любую помощь, которую вы можете предоставить.

" An example for a vimrc file. 
" 
" Maintainer: Bram Moolenaar <[email protected]> 
" Last change: 2016 Mar 25 
" 
" To use it, copy it to 
"  for Unix and OS/2: ~/.vimrc 
"   for Amiga: s:.vimrc 
" for MS-DOS and Win32: $VIM\_vimrc 
"  for OpenVMS: sys$login:.vimrc 

" When started as "evim", evim.vim will already have done these settings. 
if v:progname =~? "evim" 
    finish 
endif 

" Use Vim settings, rather than Vi settings (much better!). 
" This must be first, because it changes other options as a side effect. 
set nocompatible 

" Activate pathogen file manager 
execute pathogen#infect() 

" allow backspacing over everything in insert mode 
set backspace=indent,eol,start 

"if has("vms") 
" set nobackup  " do not keep a backup file, use versions instead 
"else 
" set backup  " keep a backup file (restore to previous version) 
" set undofile  " keep an undo file (undo changes after closing) 
"endif 
set history=50  " keep 50 lines of command line history 
set ruler  " show the cursor position all the time 
set showcmd  " display incomplete commands 
set incsearch  " do incremental searching 

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries 
" let &guioptions = substitute(&guioptions, "t", "", "g") 

" Don't use Ex mode, use Q for formatting 
map Q gq 

" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, 
" so that you can undo CTRL-U after inserting a line break. 
inoremap <C-U> <C-G>u<C-U> 

" In many terminal emulators the mouse works just fine, thus enable it. 
if has('mouse') 
    set mouse=a 
endif 

" Switch syntax highlighting on, when the terminal has colors 
" Also switch on highlighting the last used search pattern. 
if &t_Co > 2 || has("gui_running") 
    syntax on 
    set hlsearch 
endif 

" Only do this part when compiled with support for autocommands. 
if has("autocmd") 

    " Enable file type detection. 
    " Use the default filetype settings, so that mail gets 'tw' set to 72, 
    " 'cindent' is on in C files, etc. 
    " Also load indent files, to automatically do language-dependent indenting. 
    filetype plugin indent on 

    " Put these in an autocmd group, so that we can delete them easily. 
    augroup vimrcEx 
    au! 

    " For all text files set 'textwidth' to 78 characters. 
    autocmd FileType text setlocal textwidth=78 

    " When editing a file, always jump to the last known cursor position. 
    " Don't do it when the position is invalid or when inside an event handler 
    " (happens when dropping a file on gvim). 
    autocmd BufReadPost * 
    \ if line("'\"") >= 1 && line("'\"") <= line("$") | 
    \ exe "normal! g`\"" | 
    \ endif 

    augroup END 

else 

    set autoindent  " always set autoindenting on 
    set sts=4   " 3 options to halve displayed indent 
    set shiftwidth=4  " (without altering true tabstop) 
    set noexpandtab 

endif " has("autocmd") 

" Convenient command to see the difference between the current buffer and the 
" file it was loaded from, thus the changes you made. 
" Only define it when not defined already. 
if !exists(":DiffOrig") 
    command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis 
      \ | wincmd p | diffthis 
endif 

if has('langmap') && exists('+langnoremap') 
    " Prevent that the langmap option applies to characters that result from a 
    " mapping. If unset (default), this may break plugins (but it's backward 
    " compatible). 
    set langnoremap 
endif 


" Add optional packages. 
" 
" The matchit plugin makes the % command work better, but it is not backwards 
" compatible. 
packadd matchit 
+0

Какую виртуальную машину вы используете? Вы можете найти помощь здесь: http://askubuntu.com/questions/533071/virtualbox-4-12-shared-clipboard-not-working-in-ubuntu14-04. В любом случае этот вопрос больше подходит для [Ask Ubuntu] (http://askubuntu.com), если только ваш обмен буфера обмена не работает отлично за пределами Vim. –

+0

Привет, Джим, проблема локализована в vim-side, потому что мой буфер обмена ubuntu отлично работает. Я использую Virtualbox, но поток, который вы предложили, касается копирования и вставки между окнами и моей виртуальной машиной, которая уже работает (кроме vim). – adc17

ответ

2

В linux настольный буфер обмена является регистром + (quoteplus). * (Quotestar) вместо этого относится к визуальным выборам X11, как указано here. Итак, попробуйте сделать "+y, чтобы yank и "+p положить текст.

+0

Использование + вместо * решена проблема. Спасибо. – adc17

1

Вы должны использовать версию vim с поддержкой X. Например, Ubuntu предоставляет пакеты vim-gtk, содержащие gvim и версию vim с поддержкой X.

+0

Как насчет 'vim-gnome'? – vabada

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