macvim-dev / macvim-dev/macvim

Slow buffer updates with Undotree plugin

Aperta
#1,420 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Vim Script
Stelle
7.9k
Fork
691
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Undotree is a plugin that adds a visual representation of Vim's undo tree. When this tree view is open, certain operations (undo, redo, joining lines) are slow in the GUI, but not in the terminal.

To reproduce:

  1. Add the Undotree plugin to ~/.vim/pack/mbbill/opt/undotree so that it will be found by packadd:
mkdir -p ~/.vim/pack/mbbill/opt
git clone https://github.com/mbbill/undotree ~/.vim/pack/mbbill/opt
  1. Start MacVim with mvim -u vimrc where vimrc is
set nocompatible
set undofile
packadd undotree
  1. Open the undo tree visualiser added by Undotree: :UndotreeToggle
  2. Insert 100 lines: 100ii<CR><Esc>
  3. Go the first line: gg
  4. Join all the lines: Hold J

There should be noticeable lag. Now repeat steps 1-6 except with mvim -v -u vimrc in step 2. Joining the lines should be quite snappy.

I've attached two videos below showing the behaviour in each case, and I've included my system details.

GUI:

https://github.com/macvim-dev/macvim/assets/123784102/4e1828c4-4e40-4f29-9171-6c77a1b15f9e

Terminal.app:

https://github.com/macvim-dev/macvim/assets/123784102/26cc3bda-fd04-4165-9bd1-712da0132d45

System details:
OS: macOS Ventura 13.4 arm64
Shell: zsh 5.9
Terminal: Terminal.app
$TERM: xterm-256color
Vim: Downloaded from GitHub Releases

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il rallentamento usando MacVim con mvim -u vimrc, packadd undotree e :UndotreeToggle, quindi confrontalo con mvim -v -u vimrc come descritto. Traccia il percorso della GUI coinvolto durante l’annullamento, il ripristino o l’unione delle righe; l’issue è completata quando queste operazioni non sono più sensibilmente più lente con la vista Undotree aperta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
macos, vim
Ambito
desktop, performance
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.