如何在ubuntu中配置类似macOS的文本导航快捷方式(删除单词/行,按单词/行移动光标)

Joe*_*son 5 keyboard-layout shortcut-keys

我使用 macOS 进行技术写作,最近家里有一个 Ubuntu 桌面 (20.04)。我对两者使用相同的外部键盘,而我遇到的最大的困难是我太习惯使用以下 macOS 热键:

\n
    \n
  • Alt+ Backspace- 删除左侧的单词(我意识到这可以通过Control+来实现Backspace,但我希望跨操作系统的所有内容都相同)
  • \n
  • Alt+ Left/ Right- 向左/向右移动光标一个单词(包括\xe2\x8c\x98+Shift组合键进行选择和移动)
  • \n
  • \xe2\x8c\x98+ Backspce- 删除左侧行
  • \n
  • \xe2\x8c\x98+ Left/ Right- 将光标移动到行首/行尾(包括用于选择和移动的\xe2\x8c\x98+组合)Shift
  • \n
\n

每当我必须使用 Windows 计算机时,我都会使用 AutoHotkey 重新配置它,以提供类似 macOS 的快捷方式。有没有一种等效的方法可以在 Ubuntu 系统范围内调整这些设置?

\n

如果可能的话,我希望这适用于所有应用程序,包括终端、浏览器、系统软件等。

\n

我没有完整的自动热键脚本,但这是我整理的一个脚本,以便人们可以看到我要做什么:

\n
; alt-backspace becomes delete-word-left\n!Backspace::\nSend, ^{Backspace}\nreturn\n\n; ctrl-backspace becomes delete-line-left\n^Backspace::\nSend, {Shift Home Backspace}\nreturn\n\n; ctrl-left becomes "home"\n^Left::\nSend, {Home}\nreturn\n\n; ctrl-right becomes "end"\n^Right::\nSend, {End}\nreturn\n
Run Code Online (Sandbox Code Playgroud)\n

(不,Vim 不是一个选择:))

\n

小智 2

我已经映射了我的大写锁以逃脱。我为此使用了 xmodmap。

步骤 1:使用 xev 识别要映射的键的键码。运行 xev 并按您想要映射的按键以获取其按键代码,如下所示:
xev | grep -i keycode

我不确定 macO 中的按键行为,所以抱歉,您需要自己尝试一下。
步骤 2:使用您拥有的键码,使用 xmodmap -e 尝试您的键映射是否按您希望的方式工作。
例如:如果您想在此测试步骤中恢复旧的按键布局,您可以使用第 3 步:获得所有按键代码后,将它们放入您的主目录(或用户可访问的任何位置)的文件中登录时)例如我的最终 xmodmap 文件如下所示:
#This is to map CapsLock to Esc
xmodmap -e 'keycode 66 = Escape'

setxkbmap -layout us


keycode 66 = Caps_Lock
keycode 9 = Escape
remove Lock = Caps_Lock
add Lock = Escape
keycode 9 = Caps_Lock
keycode 66 = Escape

步骤 4:修改 ~/.xinitrc 以在启动时使用自定义键绑定运行 xmodmap。我的是这样的:
/usr/bin/xmodmap ~/.speed


san*_*lio 1

您可以使用xmodmap,它被认为适合“最简单的任务”,或者更新且更全面的XKB(另请参阅)。人们常说,你应该避免旧的,xmodmap而应该选择新的xkb。(以及“注意:由于 Xorg 的限制,xmodmap 设置不会自动应用于热插拔设备。如果在应用自定义表后将键盘添加到系统,则必须再次应用自定义表。”)

要查找原始键码,您可以使用xev,与 相同xmodmap

至于如何获得您想要的特定绑定,您可能需要更深入地/usr/include/X11/keysymdef.h研究man xkeyboard-config.

您还可以获取xkbxmodmap配置。

也可以看看

https://www.charvolant.org/doug/xkb/html/node5.html

https://unix.stackexchange.com/questions/205226/xkb-make-ctrlbackspace-behave-as-delete

https://unix.stackexchange.com/questions/504158/permanently-change-xkb-keybindings

https://wiki.archlinux.org/index.php/Xorg/Keyboard_configuration

https://unix.stackexchange.com/questions/28993/what-is-bashs-meta-key

https://medium.com/@damko/a-simple-humble-but-compressive-guide-to-xkb-for-linux-6f1ad5e13450

https://help.ubuntu.com/community/Custom%20keyboard%20layout%20definitions