问题描述
当通过 ALE 或 VIM 中的 Syntastic 启用 linter 时,警告/错误会标记在缓冲区左侧的 2 个字符列中。 我可以通过鼠标选择复制并通过中键单击粘贴。但是,当出现警告/错误时,选择文件内容也会选择 lint 列中的空格和字符。
(在Alacritty、Sway/Wayland、Arch中运行VIM,安装了wl-clipboard但不知道有没有用)
编辑:是的,我正在尝试粘贴到其他程序中。 Gvim 可以正常工作,但我宁愿使用 vim 或 vimlike,例如我现在也在尝试的 Neovim。在 vim 中,即使 +
输出 *
,:echo has('clipboard')
或 1
剪贴板都不起作用。在 Neovim 中,即使 *
报告找到了 :checkhealth
,也只有 wl-copy
clibpoard 有效。
EDIT2:https://github.com/neovim/neovim/issues/2325 有 Neovim 的解决方法,set mouse=a
后跟 vmap <LeftRelease> "*ygv
EDIT3:按照评论中的建议使用 mouse=a 进行的测试表明这些列是在 alacritty 下选择的,但不是在 urxvt 下选择的,在 kitty 下它根本不起作用,所以我猜这是一个终端错误
解决方法
如果你想从 Vim 中拉出来粘贴到其他程序中......
你需要确保你的 Vim 是用剪贴板支持构建的,如果是这样,请使用 Vim 自己的“yanking”和“putting”命令,而不是你的终端模拟器|窗口管理器|桌面环境的,它们没有也不能'无论如何都不要关心 Vim 的符号或行号或窗口分隔符。
-
看看在 Vim 中执行
:echo has('clipboard')
是否打印1
。 -
如果是,则使用
"+yy
拉取当前 actual 行,或使用"+y
拉取当前选择,或"+y{motion}
哟将{motion}
覆盖的文本拉到系统剪贴板。 -
如果没有,那么安装一个带有剪贴板支持的合适 Vim——正确的 Arch 包是
gvim
——并使用上面概述的方法。
如果你只关心 yanking 和放入 Vim 本身......
使用内置的 y
和 p
,因为它们比终端模拟器|窗口管理器|桌面环境的复制和粘贴功能更通用。
参见 :help y
、:help p
和 :help "+
。