如何在 VIM+ALE/Syntastic 中只选择文件内容?

问题描述

当通过 ALE 或 VIM 中的 Syntastic 启用 linter 时,警告/错误标记在缓冲区左侧的 2 个字符列中。 我可以通过鼠标选择复制并通过中键单击粘贴。但是,当出现警告/错误时,选择文件内容也会选择 lint 列中的空格和字符。

如何用鼠标只选择文件内容?还是暂时移除 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 的符号或行号或窗口分隔符。

  1. 看看在 Vim 中执行 :echo has('clipboard') 是否打印 1

  2. 如果是,则使用 "+yy 拉取当前 actual 行,或使用 "+y 拉取当前选择,或 "+y{motion} 哟将 {motion} 覆盖的文本拉到系统剪贴板。

  3. 如果没有,那么安装一个带有剪贴板支持的合适 Vim——正确的 Arch 包是 gvim——并使用上面概述的方法。

如果你只关心 yanking 和放入 Vim 本身......

使用内置的 yp,因为它们比终端模拟器|窗口管理器|桌面环境的复制和粘贴功能更通用。

参见 :help y:help p:help "+