wezterm icon indicating copy to clipboard operation
wezterm copied to clipboard

vim in fish shell on a remote ssh server became unreponsive

Open DYnamoX513 opened this issue 4 months ago • 1 comments

What Operating System(s) are you seeing this problem on?

macOS

Which Wayland compositor or X11 Window manager(s) are you using?

No response

WezTerm version

20241007-103714-ed430415

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

Vim started within fish shell on a remote server is nearly unresponsive. Each action takes several seconds to perform.

Remote OS: CentOS7 (3.10.0-1127.8.2.el7.x86_64) Vim version: VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 15 2020 16:44:08) TERM=xterm fish version: fish, version 3.7.1

Why I thought this might be a problem of wezterm instead of fish or other things...

  • vi, neovim runs well
  • vim in bash runs well
  • fish -c vim runs well
  • Another server with TERM=xterm-256color has no such problem
  • can't reproduce this problem in Alacritty, iTerm2, Warp

To Reproduce

ssh myserver
[xxx@10-205-210-141 ~]$ sudo -i
[root@10-205-210-141 ~]# fish --no-config
root@10-205-210-141 ~# vim

--->
1. the welcome page shows up, vim is unreponsive to any key action
2. quickly type ':q\n' several times, after 5~10 seconds, vim quits with lots of remainder
<---

root@10-205-210-141 ~# P0+r6B3B\:q
^[P0+r4631^[\fish: Unknown command: P0+r6B3B:q
root@10-205-210-141 ~ [127]# :P0+r4631\q
fish: Unknown command: :P0+r4631q
root@10-205-210-141 ~ [127]# :P0+r4632\q
fish: Unknown command: :P0+r4632q
root@10-205-210-141 ~ [127]# P0+r2531\P0+r2638\P1+r6B62=7F\P1+r6B49=1B5B327E\P1+r6B44=1B5B337E\P1+r6B68=1B4F48\P0+r4037\

Configuration

no config, clean wezterm install

Expected Behavior

No response

Logs

Logs before ':q' shows up in vim:

23:10:49.652  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=72.746624ms
23:10:49.652  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=72.931175ms, fps=1.9139109
23:10:50.537  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["k5"])
23:10:50.537  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:50.538  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:50.538  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:50.539  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=916.831µs
23:10:50.539  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.043802ms, fps=1.9979593
23:10:51.538  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["k6"])
23:10:51.538  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:51.538  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:51.538  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:51.539  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=737.603µs
23:10:51.539  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=871.71µs, fps=0.99944955
23:10:52.565  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["k7"])
23:10:52.565  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:52.565  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:52.565  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:52.566  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=608.795µs
23:10:52.566  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=723.989µs, fps=0.9739958
23:10:53.569  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["k8"])
23:10:53.569  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:53.569  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:53.569  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:53.570  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=890.055µs
23:10:53.570  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.006217ms, fps=0.9959986
23:10:54.569  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["k9"])
23:10:54.569  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:54.569  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:54.570  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:54.570  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=597.382µs
23:10:54.570  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=714.848µs, fps=0.9993247
23:10:55.597  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["k;"])
23:10:55.597  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:55.597  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:55.597  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:55.598  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=878.668µs
23:10:55.598  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=990.384µs, fps=0.9730076
23:10:56.572  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["F1"])
23:10:56.572  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:56.572  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:56.572  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:56.573  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=931.21µs
23:10:56.573  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.072006ms, fps=0.9730076
23:10:57.573  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["F2"])
23:10:57.573  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:57.573  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:57.573  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:57.574  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=867.112µs
23:10:57.574  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.028009ms, fps=1.0121635
23:10:58.574  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["%1"])
23:10:58.574  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:58.574  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:58.574  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:58.575  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=827.215µs
23:10:58.575  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.036738ms, fps=0.99897975
23:10:59.575  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["&8"])
23:10:59.575  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:10:59.575  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:10:59.575  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:10:59.576  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=767.207µs
23:10:59.576  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=902.366µs, fps=0.99925274
23:11:00.577  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kb"])
23:11:00.577  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:00.577  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:00.577  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:00.578  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=898.085µs
23:11:00.578  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.09318ms, fps=0.99786144
23:11:01.578  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kI"])
23:11:01.578  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:01.578  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:01.578  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:01.579  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=892.263µs
23:11:01.580  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.012066ms, fps=0.9986952
23:11:02.579  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kD"])
23:11:02.579  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:02.579  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:02.579  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:02.580  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=913.438µs
23:11:02.580  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.053163ms, fps=0.9991222
23:11:03.586  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kh"])
23:11:03.587  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:03.587  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:03.587  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:03.588  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=873.203µs
23:11:03.588  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.052995ms, fps=0.9923624
23:11:04.597  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["@7"])
23:11:04.597  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:04.597  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:04.597  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:04.598  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=607.964µs
23:11:04.598  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=727.998µs, fps=0.98990697
23:11:05.605  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kP"])
23:11:05.605  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:05.605  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:05.606  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:05.607  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=946.73µs
23:11:05.607  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.081209ms, fps=0.9917269
23:11:06.604  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kN"])
23:11:06.604  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:06.604  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:06.605  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:06.606  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=904.682µs
23:11:06.606  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.059866ms, fps=0.9917269
23:11:07.607  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["K1"])
23:11:07.607  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:07.607  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:07.607  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:07.608  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=655.5µs
23:11:07.608  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=782.122µs, fps=0.9993112
23:11:08.631  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["K3"])
23:11:08.631  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:08.632  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:08.632  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:08.633  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=716.177µs
23:11:08.633  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=852.179µs, fps=0.9756672
23:11:09.633  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["K4"])
23:11:09.633  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:09.633  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:09.633  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:09.634  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=826.723µs
23:11:09.634  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.033138ms, fps=0.9985966
23:11:10.124  DEBUG  wezterm_gui::termwindow                > AdviseModifiersLedStatus(SHIFT, (empty))
23:11:10.125  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.125  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:10.126  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=849.372µs
23:11:10.126  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.044851ms, fps=0.9985966
23:11:10.127  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.127  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.286  DEBUG  window::os::macos::window              > key_common: chars=`:` unmod=`:` modifiers=`SHIFT` virtual_key=41 key_is_down:true
23:11:10.286  DEBUG  wezterm_gui::termwindow                > RawKeyEvent(RawKeyEvent { key: Char(':'), modifiers: SHIFT, leds: (empty), phys_code: Some(Semicolon), raw_code: 41, repeat_count: 1, key_is_down: true, handled: Handled(false) })
23:11:10.287  DEBUG  wezterm_gui::termwindow                > AdviseDeadKeyStatus(None)
23:11:10.287  DEBUG  wezterm_gui::termwindow                > KeyEvent(KeyEvent { key: Char(':'), modifiers: NONE, leds: (empty), repeat_count: 1, key_is_down: true, raw: None })
23:11:10.287  DEBUG  wezterm_gui::termwindow                > AdviseDeadKeyStatus(None)
23:11:10.287  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.288  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.288  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:10.289  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=853.905µs
23:11:10.289  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.038805ms, fps=0.9985966
23:11:10.290  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.290  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.290  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.290  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.306  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:10.307  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=899.624µs
23:11:10.307  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=1.025633ms, fps=0.9985966
23:11:10.478  DEBUG  window::os::macos::window              > key_common: chars=`:` unmod=`:` modifiers=`SHIFT` virtual_key=41 key_is_down:false
23:11:10.478  DEBUG  wezterm_gui::termwindow                > RawKeyEvent(RawKeyEvent { key: Char(':'), modifiers: SHIFT, leds: (empty), phys_code: Some(Semicolon), raw_code: 41, repeat_count: 1, key_is_down: false, handled: Handled(false) })
23:11:10.478  DEBUG  window::os::macos::window              > key_common KeyEvent { key: Char(':'), modifiers: SHIFT, leds: (empty), repeat_count: 1, key_is_down: false, raw: Some(RawKeyEvent { key: Char(':'), modifiers: SHIFT, leds: (empty), phys_code: Some(Semicolon), raw_code: 41, repeat_count: 1, key_is_down: false, handled: Handled(false) }) } (chars=":" unmod=":" modifiers=SHIFT)
23:11:10.478  DEBUG  wezterm_gui::termwindow                > KeyEvent(KeyEvent { key: Char(':'), modifiers: SHIFT, leds: (empty), repeat_count: 1, key_is_down: false, raw: Some(RawKeyEvent { key: Char(':'), modifiers: SHIFT, leds: (empty), phys_code: Some(Semicolon), raw_code: 41, repeat_count: 1, key_is_down: false, handled: Handled(false) }) })
23:11:10.478  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:10.479  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=750.469µs
23:11:10.479  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=961.33µs, fps=0.9985966
23:11:10.546  DEBUG  wezterm_gui::termwindow                > AdviseModifiersLedStatus(NONE, (empty))
23:11:10.546  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.547  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.547  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:10.548  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=873.081µs
23:11:10.548  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=995.088µs, fps=0.9985966
23:11:10.548  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.633  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["K5"])
23:11:10.634  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:10.634  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:10.634  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:10.635  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=775.374µs
23:11:10.635  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=963.047µs, fps=5.995953
23:11:11.125  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:11.125  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:11.125  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:11.635  DEBUG  wezterm_term::terminalstate::performer > perform XtGetTcap(["kB"])
23:11:11.635  DEBUG  wezterm_term::terminalstate::performer > perform Esc(Code(StringTerminator))
23:11:11.635  DEBUG  wezterm_gui::termwindow                > Notification(Any { .. })
23:11:11.635  DEBUG  wezterm_gui::termwindow                > NeedRepaint
23:11:11.636  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl before call_draw elapsed=709.579µs
23:11:11.636  DEBUG  wezterm_gui::termwindow::render::paint > paint_impl elapsed=857.331µs, fps=0.99874604

Anything else?

No response

DYnamoX513 avatar Oct 11 '24 16:10 DYnamoX513