abbr -a gc git commit
gc
通过按展开后space
,我想通过按ctrl+space
鱼壳来撤消。
我怎么做?
答案1
要在 Fish 中绑定密钥,请使用
bind sequence thing-to-bind-to
或者
bind -k keyname thing-to-bind-to
要找出序列,请使用fish_key_reader
并按您想要的任何键 [0]。
所以,如果我们这样做,我们会得到:
按一个键:bind -k nul '做某事'
所以我们将键名“nul”绑定到“undo”[1]:
bind -k nul undo
注意:这是一个坏主意,因为默认情况下 ctrl-space 已经绑定插入空格而不扩展缩写。所以现在你必须扩展你的缩写,撤消它,再次按空格键再次扩展缩写,......
您需要绑定另一个键才能插入空格而不扩展。例如,让 ctrl-g 这样做:
bind \cg 'commandline -i " "'
相反,您可以简单地使用 ctrl-z 撤消默认情况下绑定的操作,然后按 ctrl-space 插入空格而不扩展缩写。
[0]:如果fish_key_reader不打印任何内容,则意味着您的终端不会为您的组合键发送任何内容。例如,如果终端将其用于自己的绑定,则可能会发生这种情况。
另外,默认情况下用于发送组合键的协议终端相当糟糕,无法表达很多组合 - 例如,无法区分 ctrl-i 和 tab,或者 ctrl-shift-X 和 ctrl-X。还有其他选择,但没有一个得到广泛认可。
[1]:如果使用vi-模式,bind
没有模式将设置为vi-正常模式。要在例如插入模式下设置某些内容,请添加-M insert
.或者-M visual
用于视觉模式。