如何将 capslock 键绑定到 fish shell 命令,并禁用其切换大写功能?

如何将 capslock 键绑定到 fish shell 命令,并禁用其切换大写功能?

我最近已切换到 fish shell,它的自动完成功能非常好。

但是,我发现自己想要使用tabcomplete_autocomplete 功能,而不是当它没有歧义时。forward 和 end 键都可以做到这一点,但在正常打字姿势下,我的手指够不到它们。

我很想用这Capslock把钥匙来做这件事,因为我从来没有用过这把钥匙,但它的位置很好。

我试过了,setxkbmap -option caps:none但似乎完全禁用了该capslock键。我想我可以将其绑定到前进或结束键,但我也不确定如何做到这一点。

另外,我似乎无法在 fish shell 中找到以下键绑定capslock

cowpig@gerty:~$ bind -K
b2
backspace
btab
dc
down
end
enter
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19
f20
home
ic
left
npage
ppage
right
sdc
send
sf
shome
sic
sleft
snext
sprevious
sr
sright
up

答案1

首先,查看手册,因为我认为Ctrl+F也会自动完成。您可以看到它输入helpfish。

如果要继续映射,请运行xev并按下capslock以获取密钥代码。我的是 66:

enter code hereKeyRelease event, serial 37, synthetic NO, window 0x5200001,
root 0x4b7, subw 0x0, time 6149967, (918,609), root:(984,661),
state 0x10, keycode 66 (keysym 0xff57, End), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes: 
XFilterEvent returns: False

现在创建一个脚本(即~/xmodmap.sh),权限为755,内容如下:

#/bin/bash
xmodmap -e "keycode 66 = End"
xmodmap -e "clear Lock"

运行脚本,它会将其转换capslockEnd密钥。

为了使其永久生效,请将此命令添加到启动应用程序中:

/bin/bash -c "sleep 7 && /home/myusername/xmodmap.sh"

我已经尝试使用 fish shell,它确实自动完成了命令。

我用来Alt Gr将一些键映射到更近的位置:自定义键盘布局,包括导航键

相关内容