相关疑难解决方法(0)

键盘输入和文本输出如何工作?

假设我A在文本编辑器中按下键,这会a在文档中插入字符并将其显示在屏幕上。我知道编辑器应用程序没有直接与硬件通信(中间有内核和其他东西),那么我的计算机内部发生了什么?

keyboard x11 architecture display

105
推荐指数
2
解决办法
3万
查看次数

键绑定表?

我们是否有一个键绑定表来翻译所有指代按键的方式?我正在使用zsh,但我认为如果有这样的表,它将适用于任何外壳。

我问的原因是我想分配一些键绑定,但我不知道如何引用它们(除非我要窃取一个已经定义的)。

例如,在“zbindkey”中,我们有这样的事情:

[[ "$terminfo[kend]"  == " O"* ]] && \
    bindkey -M emacs "${terminfo[kend]/O/[}"  end-of-line
Run Code Online (Sandbox Code Playgroud)

...我可以猜到“kend”意味着这是指End钥匙。

交叉检查bindkey我看到这些行:

"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
Run Code Online (Sandbox Code Playgroud)

...所以我相信其中一行是指End密钥。哪一个?

我们在“bindkey”文件中也有这个:

bindkey "\e[A" history-beginning-search-backward
Run Code Online (Sandbox Code Playgroud)

现在,我碰巧知道那是Up Arrow关键,但如果我不知道,我怎么知道呢?

$ bindkey (at CLI)
Run Code Online (Sandbox Code Playgroud)

... 为同一个键提供了不同的语言:

"^[[A" history-beginning-search-backward
Run Code Online (Sandbox Code Playgroud)

...但至少现在我知道 ^[[A在 bindkey-at-CLI 中说话与\e[A在 bindkey-in-zbindkey 中说话是一样的。这很容易。在过去的DOS下,Up Arrow0;72-你会发现每一个法律按键的扫描码,有仅仅是一种语言。

有桌子吗?或者能够选择击键并知道如何terminfo[]在“bindkey-in-zbindkey”中……在“bindkey-at-CLI”和/或任何其他语言中引用它的其他方式碰巧是?

同样,在 DOS 中有scancode程序——键入一个键,你就得到了扫描码。这太容易了。


从答案中我猜想没有办法打印出所有可能绑定的表格?无论如何'bindkey'几乎可以满足我的要求:

pts/2 HP-y5-10-Debian1 root /aWorking/Docs $ bindkey -L
bindkey …
Run Code Online (Sandbox Code Playgroud)

zsh terminal keyboard key-mapping

24
推荐指数
4
解决办法
3万
查看次数

在终端 Vim 中映射其他冲突或不可映射的键

网络 ( 1 , 2 , 3 ) 中的资源声称某些组合键(其中Ctrl-Shift-letter, Ctrl-number, Ctrl-i/ Tab, Ctrl-m/ Enter, Esc/ Ctrl-[)无法在 Vim 中可靠地映射,因为终端无法将它们与未修改的对应项区分开来(更多背景信息请参见Gilles ' 答案这篇 ASCII 表文章)。作为一个具体的例子,地图

nnoremap <Tab>   :!echo A<CR>
noremap  <C-S-X> :!echo B<CR>
noremap  <C-1>   :!echo C<CR>
noremap  <C-F1>  :!echo D<CR>
Run Code Online (Sandbox Code Playgroud)

导致TabCtrl-i打印 A (也在 Gvim 中),并且 和Ctrl-x打印Ctrl-Shift-xB. Ctrl-{1,2,...}Ctrl-{F1,F2,...}无法映射,前者甚至在 Gvim 中也不能映射。

是“如何以不同方式映射 Ctrl-a 和 Ctrl-Shift-a?”的答案。简短地描述了 Xterm 的解决方案,但它缺少一些可能会被忽略的棘手细节。这是试图提供更完整的答案。

尽管这是一个以 Vim …

vim keyboard-shortcuts xterm rxvt kitty

6
推荐指数
1
解决办法
1899
查看次数

ASCII 转义序列和控制字符配对是标准的一部分吗?

转义序列与 ASCII 控制字符有常见的配对,例如 Ctrl-C 和 Ctrl-Z 分别与 ETX 和 SUB 配对。

在维基百科控制代码页面上,有最多的配对,但没有引用的参考。

控制字符和键序列配对是标准的一部分吗?

Linux 和其他操作系统的列表在哪里?

是否有手册页列出了这些配对?

它们纯粹是几十年的不成文约定吗?

参考

terminal posix ascii

5
推荐指数
2
解决办法
2119
查看次数