如何将我的大写锁定键绑定到鱼壳命令,并禁用其切换大写功能?

mav*_*vix 9 command-line keyboard keyboard-layout shortcut-keys fish

我最近切换到鱼壳,它的自动完成非常好。

但是,我发现自己想要使用tabcomplete_autocomplete 功能,而不是在它明确的时候。前进键和结束键都可以做到这一点,但在正常的打字位置它们是我手指够不到的。

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

我试过了,setxkbmap -option caps:none但这似乎capslock完全禁用了密钥。我想我可以将它绑定到前进或结束键,但我也不知道该怎么做。

另外,我似乎无法在鱼壳中找到键绑定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
Run Code Online (Sandbox Code Playgroud)

Kat*_*atu 2

首先,检查手册,因为我认为Ctrl+F也会自动完成。你可以看到它输入help了fish。

如果您想继续进行映射,请运行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
Run Code Online (Sandbox Code Playgroud)

现在创建一个具有 755 权限和以下文本的脚本(即 ~/xmodmap.sh):

#/bin/bash
xmodmap -e "keycode 66 = End"
xmodmap -e "clear Lock"
Run Code Online (Sandbox Code Playgroud)

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

要使其永久化,请将此命令添加到启动应用程序中:

/bin/bash -c "sleep 7 && /home/myusername/xmodmap.sh"
Run Code Online (Sandbox Code Playgroud)

我已经用 Fish shell 尝试过了,它确实会自动完成命令。

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