【问题标题】:How to select only file content in VIM+ALE/Syntastic?如何在 VIM+ALE/Syntastic 中只选择文件内容?
【发布时间】:2021-07-07 14:58:37
【问题描述】:

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

如何用鼠标只选择文件内容?还是暂时移除 lint 列?

(在Alacritty、Sway/Wayland、Arch中运行vim,wl-clipboard安装了但不知道有没有用)

编辑:是的,我正在尝试粘贴到其他程序中。 Gvim 可以按需要工作,但我宁愿使用 vim 或 vimlike,例如我现在也在尝试的neovim。在 vim 中,+* 剪贴板都不起作用,即使 :echo has('clipboard') 输出 1。在 neovim 中,只有 * clibpoard 有效,即使 :checkhealth 报告已找到 wl-copy

EDIT2:https://github.com/neovim/neovim/issues/2325 有一个 neovim 的解决方法,set mouse=a 后跟 vmap <LeftRelease> "*ygv

EDIT3:按照 cmets 中的建议使用 mouse=a 进行的测试表明,这些列是在 alacritty 下选择的,但不是在 urxvt 下选择的,在 kitty 下它根本不起作用,所以我猜这是一个终端错误

【问题讨论】:

  • 只有在你没有启用鼠标支持的情况下,这些列才会在 vim 中被选中。所以 mouse=a 不是一种解决方法,它是您问题的解决方案。
  • 我刚刚对其进行了测试,即使在 alacritty 中使用 mouse=a 而不是在 urxvt 中,vim 仍会选择列,因此它似乎与终端相关并且可能是一个 alacritty 错误。

标签: vim selection clipboard syntastic


【解决方案1】:

如果你想从 Vim 中提取并粘贴到其他程序中……

您需要确保您的 Vim 构建时支持剪贴板,如果支持,请使用 Vim 自己的“yanking”和“putting”命令,而不是终端仿真器|窗口管理器|桌面环境,它们不能也不能无论如何都不必关心 Vim 的符号、行号或窗口分隔符。

  1. 查看在 Vim 中执行 :echo has('clipboard') 是否会输出 1

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

  3. 如果没有,请安装支持剪贴板的适当 Vim(正确的 Arch 包是 gvim)并使用上述方法。

如果你只关心 Vim 本身的 yanking 和 put……

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

请参阅:help y:help p:help "+

【讨论】:

    猜你喜欢
    • 2017-12-29
    • 1970-01-01
    • 2015-11-04
    • 2020-11-23
    • 2023-03-30
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多