我正在使用鱼壳。当我输入Ctrl-D时,它会向我的终端发送一个EOF,然后终端关闭。
我想让ctrl-D不关闭我的iterm2。
我看到人们在bash shell中设置了IGNOREEOF,如下所示:https://unix.stackexchange.com/questions/27588/how-can-i-keep-controld-from-disconnecting-my-session
但是,我并不认为这个变量存在于鱼类中。有没有人知道我怎么能强制iterm2(默认鱼壳)不能关闭ctrl-D?
答案 0 :(得分:9)
这是control-D的默认键绑定:
bind \cd delete-or-exit
只需运行bind
即可找到。
(delete-or-exit
只是一个函数,您可以使用functions delete-or-exit
阅读。)
所以它正在退出,因为这是默认行为。你可以让控制-D做其他事情。例如,也许它应该删除光标下的字符:
bind \cd delete-char
如果您想永久保留此功能,请将其添加到fish_user_key_bindings
功能:
funced fish_user_key_bindings
开始编辑bind \cd delete-char
放在函数funcsave fish_user_key_bindings
以保存答案 1 :(得分:2)
阅读此问题和答案后,我更新了删除或退出功能以要求确认,而不是完全停用它:
cd ~/.config/fish/functions/
cp /usr/share/fish/functions/delete-or-exit.fish .
然后编辑/替换:
function delete-or-exit
set -l cmd (commandline)
switch "$cmd"
case ''
read --nchars 1 --local -P 'Do you want to exit? [y/N] ' confirm
switch $confirm
case Y y
exit 0
case '' N n
echo -n (fish_prompt)
end
case '*'
commandline -f delete-char
end
end
它有一个小问题:完成时会显示两次提示,但如果不打印,似乎比没有提示要好(请参见上面的N例)。也许有人对此有解决方案。
答案 2 :(得分:0)
您也可以通过@AndroidFindBy(accessibility = "Error Message")
private MobileElement ERROR_MESSAGE;
取消绑定,而不必为Ctrl+d
分配其他操作。完成所有步骤:
bind --erase --preset \cd
,开始编辑funced fish_user_key_bindings
放在函数中bind --erase --preset \cd
保存