答案 0 :(得分:0)
当你不让Vim处理鼠标时,它将是处理文本选择的终端。对于终端,任何应用程序只是驱动光标并在此处打印字符。它没有任何终端内容的语义背景;它只是字符的行和列。
所以,你不能指望终端能够检测到Vim内的换行。终端也不能区分实际文本字符和周围的视觉信息(这同样适用于状态行,数字和折叠列等)。
因此,如果要访问实际文本,请通过Vim进行复制;它分别具有X选择和系统剪贴板的寄存器*
和+
。为了使这些工作,需要满足某些先决条件。互联网上有很多相关的问题(取决于您的操作系统,终端,以及您安装的Vim的版本和版本)。
如果你真的无法让它工作,你可以:write
(部分)缓冲区到临时文件,然后从那里复制。如果您连接到其他主机,请使用Samba,scp
或ftp
来传输文件。作为最后的手段,暂时禁用Vim中的视觉装饰,从终端复制,并在粘贴后撤消目标应用程序中的硬包裹。
答案 1 :(得分:0)
我创建了一个Vim插件,使用映射切换亚麻,列表等等:https://github.com/timakro/vim-copytoggle
Ingo Karkat使用Vim的剪贴板功能的答案是另一种选择。我决定反对它,因为debian打包Vim没有这个功能(vim-gtk包包含它),我不想在任何地方设置X11转发,我不想在无头服务器上安装X11库。只需用鼠标选择文本对我来说更方便。通过设置set mouse=a
和set clipboard=autoselect,autoselectplus
,使用剪贴板功能也可以,但请参阅:help 'clipboard'
。