92 votes

Comment faire défiler ligne par ligne dans GNU Emacs?

Pour le dire simplement, j'essaie de faire défiler dans emacs comme dans vim et la plupart des autres éditeurs; quand je suis par exemple, deux lignes à partir du bas / haut, et je presse vers le bas / vers le haut (Ctrl - p, n, ↑, ↓) il va seulement une ligne vers le haut ou vers le bas, pas la moitié de l'écran.

55voto

ars Points 35803

Voir quelques-unes des suggestions sur EmacsWIki:

(setq scroll-step 1
      scroll-conservatory 10000)

51voto

starblue Points 29696

Si vous voulez positionner l'écran avec précision, vous pouvez utiliser Ctrl-L.

  • Par défaut, il positionne la ligne en cours au milieu de l'écran.

  • ESC 0 Ctrl-L positionne la ligne actuelle en haut.

43voto

Je suis un peu en retard à la fête, mais si vous n'avez pas l'esprit de l'installation du paquet puis lisse de défilement (github) peuvent être ce que vous êtes à la recherche pour - certainement, cela fonctionne pour moi.

Une fois que vous avez installé, vous pouvez apparaître les éléments suivants dans votre init.el:

(require 'smooth-scrolling)
(setq smooth-scroll-margin 5)

La deuxième ligne est facultative, mais elle commence à défiler près du bord de l'écran plutôt qu'à elle, de sorte que vous avez toujours un peu de contexte autour du point. Ajuster à votre goût.

28voto

Josh Cason Points 101

Ma solution n'est pas de changer Emac de défilement par défaut, mais plutôt de créer une séquence de touche de commande à partir d'une macro. De cette façon, vous avez un moyen pratique pour faire défiler ligne par ligne quand vous le voulez. Pas l'idéal, mais super facile. Il se trouve que M-(↓) et M-(↑) sont disponibles, de sorte que c'est ce que j'ai utilisé.

Voilà comment j'ai fait. Tout d'abord, vous devez enregistrer une macro pour une ligne de parchemins, en haut et en bas.

Commencer macro

C-x ( 

Faites défiler vers le bas d'un

C-u 1 C-v

Arrêter la macro

C-x )

Pour faire défiler jusqu'à l'un, l'utilisation

C-u 1 M-v

Ensuite, vous devez le nom de la macro.

M-x name-last-kbd-macro

Donnez-lui un nom lorsque vous y êtes invité, comme:

down-one-line

Alors utilisez simplement la suite de se lier à une séquence de touches pour que le nom de la commande:

M-x global-set-key

Et lors de la demande de confirmation, utilisez quelque chose comme:

M-(down arrow)

Ensuite il va vous demander de la commande que vous souhaitez lier, et vous devez lui donner le nom que vous avez inventé plus tôt, par exemple, vers le bas-une-ligne.

C'est là que j'ai eu cette information. Vous pouvez également trouver des instructions ci-dessous et ailleurs sur l'ajout de votre macro .emacs fichier.

Ici pour la définition de macro explication

Ici, sur le contrôle de défilement

26voto

Rajesh J Advani Points 2503

J'ai été en utilisant ces dans ma .emacs le fichier depuis l'an 2000.

(global-set-key (quote [M-down]) (quote View-scroll-line-forward))
(global-set-key (quote [M-up]) (quote View-scroll-line-backward)) 

De cette façon, je peux garder le Emacs comportement par défaut ainsi que le défilement ligne par ligne, en fonction de ce que je fais.

Cela a fonctionné au moins jusqu'à GNU Emacs 22. J'ai récemment mis à niveau vers Emacs 24 et découvert qu' View-scroll-line-forward et View-scroll-line-backward ne sont plus disponibles. Après un peu de chasse, j'ai découvert que de défilement ligne et faites défiler jusqu'en bas de la ligne de travail. Ainsi, si vous utilisez Emacs 24, vous pouvez utiliser cette.

(global-set-key (quote [M-down]) (quote scroll-up-line))
(global-set-key (quote [M-up]) (quote scroll-down-line)) 

J'ai presque sauté Emacs 23, donc, si c'est la version que vous utilisez, vous pouvez expérimenter avec les deux ci-dessus.

Remarque: scroll-up-line fait se déplacer d'une ligne vers le bas, parce que le tampon est en train de déplacer une ligne vers le haut.

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