Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vim in fish shell on a remote ssh server became unreponsive #6266

Open
DYnamoX513 opened this issue Oct 11, 2024 · 1 comment
Open

vim in fish shell on a remote ssh server became unreponsive #6266

DYnamoX513 opened this issue Oct 11, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@DYnamoX513
Copy link

DYnamoX513 commented Oct 11, 2024

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 DYnamoX513 added the bug Something isn't working label Oct 11, 2024
@DYnamoX513
Copy link
Author

It seems this issue can only be reproduced after resizing the wezterm window to a different size.

.wezterm.lua:
config.initial_cols = 120
config.initial_rows = 30

Complete procedures to reproduce:

  1. Open wezterm (120,30)
  2. Ssh to server, enter fish shell
  3. Open vim welcome page (no problem) then quit vim
  4. Resize wezterm to fill the screen
  5. Open vim welcome page (unresponsive) then quit vim
  6. Restore the initial size (120,30)
  7. Repeat (3), no problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant