Ctrl-F 不再适用于接受建议。为什么?
Ctrl-F no longer works to accept suggestions. Why?
我最近通过将 fish_vi_mode
添加到我的配置来启用 Vi 模式。由于我这样做 Ctrl+F 不再适用于完成建议,我必须改用右箭头。
无论是否启用 fish_vi_mode
,forward-char
的键绑定都是相同的。根据fish_config
,他们是:
forward-char Right Arrow
forward-char Right Arrow
forward-char CTRL - f
为什么 Ctrl+F 在启用 fish_vi_mode
的情况下不起作用?
在 vi 模式下,运行 bind
并寻找 \cf
,它在这里:
bind -M insert \cf forward-word
事情就是这样:control-F 按一个字前进。您可以恢复非 vi 行为:
bind -M insert \cf forward-char
这是前进一个字符,或者如果光标在末尾则接受自动建议(这确实有点奇怪)。
或者如果你想让它只接受自动建议,你可以 运行 在 fish_vi_mode
:
之后
bind -M insert \cf accept-autosuggestion
现在它在任何时候都接受自动建议,而不仅仅是在最后。
顺便说一句,accept-autosuggestion
或 forward-char
等函数可以通过 bind --function-names
列出
编辑:由于#2254,这比它应该做的更难。最简单的是将对 fish_vi_mode
的调用放在 fish_user_key_bindings
函数中:
function fish_user_key_bindings
fish_vi_mode
bind -M insert \cf accept-autosuggestion
bind \cf accept-autosuggestion
end
你可以用funced fish_user_key_bindings
写那个函数,然后funcsave fish_user_key_bindings
保存。
根据 Fish 发行说明 (https://fishshell.com/docs/current/relnotes.html?highlight=vi_mode),要修改先前接受的答案,您需要将 fish_vi_mode
替换为 fish_vi_key_bindings
。
我最近通过将 fish_vi_mode
添加到我的配置来启用 Vi 模式。由于我这样做 Ctrl+F 不再适用于完成建议,我必须改用右箭头。
无论是否启用 fish_vi_mode
,forward-char
的键绑定都是相同的。根据fish_config
,他们是:
forward-char Right Arrow
forward-char Right Arrow
forward-char CTRL - f
为什么 Ctrl+F 在启用 fish_vi_mode
的情况下不起作用?
在 vi 模式下,运行 bind
并寻找 \cf
,它在这里:
bind -M insert \cf forward-word
事情就是这样:control-F 按一个字前进。您可以恢复非 vi 行为:
bind -M insert \cf forward-char
这是前进一个字符,或者如果光标在末尾则接受自动建议(这确实有点奇怪)。
或者如果你想让它只接受自动建议,你可以 运行 在 fish_vi_mode
:
bind -M insert \cf accept-autosuggestion
现在它在任何时候都接受自动建议,而不仅仅是在最后。
顺便说一句,accept-autosuggestion
或 forward-char
等函数可以通过 bind --function-names
编辑:由于#2254,这比它应该做的更难。最简单的是将对 fish_vi_mode
的调用放在 fish_user_key_bindings
函数中:
function fish_user_key_bindings
fish_vi_mode
bind -M insert \cf accept-autosuggestion
bind \cf accept-autosuggestion
end
你可以用funced fish_user_key_bindings
写那个函数,然后funcsave fish_user_key_bindings
保存。
根据 Fish 发行说明 (https://fishshell.com/docs/current/relnotes.html?highlight=vi_mode),要修改先前接受的答案,您需要将 fish_vi_mode
替换为 fish_vi_key_bindings
。