每个输入前都会自动加一个字符,有没有人遇到过?

就是输入中文的时候,突然就一个键重复好多次, 然后再切回英文 就会每次输入字符,前面都会自动加一个字符

比如,有一次重复的是s,按减 a,就会输入sa,按aaa,就会输入sasasa

但是方向键、回退、回车,都不会加

Mac下,用的系统本身的输入法

1 个赞

不很理解你说的意思,这种情况如果像另一帖子 本站添加一个新功能, Voting 投票功能 说的有gif或本站能上传短视频,就好理解你的是什么情况了

嗯,确实是不太好说清楚, 不过视频也没用,又不能百分百复现 具体也不知道怎么触发的, 比如刚才,就是打中文句子的时候,突然就出了 “事实是生生世世” (就是输入了一串s,其实我并没有输入一串s) 然后切换了回英文,每输入一个字符,都会出现2个字符,s+要输入的字符

所以我想问问,有没有什么功能,是会在输入的时候添加字符的?可能被我触发了?

键盘坏了?键盘坏了就这效果

键盘没问题,在别的地方输入正常

换回去,还是这样

换buffer也不行

只能退出再启动

我也有过,不过是在chrome里,后来发现没在xinitrc,导出gtk输入法模块变量导致的,你的不清楚

key 录了个 gif,运行 Emacs 一段时间后,按任何键,都会自动输入 AK,前缀不固定,lldb 看了下线程,有个 rime 的(使用 emacs-rime),先禁用掉再看看

  thread #5                                                                                                                                                          
    frame #0: 0x000000018a19d0c0 libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x000000018a1d5808 libsystem_pthread.dylib`_pthread_cond_wait + 1228                                            
    frame #2: 0x000000018a123ddc libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28                                     
    frame #3: 0x00000002a018da90 librime.1.dylib`leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadMain() + 116                                              
    frame #4: 0x00000002a018da1c librime.1.dylib`leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint(leveldb::(anonymous namespace)::PosixEnv*) + 12
    frame #5: 0x00000002a018db18 librime.1.dylib`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_del
ete<std::__1::__thread_struct> >, void (*)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*> >(void*) + 44                      
    frame #6: 0x000000018a1d5240 libsystem_pthread.dylib`_pthread_start + 148

问题出现随机(不过出现后一直存在),下次再有进展来更新 :sweat_smile:

有一些类似的帖子,比如:

我自己这边是去掉 vertico-posframe 就好了,但并不是所有人都是这个原因

没想到这么多人都遇到了。

emacs-rime 里也用到了 posframe,那感觉它的可能性比较大了。禁用 rime 过段时间再看看。

最近28master分支上频繁遇到了,gccemacs buid频率非常高,非gccemacs buid偶尔也会遇到,还没找到原因,也不知道怎么重现,甚是恼人

是挺烦人的,想到一个排查方式,出现问题后,M-x 我这边还是可以按出来的,然后一个个 unload-feature(可以外部写好,然后拷贝的 Emacs 里),看看能不能找到出问题的插件

更改标题:

- 每个输入自如前都会自动加一个字符,有没有人遇到过?
+ 每个输入前都会自动加一个字符,有没有人遇到过?

你排查到了吗?我平时工作环境加载包挺多的,所以很难排查

还没。我这边出现频率比较低,一周差不多一两次,下次出现了再排查下。

在MacOS,系统输入法是Rime的时候特别容易复现,键盘敲快一点就出现了。但是Abc输入法的时候就不会出现。

真的吗?我也是用的Rime,看来要换输入法测试下了

有几点经验性发现:

  1. 只在macOS上会出现这个问题。
  2. ARM M1的版本没有出现过。
  3. gccemacs 更加频繁。
  4. 系统输入法为 rime 时,并且同时使用emacs-rime时非常频繁。
  5. 用外置键盘(HHKB)容易出现,用macbook内置键盘没有出现过。

感觉没有太多规律,不过禁用emacs-rime后,就没有出现过了。但是系统输入法rime有时会导致emacs卡死。

我近一个月用的是emacs29,只要系统输入法是Abc,就不会出现这个问题,不需要禁用emacs-rime。关于自动切换到Abc,我的解决方法是:

  1. sis ,emacs 到前台时自动切换成Abc
  2. 在键盘设置里面,打开“自动切换到文稿的输入法”。(打开 emacs 时需要手动切换一下输入法)
1 个赞

我也是使用 sis + emacs 29 ,一切正常。 至于你说的每次打开 emacs 要手动切输入法的情况,我是通过 hammerspoon 来实现在第一次启动程序自动切换输入法到中文/英文。

使用 sis 就不需要手动切输入法了😂