我是一名长期 Mac 用户,现在使用 Ubuntu 机器进行开发,虽然我或多或少习惯了许多键盘快捷键,但有一件事我无法习惯,那就是使用“Home”和“End”键在文本行中移动。在 Mac 上,您可以使用“Command + 向右箭头”转到行尾,使用“Command + 向左箭头”转到行首。
有没有办法在 Linux 中启用这种功能?
我不确定这是否会被视为重新映射、键盘快捷键或什么......
答案1
使用xmodmap
(一些提示)您可以重新绑定整个窗口系统的键。以下方法可以实现您想要的效果,但会产生副作用 :(
首先在终端窗口中尝试一下:
让左键
Alt
成为所谓的Mode_switch
:将该键指定为 Mode_switch 键符号:
xmodmap -e 'keycode 64 = Mode_switch Meta_L Alt_L Meta_L'
(通常:确保 Mode_switch 分配给 mod1-5 修饰键之一,但 Ubuntu 中已经是这种情况)
修改第三排
Left
和Right
键xmodmap -e 'keycode 113 = Left NoSymbol Home' xmodmap -e 'keycode 114 = Right NoSymbol End'
更改会一直保留,直到您注销。如果您希望永久保留,请将以下内容放入文件中~/.Xmodmap
:
keycode 64 = Mode_switch Meta_L Alt_L Meta_L
keycode 113 = Left NoSymbol Home
keycode 114 = Right NoSymbol End
但请注意,这将覆盖 Alt 键的正常功能(访问菜单、Alt-Tab 等):(
不过,我不是 xmodmap 等方面的专家。也许其他人知道如何解决这个问题。我真的很喜欢 Ubuntu 和 Linux,但整个键盘的东西太复杂了,而且很破旧 :-<
答案2
这专门针对 sublime text,但对于任何想重新映射 alt 和箭头键以使其像在 mac 上一样运行的人来说,可能会像我一样偶然发现这个答案。在 sublime 中,打开“首选项”>“键绑定 - 用户”,然后在方括号中添加以下内容。
{ "keys": ["alt+left"], "command": "move_to", "args": {"to": "bol", "extend": false} },
{ "keys": ["alt+right"], "command": "move_to", "args": {"to": "eol", "extend": false} }
现在,至少您有一个有用的文本编辑器,并且具有正确的 alt + 左箭头和右箭头功能!希望这能有所帮助。
答案3
对于使用 readline 的程序(例如 bash),您可以编辑~/.inputrc
以绑定beginning-of-line
和end-of-line
适当的序列。GUI 小部件工具包有自己的绑定,您必须为它们找到适当的部分,假设这是可能的(GTK+ 2.x)。