Sluggish vim in insert mode on WSL while having auto-pairs plugin loaded for Markdown files

Open
#4,985 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
vim

Research direction

Start with the minimal vimrc shown in the issue and run vim README.md under Ubuntu 24.04.2 on WSL2, using the supplied :ALEInfo output as context. Compare insert-mode responsiveness with auto-pairs and ALE loaded versus without them, then trace the relevant interaction. Done means Markdown editing is responsive in the reported WSL setup without breaking the plugin combination.

Written by the indexing model from the issue text.

Description

bug

Information

VIM version

VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Apr 01 2025 20:12:31)
Included patches: 1-16, 647, 678, 697

Operating System: Ubuntu 24.04.2 LTS on Windows 11 WSL2

What went wrong

Vim gets really sluggish in insert mode if jiangmiao/auto-pairs plugin is loaded. Only happens in WSL. Seems to only apply to Mardown (.md) files.

See jiangmiao/auto-pairs#378.

Reproducing the bug

  1. vimrc contents with junegunn/vim-plug loaded plugins
call plug#begin()
Plug 'dense-analysis/ale'
Plug 'jiangmiao/auto-pairs'
call plug#end()
  1. vim README.md
  2. Sluggish in insert mode
:ALEInfo
Expand Current Filetype: markdown Available Linters: ['alex', 'cspell', 'languagetool', 'markdownlint', 'marksman', 'mdl', 'proselint', 'pymarkdown', 'redpen', 'remark_lint', 'textlint', 'vale', 'writegood'] Linter Aliases: 'remark_lint' -> ['remark-lint'] 'writegood' -> ['write-good'] Enabled Linters: ['alex', 'cspell', 'languagetool', 'markdownlint', 'marksman', 'mdl', 'proselint', 'pymarkdown', 'redpen', 'remark_lint', 'textlint', 'vale', 'writegood'] Ignored Linters: [] Suggested Fixers: 'dprint' - Pluggable and configurable code formatting platform 'pandoc' - Fix markdown files with pandoc. 'prettier' - Apply prettier to a file. 'remark-lint' - Fix markdown files with remark-lint 'remove_trailing_lines' - Remove all blank lines at the end of a file. 'textlint' - Fix text files with textlint --fix 'trim_whitespace' - Remove all trailing whitespace characters at the end of every line.

Linter Variables:
let g:ale_markdown_markdownlint_executable = 'markdownlint'
let g:ale_markdown_markdownlint_options = ''
let g:ale_markdown_marksman_executable = 'marksman'
let g:ale_markdown_mdl_executable = 'mdl'
let g:ale_markdown_mdl_options = ''
let g:ale_markdown_pymarkdown_auto_pipenv = 0
let g:ale_markdown_pymarkdown_auto_poetry = 0
let g:ale_markdown_pymarkdown_auto_uv = 0
let g:ale_markdown_pymarkdown_executable = 'pymarkdown'
let g:ale_markdown_pymarkdown_options = ''
let g:ale_markdown_pymarkdown_use_global = 0
let g:ale_markdown_remark_lint_executable = 'remark'
let g:ale_markdown_remark_lint_options = ''
let g:ale_markdown_remark_lint_use_global = 0
let g:ale_markdown_vale_executable = 'vale'
let g:ale_markdown_vale_input_file = '%t'
let g:ale_markdown_vale_options = ''

Global Variables:
let g:ale_cache_executable_check_failures = v:null
let g:ale_change_sign_column_color = v:false
let g:ale_command_wrapper = v:null
let g:ale_completion_delay = v:null
let g:ale_completion_enabled = v:false
let g:ale_completion_max_suggestions = v:null
let g:ale_disable_lsp = 'auto'
let g:ale_echo_cursor = v:true
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%code: %%s'
let g:ale_echo_msg_info_str = 'Info'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_fix_on_save = v:false
let g:ale_fixers = {}
let g:ale_history_enabled = v:true
let g:ale_info_default_mode = 'preview'
let g:ale_history_log_output = v:true
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = v:true
let g:ale_lint_on_filetype_changed = v:true
let g:ale_lint_on_insert_leave = v:true
let g:ale_lint_on_save = v:true
let g:ale_lint_on_text_changed = 'normal'
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let g:ale_linters_explicit = v:false
let g:ale_linters_ignore = {}
let g:ale_list_vertical = v:false
let g:ale_list_window_size = 10
let g:ale_loclist_msg_format = '%code: %%s'
let g:ale_max_buffer_history_size = 20
let g:ale_max_signs = -1
let g:ale_maximum_file_size = v:null
let g:ale_open_list = v:false
let g:ale_pattern_options = v:null
let g:ale_pattern_options_enabled = v:null
let g:ale_root = {}
let g:ale_set_balloons = v:false
let g:ale_set_highlights = v:true
let g:ale_set_loclist = v:true
let g:ale_set_quickfix = v:false
let g:ale_set_signs = v:true
let g:ale_sign_column_always = v:false
let g:ale_sign_error = 'E'
let g:ale_sign_info = 'I'
let g:ale_sign_offset = 1000000
let g:ale_sign_style_error = 'E'
let g:ale_sign_style_warning = 'W'
let g:ale_sign_warning = 'W'
let g:ale_sign_highlight_linenrs = v:false
let g:ale_type_map = {}
let g:ale_use_neovim_diagnostics_api = v:false
let g:ale_use_global_executables = v:null
let g:ale_virtualtext_cursor = 'all'
let g:ale_warn_about_trailing_blank_lines = v:true
let g:ale_warn_about_trailing_whitespace = v:true

Command History:

(executable check - failure) alex
(executable check - failure) cspell
(executable check - failure) languagetool
(executable check - failure) markdownlint
(executable check - failure) marksman
(executable check - failure) mdl
(executable check - failure) proselint
(executable check - failure) pymarkdown
(executable check - failure) redpen
(executable check - failure) remark
(executable check - failure) textlint
(executable check - failure) vale
(executable check - failure) write-good

Dominant language
Vim Script
Stars
14k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dense-analysis/ale

All issues in dense-analysis/ale

Similar issues

More DevTools issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.