You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
Darwin MacBook-Pro.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jan 12 22:13:05 PST 2021; root:xnu-6153.141.16~1/RELEASE_X86_64 x86_64
iTerm2 build 3.4.4
set fish_key_bindings fish_user_key_bindings
# map jk to Esc
bind -M insert jk "if commandline -P; commandline -f cancel; else; set fish_bind_mode default; commandline -f backward-char force-repaint; end"
After running lazygit in Terminal.app, even without vi bindings, fish is not behaving normally. Pressing right arrow works the first few times, then starts spitting [C (the tail end of the escape sequence) out to the terminal.
No differences in the stty -a output before or after.
This is curious. Some one is configuring fish as the receiving process for signals when some fd becomes readable (via O_ASYNC). This sends SIGIO on every select() on stdin, thus fish thinks it is constantly being interrupted, which breaks multi-character key bindings including cw and arrow keys.
No file descriptor in the fish process has O_ASYNC set, so maybe there is some funny behavior where lazygit sets it and then fish inherits the behavior? Not sure, it's strange.
If fish launches a program and that program marks stdin as O_ASYNC, then
fish will start receiving SIGIO events on Mac. This occurs even though
the file descriptor itself does not have the O_ASYNC flag set.
SIGIO is reported as interrupting select which then breaks multiple-key
bindings, especially in vi-mode.
As the SIGIO based universal notifier is disabled, remove it and the
SIGIO handler itself. This allows fish to ignore properly ignore SIGIO.