Zsh-autosuggestions: ZSH lags with autosuggestion

Created on 19 Apr 2017  Â·  4Comments  Â·  Source: zsh-users/zsh-autosuggestions

After 3 month of using your great plugin, zsh become very slow when typing command. Debug info:

+_zsh_autosuggest_bind_widget:38> zle -N vi-set-mark _zsh_autosuggest_bound_vi-set-mark
+_zsh_autosuggest_bind_widgets:14> widget=vi-substitute
+_zsh_autosuggest_bind_widgets:15> [ ']'
+_zsh_autosuggest_bind_widgets:17> [ ']'
+_zsh_autosuggest_bind_widgets:19> [ ']'
+_zsh_autosuggest_bind_widgets:21> [ ']'
+_zsh_autosuggest_bind_widgets:25> _zsh_autosuggest_bind_widget vi-substitute modify
+_zsh_autosuggest_bind_widget:1> local widget=vi-substitute
+_zsh_autosuggest_bind_widget:2> local autosuggest_action=modify
+_zsh_autosuggest_bind_widget:3> local prefix=autosuggest-orig-
+_zsh_autosuggest_bind_widget:6> case user:_zsh_highlight_widget_orig-s0.0000220000-r29613-vi-substitute (user:_zsh_autosuggest_(bound|orig)_*)
+_zsh_autosuggest_bind_widget:6> case user:_zsh_highlight_widget_orig-s0.0000220000-r29613-vi-substitute (user:*)
+_zsh_autosuggest_bind_widget:12> zle -N autosuggest-orig-vi-substitute _zsh_highlight_widget_orig-s0.0000220000-r29613-vi-substitute
+_zsh_autosuggest_bind_widget:33> eval '_zsh_autosuggest_bound_vi-substitute() {
        _zsh_autosuggest_widget_modify autosuggest-orig-vi-substitute $@
    }'
+_zsh_autosuggest_bind_widget:38> zle -N vi-substitute _zsh_autosuggest_bound_vi-substitute
+_zsh_autosuggest_bind_widgets:14> widget=vi-swap-case
+_zsh_autosuggest_bind_widgets:15> [ ']'
+_zsh_autosuggest_bind_widgets:17> [ ']'
+_zsh_autosuggest_bind_widgets:19> [ ']'
+_zsh_autosuggest_bind_widgets:21> [ ']'
+_zsh_autosuggest_bind_widgets:25> _zsh_autosuggest_bind_widget vi-swap-case modify
+_zsh_autosuggest_bind_widget:1> local widget=vi-swap-case
+_zsh_autosuggest_bind_widget:2> local autosuggest_action=modify
+_zsh_autosuggest_bind_widget:3> local prefix=autosuggest-orig-
+_zsh_autosuggest_bind_widget:6> case user:_zsh_highlight_widget_orig-s0.0000220000-r29613-vi-swap-case (user:_zsh_autosuggest_(bound|orig)_*)
+_zsh_autosuggest_bind_widget:6> case user:_zsh_highlight_widget_orig-s0.0000220000-r29613-vi-swap-case (user:*)
+_zsh_autosuggest_bind_widget:12> zle -N autosuggest-orig-vi-swap-case _zsh_highlight_widget_orig-s0.0000220000-r29613-vi-swap-case
+_zsh_autosuggest_bind_widget:33> eval '_zsh_autosuggest_bound_vi-swap-case() {
        _zsh_autosuggest_widget_modify autosuggest-orig-vi-swap-case $@
    }'
+_zsh_autosuggest_bind_widget:38> zle -N vi-swap-case _zsh_autosuggest_bound_vi-swap-case
+_zsh_autosuggest_bind_widgets:14> widget=vi-undo-change
+_zsh_autosuggest_bind_widgets:15> [ ']'
+_zsh_autosuggest_bind_widgets:17> [ ']'
+_zsh_autosuggest_bind_widgets:19> [ ']'
+_zsh_autosuggest_bind_widgets:21> [ ']'
+_zsh_autosuggest_bind_widgets:25> _zsh_autosuggest_bind_widget vi-undo-change modify
+_zsh_autosuggest_bind_widget:1> local widget=vi-undo-change
+_zsh_autosuggest_bind_widget:2> local autosuggest_action=modify
+_zsh_autosuggest_bind_widget:3> local prefix=autosuggest-orig-
+_zsh_autosuggest_bind_widget:6> case user:_zsh_highlight_widget_orig-s0.0000220000-r29613-vi-undo-change (user:_zsh_autosuggest_(bound|orig)_*)
+_zsh_autosuggest_bind_widget:6> case user:_zsh_highlight_widget_orig-s0.0000220000-r29613-vi-undo-change (user:*)
+_zsh_autosuggest_bind_widget:12> zle -N autosuggest-orig-vi-undo-change _zsh_highlight_widget_orig-s0.0000220000-r29613-vi-undo-change
+_zsh_autosuggest_bind_widget:33> eval '_zsh_autosuggest_bound_vi-undo-change() {
        _zsh_autosuggest_widget_modify autosuggest-orig-vi-undo-change $@
    }'

This repeats many times. After disabling autosuggestions the lags disappear.

performance pull-request-welcome

Most helpful comment

Bump here. Seems bind_widget(s) seems to be causing the majority of the lag according to zprof on carriage returns in a blank shell

All 4 comments

I have the same issue, using the plugin with "oh-My-zsh"

Enabling async mode may help you here. Could be that your history has gotten large? Might be similar to #164 (whose fix was eventually reverted because it caused other issues).

Going to close since enabling async mode should solve this performance issue.

Bump here. Seems bind_widget(s) seems to be causing the majority of the lag according to zprof on carriage returns in a blank shell

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hiteshsharma picture hiteshsharma  Â·  5Comments

sbdchd picture sbdchd  Â·  7Comments

daniele-orlando picture daniele-orlando  Â·  6Comments

moritzschaefer picture moritzschaefer  Â·  5Comments

glacambre picture glacambre  Â·  3Comments