Peut-on avoir un comportement intelligent pour la touche d'accueil dans Emacs ? Par intelligent, j'entends qu'au lieu d'aller au caractère numéro 0, elle devrait aller au premier caractère non-blanc, et aller à 0 à la deuxième pression, et revenir au premier caractère non-blanc à la troisième pression et ainsi de suite. Une fin intelligente serait également appréciable.
Réponses
Trop de publicités?
Bach Lien
Points
670
Ma version : aller au début de la ligne visuelle, au premier espace non blanc, ou au début de la ligne.
(defun smart-beginning-of-line ()
"Move point to beginning-of-line or first non-whitespace character"
(interactive "^")
(let ((p (point)))
(beginning-of-visual-line)
(if (= p (point)) (back-to-indentation))
(if (= p (point)) (beginning-of-line))))
(global-set-key [home] 'smart-beginning-of-line)
(global-set-key "\C-a" 'smart-beginning-of-line)
Le site [home]
et "\C-a"
(control+a) :
- Déplacez le curseur (point) au début de la ligne visuelle.
- S'il est déjà au début de la ligne visuelle, il est déplacé vers le premier caractère sans espace de la ligne.
- S'il est déjà là, déplacez-le au début de la ligne.
- Pendant le déplacement, gardez la région (
interactive "^"
).
Ceci est pris de @cjm et @thomas ; puis j'ajoute le truc de la ligne visuelle. (Désolé pour mon anglais approximatif).
gavenkoa
Points
6974
J'adapte le code de @Vucovic pour sauter à beggining-of-line
d'abord :
(defun my-smart-beginning-of-line ()
"Move point to beginning-of-line. If repeat command it cycle
position between `back-to-indentation' and `beginning-of-line'."
(interactive "^")
(if (and (eq last-command 'my-smart-beginning-of-line)
(= (line-beginning-position) (point)))
(back-to-indentation)
(beginning-of-line)))
(global-set-key [home] 'my-smart-beginning-of-line)
- Réponses précédentes
- Plus de réponses