如何将 ctrl-z 映射到 fish 中的 fg
How to map ctrl-z to fg in fish
我正在尝试实现以下文章中的功能:
How to boost your vim productivity
在鱼shell。文章作者使用如下代码将zsh中的Ctrl+Z映射到"fg" 命令。
fancy-ctrl-z () {
if [[ $#BUFFER -eq 0 ]]; then
BUFFER="fg"
zle accept-line
else
zle push-input
zle clear-screen
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
目的是在前台的 vim 实例和 shell 实例之间快速切换。
所以Ctrl+Z背景vim,然后切换到shell,然后Ctrl+Z 再次应前景 vim,因此可以快速切换。
我如何在鱼身上复制它?
fish 目前不让你抓到 SIGTSTP
,这是 Ctrl+Z 发送的。但是,您可以绑定另一个键。例如,您可以这样写:
bind \ck 'fg %'
这会使 control-K 切换回最后一个后台进程。
看起来 zsh fancy-ctrl-z
函数有一个单独的模式,如果在命令行上有输入,它会清除屏幕。我不确定那是什么,但如果你愿意,可以在鱼中复制,比如:
bind \ck 'if test -z (commandline) ; fg %; else ; clear; commandline ""; end'
我正在尝试实现以下文章中的功能:
How to boost your vim productivity
在鱼shell。文章作者使用如下代码将zsh中的Ctrl+Z映射到"fg" 命令。
fancy-ctrl-z () {
if [[ $#BUFFER -eq 0 ]]; then
BUFFER="fg"
zle accept-line
else
zle push-input
zle clear-screen
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
目的是在前台的 vim 实例和 shell 实例之间快速切换。
所以Ctrl+Z背景vim,然后切换到shell,然后Ctrl+Z 再次应前景 vim,因此可以快速切换。
我如何在鱼身上复制它?
fish 目前不让你抓到 SIGTSTP
,这是 Ctrl+Z 发送的。但是,您可以绑定另一个键。例如,您可以这样写:
bind \ck 'fg %'
这会使 control-K 切换回最后一个后台进程。
看起来 zsh fancy-ctrl-z
函数有一个单独的模式,如果在命令行上有输入,它会清除屏幕。我不确定那是什么,但如果你愿意,可以在鱼中复制,比如:
bind \ck 'if test -z (commandline) ; fg %; else ; clear; commandline ""; end'