OVH Cloud OVH Cloud

Retailler la fenetre, et scroll ligne par ligne

9 réponses
Avatar
Vincent Hiribarren
Bonjour à tous,

j'ai deux questions à vous soumettre.

Lorsque je retaille une fenêtre en largeur, les mots passent à la
ligne suivantes, mais en étant tronqués, de sorte qu'on a la moitié
d'un mot sur une ligne, et l'autre moitié sur l'autre. Y-a-t'il moyen
de dire à emacs que les mots doivent rester entier lors du retour à la
ligne visuel ?

De plus, lorsque je descend dans la fenetre avec la fleche du bas,
c'est tout un pan du contenu qui bouge. Parfois, ça m'arrangerais
qu'on ne passe que à la ligne suivante, comme dans la plupart des
éditeurs de texte. Des idées comment procéder, ou à quoi il faut
toucher dans la configuration ?

En vous remerciant d'avance.

9 réponses

Avatar
Prakash Countcham
Bonjour,

Vincent Hiribarren writes:
Lorsque je retaille une fenêtre en largeur, les mots passent à la
ligne suivantes, mais en étant tronqués, de sorte qu'on a la moitié
d'un mot sur une ligne, et l'autre moitié sur l'autre. Y-a-t'il moyen
de dire à emacs que les mots doivent rester entier lors du retour à l a
ligne visuel ?



Là, je ne sais pas. J'utilise auto-fill-mode pour avoir des lignes de tai lle
raisonnable (ce qui est le cas dans la plupart des conventions de codage).

De plus, lorsque je descend dans la fenetre avec la fleche du bas,
c'est tout un pan du contenu qui bouge. Parfois, ça m'arrangerais
qu'on ne passe que à la ligne suivante, comme dans la plupart des
éditeurs de texte. Des idées comment procéder, ou à quoi il faut
toucher dans la configuration ?



Je connais une variable qui fait cela :
M-x customize-variable [RET] scroll-conservatively [RET] -> mettre la valeur
à 1

Amicalement,

--
Prakash
Avatar
Matthieu Moy
Vincent Hiribarren writes:

Lorsque je retaille une fenêtre en largeur, les mots passent à la
ligne suivantes, mais en étant tronqués, de sorte qu'on a la moitié
d'un mot sur une ligne, et l'autre moitié sur l'autre. Y-a-t'il moyen
de dire à emacs que les mots doivent rester entier lors du retour à la
ligne visuel ?



En général, la tradition est de ne pas avoir de ligner de plus de 80
caractères (donc de mettre les retour à la ligne « à la main », ou à
coup d'auto-fill-mode ou de M-q) donc la question ne se pose pas.

Sinon, tu peux regarder longlines.el.

--
Matthieu
Avatar
Ph. Idlavi
Ça pourrait être intéressant de scroller le texte plutôt que le curseur
(qui resterait toujours au centre sauf en début et en fin de texte).
--
Philippe I.
Avatar
Sébastien Kirche
Le 19 octobre 2005 à 15:10, Ph. Idlavi s'est exprimé ainsi :

Ça pourrait être intéressant de scroller le texte plutôt que le
curseur (qui resterait toujours au centre sauf en début et en fin de
texte).



Je viens de vérifier que ça existe avec scroll-lock-mode (qui devrait
être associé à la touche scroll-lock sur pécé).

Cependant, quelques essais rapides montrent que c'est sans effet dans le
summary buffer de Gnus, ou que ça fonctionne bizarrement dans un buffer
dont les lignes sont wrappées... À voir.

--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 19 octobre 2005 à 09:10, hjuvi a dit :

Personnellement, j'ai constaté que ça ne fonctionnais pas toujours
avec la valeur 1, et j'en ai déduit (ou lu, je ne sais plus...) qu'il
fallait une valeur élevée pour ne pas avoir de problèmes... (j'ai
choisi 2000), mais je reconnais que ce n'est pas très clair comme
solution.



La docstring de cette variable indique que la valeur exprime un nombre
de lignes, ce n'est donc pas simplement activé/désactivé. Mais je n'ai
pas compris précisément la description.

--
Sébastien Kirche
Avatar
Ph. Idlavi
Sébastien Kirche écrivit le
10/19/05 à 16h03:27 :

Je viens de vérifier que ça existe avec scroll-lock-mode (qui devrait
être associé à la touche scroll-lock sur pécé).



C'est quoi scroll-lock-mode ?
Je n'ai trouvé que ça :
http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/scroll-lock.el?rev=1.1
avec, en prime :
http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/scroll-lock.el.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

C'est quoi la touche scroll-lock ?


Cependant, quelques essais rapides montrent que c'est sans effet dans le
summary buffer de Gnus, ou que ça fonctionne bizarrement dans un buffer
dont les lignes sont wrappées... À voir.



À mes débuts sous emacs (tout droit formaté par Windows) j'utilisais
beaucoup la souris avec "scroll-in-place" mais ça ne
fonctionne pas avec le clavier.
--
Philippe I.
Avatar
Sébastien Kirche
Le 20 octobre 2005 à 02:10, Ph. Idlavi s'est exprimé ainsi :

Sébastien Kirche écrivit le
10/19/05 à 16h03:27 :

> Je viens de vérifier que ça existe avec scroll-lock-mode (qui
> devrait être associé à la touche scroll-lock sur pécé).

C'est quoi scroll-lock-mode ? Je n'ai trouvé que ça :
http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/scroll-lock.el?rev=1.1
avec, en prime :
http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/scroll-lock.el.diff?tr1=1.1&tr2=1.2&r1=text&r2=text



Ah, ben c'est effectivement un module qui a été récemment ajouté à Emacs
dans le cvs. Je ne sais pas du tout si ça pourrait être réutilisé dans
ta version (il semble que tu sois en 21.4).

J'ai retrouvé une discussion assez récente sur un vieux package
scroll-in-place.el qui pourrait peut-être t'aider ?

http://groups.google.com/group/gnu.emacs.help/browse_frm/thread/4cc80c31c4a98fe6/9af9d71314c71335

C'est quoi la touche scroll-lock ?



Sur un pécé, elle est parfois nommée arrêt-defil, à côté de pause et
imprim écran.

> Cependant, quelques essais rapides montrent que c'est sans effet
> dans le summary buffer de Gnus, ou que ça fonctionne bizarrement
> dans un buffer dont les lignes sont wrappées... À voir.

À mes débuts sous emacs (tout droit formaté par Windows) j'utilisais
beaucoup la souris avec "scroll-in-place" mais ça ne
fonctionne pas avec le clavier.



scroll-in-place date de 1994, mais c'est peut-être une solution...

HTH.
--
Sébastien Kirche
Avatar
Ph. Idlavi
En utilisant les différentes informations du thread
http://lists.gnu.org/archive/html/help-gnu-emacs/2004-05/msg00177.html
voici ce que je propose :


;;; scroll-in-place is a package that keeps the cursor on the same line
;(and in the same column) when scrolling by a page using PgUp/PgDn.
(require 'scroll-in-place)
(setq
;; scroll-preserve-screen-position t
scroll-margin 4)

;;Pour avoir les touches de sélection windows
(require 'pc-select)
(pc-selection-mode)
;;(pc-bindings-mode)

(defun scroll-down-one-line (arg)
"Scroll down one line, or number of lines specified by prefix arg."
(interactive "P")
(let ((scroll-default-lines 1))
(scroll-down-in-place arg)))
(defun scroll-up-one-line (arg)
"Scroll down one line, or number of lines specified by prefix arg."
(interactive "P")
(let ((scroll-default-lines 1))
(scroll-up-in-place arg)))

(setq my-scroll-lock t)
(defun my-toggle-scroll-lock()
"Bascule le mouvement du curseur Fixe/Mouvant"
(interactive)
(if (not my-scroll-lock)
(progn
(global-set-key [(up)] 'previous-line-nomark)
(global-set-key [(down)] 'next-line-nomark)
(setq my-scroll-lock t)
(message "Scroll lock off")
)
(progn
(global-set-key [(up)] 'scroll-down-one-line)
(global-set-key [(down)] 'scroll-up-one-line)
(setq my-scroll-lock nil)
(message "Scroll lock on")
)))
(global-set-key [key-20] 'my-toggle-scroll-lock)


La touche scroll-lock permet de basculer entre le mode curseur fixe et
curseur mouvant.
Ça marche même avec Gnus mais j'avoue que ça me fout un peu le mal de
mer...
C'est bien la première fois en 15 ans d'informatique que j'utilise cette
touche!


--
Philippe I.
Avatar
Sébastien Kirche
Le 21 octobre 2005 à 15:10, drkm a dit :

Ph. Idlavi wrote:

> La touche scroll-lock permet de basculer entre le mode curseur fixe
> et curseur mouvant. Ça marche même avec Gnus mais j'avoue que ça me
> fout un peu le mal de mer... C'est bien la première fois en 15 ans
> d'informatique que j'utilise cette touche!



Pareil :)

Je n'ai moi-meme jamais compris son utilite. Mais s'il fallait
l'utiliser un jour, il fallait que ce soit dans Emacs ;-)



Je crois que c'est un héritage du passé qui n'est plus guère utilisé.

Ceci dit, j'ai pu constater qu'elle fonctionne avec les terminaux Linux
et BSD où elle permet de stopper le défilement (=locker le scroll :)
d'un fenêtre pendant une compilation par exemple.

--
Sébastien Kirche