gpt4 book ai didi

linux - 在 vim 插入模式下从左向右移动光标时随机出现在屏幕上的字符

转载 作者:IT王子 更新时间:2023-10-29 01:59:30 29 4
gpt4 key购买 nike

我有带插件的 Vim vim-goneocomplete , 当 o 在插入模式下从左向右移动光标时 this happens

注意:这只发生在 go 代码和 vim-go 所需的二进制文件(例如 gocode、godef、goimports 等)

有人遇到同样的问题吗?

我正在运行 Ubuntu 14.04.2 LTS 64 位,内核 3.13.0-48 Vim 7.4.52,支持 lua

提前致谢

最佳答案

看起来您正在使用 gnome-terminal 或 konsole。

当您使用光标键在插入模式中四处移动时,这些键会发送转义序列。特别是,如果您碰巧按下 shift 或 control 键,它们可以发送不同的转义序列(带有数字),可能用分号分隔数字。 vim 处理这类字符串有一些限制,在某些情况下(参见 this discussion)它会变得困惑并停止解释字符串,在屏幕上留下垃圾。

问题的根源在于,在 vi 中,程序(错误)使用转义符有两个不同的原因:

  • 用户发送给编辑器的特殊“命令”字符
  • 大多数特殊键发送给应用程序(包括编辑器)的字符串中的第一个字符。

后者需要程序 (vim) 等待“一段时间”来确定使用哪种大小写。如果您使用的机器速度较慢(或连接速度较慢),而您的键盘重复速度很快,那么 vim 试图区分这两种情况就会失败。同样,您的插件会在每次击键时向屏幕发送许多 字符,从而使 vim 变慢。

由于 xterm 和其他终端将该信息编码为数字,修改 键(使用 shift 或 control 修饰符)会加剧这种情况。 gnome-terminal 和 konsole 使用 xterm 的旧变体(参见 xterm FAQ How can I use shift- or control-modifiers? ),这更容易被 vim 误认为不是转义序列。

如果只是时间问题,那么更慢地移动光标可以避免问题(同意这只是一种解决方法)。您可以通过在 script 中运行 vim 以将输出捕获到 typescript 文件中来衡量 vim 完成的输出量。我这样做是为了分析错误,通过更慢地将数据发送回终端。其中一些 typescript 文件非常大,因为完成的工作很少。

关于linux - 在 vim 插入模式下从左向右移动光标时随机出现在屏幕上的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29482036/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com