3

Я попытался вставить то, что скопировал в буфере обмена Windows, в vi или emacs cygwin, и, похоже, он не работает с yy (vi) или Mw (emacs).

Есть ли способ сделать это? Я узнал, что /etc/clipboard содержит данные буфера обмена из окон, но я не знаю, как получить эту информацию в vi или emacs.

4 ответа4

2

По крайней мере, для vim буфер обмена является регистром "* .

Итак, чтобы восстановить текущую строку, перейдите "*yy , чтобы вставить содержимое буфера обмена, перейдите "*p и т.д.

1

Скопируйте текст из Vim в Cygwin, просто нажмите " клавиша + клавиша y в визуальном режиме:

«+ У

Вставьте текст в vim под cygwin, просто нажмите " клавиша + клавиша p в обычном режиме:

«+ Р

0

Чтобы вставить из буфера обмена с помощью vi в Cygwin:

Press SHIFT-INSERT in insert mode

(this means the insert key by the Delete/Home/End keys)

Чтобы скопировать в буфер обмена с помощью vi в Cygwin:

When you select text with your mouse, it automatically gets copied to the clipboard.

You can paste from the clipboard by pressing the middle mouse button.

Кроме того, в некоторых средах, где "* yy не работает, вы можете попробовать "+yy.

К сожалению , это не работает в Cygwin.

0

Существует решение упоминается в Викии:

function! Putclip(type, ...) range
  let sel_save = &selection
  let &selection = "inclusive"
  let reg_save = @@
  if a:type == 'n'
    silent exe a:firstline . "," . a:lastline . "y"
  elseif a:type == 'c'
    silent exe a:1 . "," . a:2 . "y"
  else
    silent exe "normal! `<" . a:type . "`>y"
  endif
  call writefile(split(@@,"\n"), '/dev/clipboard')
  let &selection = sel_save
  let @@ = reg_save
endfunction


vnoremap <silent> <leader>y :call Putclip(visualmode(), 1)<CR>
nnoremap <silent> <leader>y :call Putclip('n', 1)<CR>

просто скопируйте эти строки в .vimrc, и ваш \y сделает все, независимо от того, используете ли вы vim или мышь для выбора текстов.
Это может не быть проблемой, поскольку у вас уже есть доступ к буферу обмена, но /dev /clipboard доступен для Cygwin версии 1.7.13 и выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .