33 votes

Passage au début d'une ligne de code: Emacs

J'utilise emacs pour le développement et j'ai très souvent besoin de passer au début d'une ligne ( Ca ). Toutefois, si la ligne est en retrait, j'aimerais passer au point où le code commence.

Donc, tout en naviguant dans le code: ( ) for x in xy|z: . En tapant Ca nous obtenons ceci: |( ) for x in xyz: . Mais au lieu de cela, je voudrais ceci: ( ) |for x in xyz:

Ici | indique le curseur et () les espaces ou les tabulations.

Comment puis-je y arriver?

56voto

Svante Points 24355

Meta - m

23voto

Trey Jackson Points 49816

Une façon préférée pour moi de gérer cela est de faire basculer Ca entre le début de la ligne et le début du code. Vous pouvez le faire avec cette fonction:

 (defun beginning-of-line-or-indentation ()
  "move to beginning of line, or indentation"
  (interactive)
  (if (bolp)
      (back-to-indentation)
    (beginning-of-line)))
 

Et ajoutez la liaison appropriée à votre carte de mode préférée:

 (eval-after-load "cc-mode" 
     '(define-key c-mode-base-map (kbd "C-a") 'beginning-of-line-or-indentation))
 

13voto

amalloy Points 29125

Je fais le même tour de manœuvre que Trey, mais je passe par défaut à l'indentation au lieu du début de ligne. Cela prend un peu plus de code car il n'y a pas de fonction "au début de l'indentation" que je connaisse.

 (defun smart-line-beginning ()
  "Move point to the beginning of text on the current line; if that is already
the current position of point, then move it to the beginning of the line."
  (interactive)
  (let ((pt (point)))
    (beginning-of-line-text)
    (when (eq pt (point))
      (beginning-of-line))))
 

Cela vous permettra probablement de continuer à utiliser Ctrl - a et de le laisser faire ce que vous voulez le plus souvent, tout en restant capable d’obtenir facilement le comportement intégré.

1voto

aculich Points 4563

Par défaut, Meta-m exécute back-to-indentation qui, selon la documentation , "déplace le point vers le premier caractère non blanc de cette ligne".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X