当您必须使用多个键键入 \ 时,如何使用需要 ctrl-\ 的键盘快捷键?

Tyi*_*ilo 6 keyboard-shortcuts macos

在大多数终端中,您可以按默认ctrl\设置向进程发送 SIGQUIT 信号。

但是在我的键盘上输入反斜杠,你必须这样做: altshift7

这样做ctrlaltshift7不起作用,那么我应该如何做键盘快捷键?

小智 9

今天我必须用德语键盘和 Ubuntu 来解决同样的问题。所以我想出了下面的脚本。找到正确的钥匙仍然需要反复试验,但这样就非常简单了。

根据记录,Ctrl-4在我的例子中成功了。

#!/usr/bin/bash

# Shows character codes while typing. More to the point, it also captures signals.

# Trap function
sig() {
    printf '\t\t\t%s\t(re-enabled now, works next time)\n' "$1"
    # A trap disables itself after being called once.
    trap - $1
}

# Setting traps for all signals
mapfile -t signals < <(trap -l | grep -Eo SIG[-+A-Z0-9]+)

for signal in "${signals[@]}"; do
    trap "sig $signal" "$signal"
done

# Display characters
printf "Start typing to examine characters and signals. Exit with Ctrl-C (twice).\n\n"
printf "Char\tDec\t Hex\tSignal\n"

while IFS= read -rN 1 char; do 
    LC_CTYPE=C printf '\t%3d\t0x%02X\n' "'$char" "'$char"
done
Run Code Online (Sandbox Code Playgroud)

  • 感谢您发帖,ctrl+4 在带有德语键盘的 ubuntu 上也适用于我。 (2认同)

Sco*_*ott 5

我不\xe2\x80\x99t 知道如何键入Ctrl+ \\,\n但我可以为你提供另一种从键盘生成 SIGQUIT 的方法。\xc2\xa0\n找到一个可以作为简单组合键键入的字符。\ xc2\xa0\n这可能需要映射到(单个)ASCII 字符(即单个字节);\ne.g, Ctrl+ A.\xc2\xa0\n然后键入

\n\n
stty quit ^A\n
Run Code Online (Sandbox Code Playgroud)\n\n

这可以是\n stty\xe2\x80\x82quit\xe2\x80\x82Ctrl+ A Enter\n(如果收到错误消息,请尝试在+之前键入Ctrl+ \n )\n \n \xe2\x80\x8a \n(如果收到错误消息,请尝试将\xc2\xa0\n然后键入类似的命令,\n按组合键(即+ ),\n然后查看程序是否退出\n如您所期望的+一样。VCtrlAsttyquit^AEnter^Asleep\xc2\xa09CtrlACtrl\\

\n\n

如果您找到有效的组合,请将其(stty\xc2\xa0quit命令)放入您的.login.profile.bashrc、\ 或您使用的任何初始化命令文件中。

\n


小智 0

您是否尝试过将不同的键映射到^\\

\n\n

例如(在 macOS 终端中):

\n\n

转到 \xe2\x80\x9cTerminal -> Preferences -> Settings -> Keyboard\xe2\x80\x9d,单击 并将+类似control+的内容映射f4\\034

\n