Control+t (Ct) 在某些发行版中不起作用

Control+t (Ct) 在某些发行版中不起作用

本文介绍的是键盘组合键“Control + t”(小写“t”)和 emacs。

这个问题是gui版本独有的,在使用终端时不会出现。

我在用韦兰

  1. Control+t :光标只是闪烁,没有任何反应。
    • Ch k + Ct(Control+h 和 k,然后是 Control + t):没有显示任何内容。
    • Ch k + CSt:有效。显示这个

'C-t (translated from C-S-t) runs the command transpose-chars (found in global-map), which is an interactive compiled Lisp function...'

笔记译自 CSt

这基本上意味着 Control-t 在这个过程中的某个地方被吃掉了。

一些更多信息和好奇的事情 -

  1. Control+t 和终端 -

    1. 适用于 Kitty 和白蚁 - 由 wev 检测到; emacs 模式下的 Ct 'tranpose-chars' (zsh 中的 bindkey -e)有效
    2. 在 konsole 中不起作用 - 由 wev 检测到; emacs 模式下的 Ct 'tranpose-chars' (zsh 中的 bindkey -e)才不是工作。
  2. 韦夫输出 -


    [14:     wl_keyboard] key: serial: 5101; time: 10021865; key: 66; state: 1 (pressed)
                      sym: Control_L    (65507), utf8: ''

    [14:     wl_keyboard] modifiers: serial: 0; group: 0
                          depressed: 00000004: Control 
                          latched: 00000000
                          locked: 00000000
    
    [14:     wl_keyboard] key: serial: 5103; time: 10022192; key: 28; state: 1 (pressed)
                          sym: t (116), utf8: ''

  1. Emacsclient -t(终端和 tty 上的 emacs 客户端)可以工作。

C-t runs the command transpose-chars (found in global-map), which is an interactive compiled Lisp function in `simple.el'.

  1. Firefox 和 Chrome 能够检测按键。测试于https://keyboardchecker.com/

我需要什么?

  1. 我需要了解为什么会发生这种情况。
  2. 解决办法同上。

我需要你的帮助。

去做:

  1. 需要在X11中检查相同的内容然后报告。

[更新] X11中仍然存在同样的问题。同样,Control+Shift+t 有效,但 Control+t 无效

[更新] 这不再是关于 emacs 的了。

这个问题在 DE 中仍然存在。但它并未感染 TTY。

  1. 我从 Arch(我偶然发现的)切换到了 Debian Sid。问题解决了。然而,我的带有 DSid 的笔记本电脑有这个问题,但它在我的电脑上不存在。诡异的。
  2. 从 Sid 切换到稳定版,因为某些升级破坏了很多软件包。稳定感染了这个问题。然而,在删除 .cache 和 .config 后,它就消失了,并在重新启动后很快又回来了。我重试了同样的方法,但这次没有成功。
  3. 目前在 Xubuntu 上还没有这个问题。
  4. 请注意,我在每个发行版上使用了几乎相同的配置。我的主目录位于不同的分区上。因此,我可以无缝地迁移我的 / 。
  5. [更新] 2020 年 11 月 11 日 - Xubuntu 也被感染。

我终于放弃了。

[更新] 问题已解决。在搜索了这台电脑上存在的所有可能的组合键后,我发现是 qstardict 错误地吃掉了所有的 Control+t。禁用它,问题就解决了。

答案1

为了提供一些背景信息,以下内容来自Ctrl-h k Ctrl-t

Ct 运行命令 transpose-chars(在 global-map 中找到),这是“simple.el”中的交互式编译 Lisp 函数。

它与 Ct 绑定。

(转置字符 ARG)

围绕点交换字符,向前移动一个字符。使用前缀 arg ARG,效果是获取 point 之前的字符并将其向前拖动到 ARG 其他字符之上(如果 ARG 为负则向后拖动)。如果没有参数并且在行尾,则交换前两个字符。

换句话说:按下Ctrl-T将翻转前两个字符的位置。我惊喜地发现这也适用于bash

$ tpo # press Ctrl-t
$ top

就我个人而言,使用此键盘快捷键没有遇到任何问题。例如bashemacs它会正确地调换前面的字符,并且在网络浏览器中打开一个新选项卡。

相关内容