Emacs Org-Mode: désactiver les numéros de ligne
J'ai récemment déménagé de vim
à Emacs
parce que je veux utiliser org-mode
. J'ai ouvert une ligne ~ 10000, fichier 50kb dans Emacs23
Org-mode
et a procédé à ajouter environ 10 titres de premier niveau. La Performance sur un quad-core avec 3GB RAM dans Emacs23 sous Ubuntu 10.04 / 32bit était si lente qu'elle était inutilisable. J'ai trouvé deux threads sur la liste d'e-mails Org-mode
discutant de cela. Il semble que l'activation de linum
provoque la lenteur des performances. Je peux vivre sans numéros de ligne dans les fichiers .org
Si je dois le faire, mais Je ne veux pas désactiver les numéros de ligne pour tous les fichiers que j'édite. Si je vais "vivre" dans 'Emacs' ,je vais vouloir des numéros de ligne pour tous les autres fichiers.
Comment puis-je désactiver linum
pour certains ou tous les .org
uniquement les fichiers? Est-il possible de le faire si plusieurs fichiers sont ouverts dans Emacs
et basculent entre eux? J'ai trouvé une discussion sur la désactivation des numéros de ligne pour les modes majeurs ici, mais il n'y avait rien que je pouvais implémenter (bien que le script linum-off.el
mentionné sur la page semble prometteur, Je ne sais pas (encore) (E)Lisp, donc je ne peux pas le changer comme j'aurais besoin).
J'ai mis à jour Org-mode
de la version 6.21 B qui est venue avec Emacs23
à la version 7.5, mais cela n'a fait aucune différence. Les performances dans Emacs
GUI sont si mauvaises que l'application ne répond pas du tout. Les performances avec -nw
sont "meilleures" , mais toujours inutilisables.
6 réponses
, Essayez d'ajouter ceci à votre .emacs:
(defun nolinum ()
(global-linum-mode 0)
)
(add-hook 'org-mode-hook 'nolinum)
Cela suppose que vous utilisez linum et pas autre chose pour numéroter les lignes. Quoi qu'il en soit, vous pouvez ajouter ce hook à org-mode pour désactiver tout ce qui pourrait rendre org lent seulement lorsque vous utilisez org-mode.
Avertissement: je n'ai pas linum installé donc je ne peux pas tester cela, mais cela devrait fonctionner.
Si vous tapez M - x customize, accédez à Linum dans le groupe Convenience, modifiez Linum Eager sur off ou modifiez Linum Delay sur on, cela améliorera considérablement les performances.
Sur mon ordinateur portable (3 GB RAM, Dual core), l'inconvénient de performance (par rapport à linum off) est imperceptible, mais sur mon netbook, il peut encore y avoir de légers problèmes de performance avec un fichier ~3000 line 130KB (~50-150 ms delay lors de la pagination).
linum-off.el
mentionné dans mon quesiton a résolu cela. Les Instructions sont dans le fichier: placez le fichier dans le chemin de chargement Emacs et ajoutez (require 'linum-off)
à ~/.emacs. Ce script désactive la numérotation des lignes pour les modes spécifiés uniquement. Je l'ai testé et cela fonctionne très bien.
J'ai essayé ce qui suit qui a plutôt bien fonctionné:
(defun nolinum ()
(interactive)
(message "Deactivated linum mode")
(global-linum-mode 0)
(linum-mode 0)
)
(global-set-key (kbd "<f6>") 'nolinum)
(add-hook 'org-mode-hook 'nolinum)
Bien sûr, vous n'avez pas besoin du raccourci clavier. Je vous suggère de le laisser à des fins de test et de le désactiver si tout fonctionne bien.
Vous avez seulement besoin d'ajouter (add-hook 'org-mode-hook (lambda () (linum-mode 0))).