我尝试将 Windows 剪贴板中复制的内容粘贴到 cygwin 的 vi 或 emacs 中,但它似乎无法与 yy (vi) 或 Mw (emacs) 一起使用。
有办法吗?我了解到/etc/clipboard
有来自 Windows 的剪贴板数据,但我不知道如何在 vi 或 emacs 中获取此信息。
答案1
至少对于 vim 来说,剪贴板就是"*
寄存器。
因此,要提取当前行,请执行"*yy
,要粘贴剪贴板的内容,请执行"*p
,依此类推。
答案2
在 cygwin 下从 vim 复制文本,只需在可视模式下"
按键+
键:y
"+y
将文本粘贴到 cygwin 下的 vim 中,只需在正常模式下按下"
键+
键键 即可:p
"+p
答案3
有一个解决方案提到维基亚:
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 及更高版本。
答案4
要在 Cygwin 中使用 vi 从剪贴板粘贴:
Press SHIFT-INSERT in insert mode
(this means the insert key by the Delete/Home/End keys)
要在 Cygwin 中使用 vi 复制到剪贴板:
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”不起作用的环境中,您可以尝试"+年。
不幸的是不是在 Cygwin 中工作。