Selection à la souris dans Vim

Le
Rémi Moyen
Hello,

J'imagine que c'est ici que je trouverais le plus de gens au courant
de Vi

J'utilise beaucoup vi (vim, en fait) dans des xterm (konsole, pour
être exact). J'ai découvert récemment, à mon grand plaisir, que je
pouvais aussi utiliser la souris avec :set mouse=a, en particulier la
molette pour défiler ou le clic gauche pour positionner le curseur.
Pourquoi est-ce que cette fonction n'est pas plus connue ?

Bon, il reste quand même deux détails qui me gènent un peu et je n'ai
pas trouvé de piste satisfaisante sur le web :

- d'abord, quand je selectionne du texte à la souris, la zone n'est
visuellement sélectionnée (i.e. affichage inversé) que quand je
relâche le bouton, c'est à dire à la fin de la sélection. J'aimerai=
s
bien avoir un feedback visuel pendant que je sélectionne. J'ai vu
passer dans une doc que si vi n'arrive pas à communiquer avec le
display, ça peut donner ça, mais je ne sais pas comment diagnostiquer
si c'est le cas et comment réparer. Peut-être est-ce aussi un problèm=
e
du mapping de <LeftDrag>, mais je ne sais pas non plus quoi faire ou
vérifier.

- deuxièmement, la sélection à la souris déplace le curseur (logiqu=
e,
vu que c'est juste un raccourci pour le mode visual), mais j'aime pas
trop ça. Du coup, je peux faire shift + clic, ce qui fait que la
sélection est interprétée par le terminal et que le curseur ne bouge
pas, mais il faut que je pense à faire shift en plus. Est-ce qu'il y a
un moyen de faire en sorte que le curseur ne bouge pas, ou que toute
sélection soit faite non pas par vi mais pas le terminal, ou autre
chose qui ne m'oblige pas à utiliser shift (ou ctrl) ?

Merci d'avance !
--
Rémi Moyen
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
mpg
Le #18379451
Le (on) mardi 13 janvier 2009 17:22, Rémi Moyen a écrit (wrote) :

J'imagine que c'est ici que je trouverais le plus de gens au courant
de Vi...



Depuis 1 ou 2 jours (au moins sur les serveurs bien gérés), il y a aussi
fr.comp.applications.editeurs-de-texte, qui semble plus adapté et sur lequel
je nous téléporte.

Pourquoi est-ce que cette fonction n'est pas plus connue... ?



C'est une vraie question ? Personnellement, il ne se passe pas un mois sans
que je découvre un truc qui me change la vie sous vim... je ne sais pas si
c'est une réponse.

- d'abord, quand je selectionne du texte à la souris, la zone n'est
visuellement sélectionnée (i.e. affichage inversé) que quand je
relâche le bouton, c'est à dire à la fin de la sélection. J'aimerais
bien avoir un feedback visuel pendant que je sélectionne. J'ai vu
passer dans une doc que si vi n'arrive pas à communiquer avec le
display, ça peut donner ça, mais je ne sais pas comment diagnostiquer
si c'est le cas et comment réparer. Peut-être est-ce aussi un problème
du mapping de <LeftDrag>, mais je ne sais pas non plus quoi faire ou
vérifier.



Concernant la communication de vim avec X, il me semble que le premier pas
est de vérifier si le support d'X a bien été activé à la compilation. Ça se
fait soit en regardant la sortie de :version, soit en essayant de faire des
copier-coller entre vim et X avec les registres spéciaux + et * et en
voyant si ça marche ou pas.

Manuel.
mpg
Le #18379441
Le (on) mardi 13 janvier 2009 17:22, Rémi Moyen a écrit (wrote) :

J'imagine que c'est ici que je trouverais le plus de gens au courant
de Vi...



Depuis 1 ou 2 jours (au moins sur les serveurs bien gérés), il y a aussi
fr.comp.applications.editeurs-de-texte, qui semble plus adapté et sur lequel
je nous téléporte.

Pourquoi est-ce que cette fonction n'est pas plus connue... ?



C'est une vraie question ? Personnellement, il ne se passe pas un mois sans
que je découvre un truc qui me change la vie sous vim... je ne sais pas si
c'est une réponse.

- d'abord, quand je selectionne du texte à la souris, la zone n'est
visuellement sélectionnée (i.e. affichage inversé) que quand je
relâche le bouton, c'est à dire à la fin de la sélection. J'aimerais
bien avoir un feedback visuel pendant que je sélectionne. J'ai vu
passer dans une doc que si vi n'arrive pas à communiquer avec le
display, ça peut donner ça, mais je ne sais pas comment diagnostiquer
si c'est le cas et comment réparer. Peut-être est-ce aussi un problème
du mapping de <LeftDrag>, mais je ne sais pas non plus quoi faire ou
vérifier.



Concernant la communication de vim avec X, il me semble que le premier pas
est de vérifier si le support d'X a bien été activé à la compilation. Ça se
fait soit en regardant la sortie de :version, soit en essayant de faire des
copier-coller entre vim et X avec les registres spéciaux + et * et en
voyant si ça marche ou pas.

Manuel.
Rémi Moyen
Le #18382681
On Jan 13, 7:54 pm, mpg
> J'imagine que c'est ici que je trouverais le plus de gens au courant
> de Vi...

Depuis 1 ou 2 jours (au moins sur les serveurs bien gérés), il y a au ssi
fr.comp.applications.editeurs-de-texte, qui semble plus adapté et sur l equel
je nous téléporte.



Ah oui, c'est vrai (et dire que je lis fuf[ea] essentiellement pour
être au courant de ce genre de nouveautés, j'aurais pu y penser tout
seul). Je garde quand même le x-post sur fco.unix parce que je sens
que tout le monde ne l'a pas encore. Je sais, c'est mal. Tant pis.

> Pourquoi est-ce que cette fonction n'est pas plus connue... ?

C'est une vraie question ? Personnellement, il ne se passe pas un mois sa ns
que je découvre un truc qui me change la vie sous vim... je ne sais pas si
c'est une réponse.



Bah, c'est à moitié rhétorique, parce que moi aussi je découvre des
choses à chaque fois que je regarde la doc. N'empêche, vu que la
plupart des gens travaillent maintenant dans un environnement
graphique, il me semble que c'est un truc assez basique (et qui
pourrait être activé dans les config par défaut). D'un autre côté ,
j'imagine que les gens qui veulent vraiment profiter de cet
environnement utilisent gvim plutôt que vim dans un terminal et que
c'est pas super courant de pouvoir utiliser la souris d'une manière
spécifique à l'application dans un terminal, donc ça explique peut-
être aussi.

Concernant la communication de vim avec X, il me semble que le premier pa s
est de vérifier si le support d'X a bien été activé à la compil ation. Ça se
fait soit en regardant la sortie de :version,



Alors moi, il me dit (entre autres, je garde ce qui m'a l'air
intéressant) :

VIM - Vi IMproved 6.3 (2004 June 7, compiled Aug 10 2005 18:49:40)
Included patches: 1-21, 23-24, 26, 28-34, 36-37, 39-40, 42-43, 45-46,
81-82
[...]
Huge version without GUI. Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset
+cindent -clientserver -clipboard +cmdline_compl +cmdline_hist
+cmdline_info +comments +cryptv +cscope +dialog_con +diff
+digraphs -dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search
+farsi +file_in_path +find_in_path +folding -footer +fork() +gettext -
hangul_input +iconv +insert_expand +jumplist +keymap
+langmap +libcall +linebreak +lispindent +listcmds +localmap +menu
+mksession +modify_fname +mouse -mouseshape +mouse_dec +mouse_gpm -
mouse_jsbterm +mouse_netterm +mouse_xterm +multi_byte +multi_lang -
netbeans_intg -osfiletype +path_extra +perl +postscript +printer -
python +quickfix +rightleft -ruby +scrollbind +signs +smartindent -
sniff +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo
+termresponse +textobjects +title -toolbar +user_commands +vertsplit
+virtualedit +visual +visualextra +viminfo +vreplace +wildignore
+wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp -
xterm_clipboard -xterm_save

"-X11". Oups. Pas de support de X, donc ?

soit en essayant de faire des
copier-coller entre vim et X avec les registres spéciaux + et * et en
voyant si ça marche ou pas.



Hum. J'ai pas l'impression. Si je sélectionne du texte à la souris
(dans un autre terminal, par exemple) et que je fais "*p, ça colle le
dernier texte que j'ai copier/coupé dans mon vi et pas le texte
sélectionné. Idem avec + (j'ai pas creusé la doc pour comprendre la
différence entre les 2. Ça doit être là :
http://vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection mais
j'ai la flemme de tout lire...).

Bon, donc mon vi n'est pas compilé avec support de X. Mais la souris
marche quand même dans le terminal, c'est logique ?

Et à part trouver un vi compilé avec X (ou recompiler vi moi-même),
y'a rien à faire ?

Merci de tes réponses !
--
Rémi Moyen
Stephane CHAZELAS
Le #18387321
2009-01-13, 08:22(-08), Rémi Moyen:
Hello,

J'imagine que c'est ici que je trouverais le plus de gens au courant
de Vi...

J'utilise beaucoup vi (vim, en fait) dans des xterm (konsole, pour
être exact). J'ai découvert récemment, à mon grand plaisir, que je
pouvais aussi utiliser la souris avec :set mouse=a, en particulier la
molette pour défiler ou le clic gauche pour positionner le curseur.
Pourquoi est-ce que cette fonction n'est pas plus connue... ?

Bon, il reste quand même deux détails qui me gènent un peu et je n'ai
pas trouvé de piste satisfaisante sur le web :

- d'abord, quand je selectionne du texte à la souris, la zone n'est
visuellement sélectionnée (i.e. affichage inversé) que quand je
relâche le bouton, c'est à dire à la fin de la sélection. J'aimerais
bien avoir un feedback visuel pendant que je sélectionne. J'ai vu
passer dans une doc que si vi n'arrive pas à communiquer avec le
display, ça peut donner ça, mais je ne sais pas comment diagnostiquer
si c'est le cas et comment réparer. Peut-être est-ce aussi un problème
du mapping de <LeftDrag>, mais je ne sais pas non plus quoi faire ou
vérifier.



Dans konsole, vim ne traite pas avec des events X mais avec les
characteres envoyés par le terminal. Pour le support de la
souris, vim envoie une escape sequence qui active le "mouse
tracking". Il y a plusieurs sortes de mouse trackings. Le plus
elaboré permet au terminal d'envoyer une sequence quand on
dragge la souris, mais konsole ne le support pas. Utilise xterm
et fait en sorte que ttym (dans vim) est positionné a xterm2.

- deuxièmement, la sélection à la souris déplace le curseur (logique,
vu que c'est juste un raccourci pour le mode visual), mais j'aime pas
trop ça. Du coup, je peux faire shift + clic, ce qui fait que la
sélection est interprétée par le terminal et que le curseur ne bouge
pas, mais il faut que je pense à faire shift en plus. Est-ce qu'il y a
un moyen de faire en sorte que le curseur ne bouge pas, ou que toute
sélection soit faite non pas par vi mais pas le terminal, ou autre
chose qui ne m'oblige pas à utiliser shift (ou ctrl) ?



A priori, il n'est pas possible d'avoir a la fois le support du
click dans vim pour positioner le cursor et la selection operee
par le terminal. On peut faire des bidouilles avec xterm,
probablement pas avec konsole.

Merci d'avance !
--



Il manque une espace apres ton "--".

Rémi Moyen



--
Stéphane
Rémi Moyen
Le #18391211
On Jan 14, 6:59 pm, Stephane CHAZELAS wrote:

> - d'abord, quand je selectionne du texte à la souris, la zone n'est
> visuellement sélectionnée (i.e. affichage inversé) que quand je
> relâche le bouton, c'est à dire à la fin de la sélection. J'aim erais
> bien avoir un feedback visuel pendant que je sélectionne.

Dans konsole, vim ne traite pas avec des events X mais avec les
characteres envoyés par le terminal. Pour le support de la
souris, vim envoie une escape sequence qui active le "mouse
tracking". Il y a plusieurs sortes de mouse trackings. Le plus
elaboré permet au terminal d'envoyer une sequence quand on
dragge la souris, mais konsole ne le support pas. Utilise xterm
et fait en sorte que ttym (dans vim) est positionné a xterm2.



Ah... Oui, en effet, ça marche quand je lance un xterm (avec un vim
recompilé à la main pour inclure le support X). C'est donc un problèm e
spécifique à konsole, je n'avais pas pensé à ça...

A priori, il n'est pas possible d'avoir a la fois le support du
click dans vim pour positioner le cursor et la selection operee
par le terminal. On peut faire des bidouilles avec xterm,
probablement pas avec konsole.



Oui, avoir les deux à la fois me semble peu probable. Est-ce que tu
saurais comment désactiver complétement la gestion du clic par vim,
alors (pour ne garder que la molette de la souris) ?

> Merci d'avance !
> --

Il manque une espace apres ton "--".



Hélas, je sais. Je poste via google groups (because que j'ai pas accès
à un vrai serveur de news, firewall, proxy et tout ça) qui supprime
les espaces en fin de ligne...

Merci de tes infos !
--
Rémi Moyen
Stephane CHAZELAS
Le #18394321
2009-01-15, 01:26(-08), Rémi Moyen:
On Jan 14, 6:59 pm, Stephane CHAZELAS wrote:

> - d'abord, quand je selectionne du texte à la souris, la zone n'est
> visuellement sélectionnée (i.e. affichage inversé) que quand je
> relâche le bouton, c'est à dire à la fin de la sélection. J'aimerais
> bien avoir un feedback visuel pendant que je sélectionne.

Dans konsole, vim ne traite pas avec des events X mais avec les
characteres envoyés par le terminal. Pour le support de la
souris, vim envoie une escape sequence qui active le "mouse
tracking". Il y a plusieurs sortes de mouse trackings. Le plus
elaboré permet au terminal d'envoyer une sequence quand on
dragge la souris, mais konsole ne le support pas. Utilise xterm
et fait en sorte que ttym (dans vim) est positionné a xterm2.



Ah... Oui, en effet, ça marche quand je lance un xterm (avec un vim
recompilé à la main pour inclure le support X). C'est donc un problème
spécifique à konsole, je n'avais pas pensé à ça...



Tu n'as pas besoin du support X pour ca, ca n'a rien a voir avec
X-Window.

A priori, il n'est pas possible d'avoir a la fois le support du
click dans vim pour positioner le cursor et la selection operee
par le terminal. On peut faire des bidouilles avec xterm,
probablement pas avec konsole.



Oui, avoir les deux à la fois me semble peu probable. Est-ce que tu
saurais comment désactiver complétement la gestion du clic par vim,
alors (pour ne garder que la molette de la souris) ?



La molette, ca fait partie du mouse tracking. Quand tu active le
mouse tracking (printf '33[?1000h' par exemple), tous les
clicks sont envoyés sous forme de sequence de caracteres que les
applications (comme vim) peuvent lire, et il faut <Shift> pour
avoir la selection du terminal.

Avec xterm, tu peux binder les evenements de la molette pour
qu'ils envoient des characteres (comme ^N, ^P) par exemple. Avec
konsole je ne sais pas. Mais pourquoi utiliser konsole?

--
Stéphane
Rémi Moyen
Le #18394721
On Jan 15, 2:46 pm, Stephane CHAZELAS wrote:

>> > - d'abord, quand je selectionne du texte à la souris, la zone n'es t
>> > visuellement sélectionnée (i.e. affichage inversé) que quand j e
>> > relâche le bouton, c'est à dire à la fin de la sélection. J' aimerais
>> > bien avoir un feedback visuel pendant que je sélectionne.



> Ah... Oui, en effet, ça marche quand je lance un xterm (avec un vim
> recompilé à la main pour inclure le support X). C'est donc un probl ème
> spécifique à konsole, je n'avais pas pensé à ça...

Tu n'as pas besoin du support X pour ca, ca n'a rien a voir avec
X-Window.



Mmm... Oui, en effet, avec un vim 7 recompilé, ça marche correctement
(dans un xterm) que le support de X soit activé ou pas. Ça ne marche
pas avec mon vim 6 installé par défaut, j'ai cru que c'était lié au
support X. Bon, peu importe (de mon point de vue, j'en conclue que je
suis obligé d'installer/faire installer/faire mettre à jour vers/...
une version autre que celle par défaut, peu importe après les options
de compilation/installation).

> Oui, avoir les deux à la fois me semble peu probable. Est-ce que tu
> saurais comment désactiver complétement la gestion du clic par vim,
> alors (pour ne garder que la molette de la souris) ?

La molette, ca fait partie du mouse tracking. Quand tu active le
mouse tracking (printf '33[?1000h' par exemple), tous les
clicks sont envoyés sous forme de sequence de caracteres que les
applications (comme vim) peuvent lire, et il faut <Shift> pour
avoir la selection du terminal.



Jusque là, je te suis. Si je comprends bien, avec le mouse tracking,
c'est tout ou rien : soit tout est envoyé à l'application, soit le
xterm garde tout. Il n'y a pas moyen pour l'application de dire au
xterm que seuls quelques évenements l'intéresse. Zut.

Avec xterm, tu peux binder les evenements de la molette pour
qu'ils envoient des characteres (comme ^N, ^P) par exemple.



Donc sans activer le mouse tracking, je suppose. Pourquoi pas.
Concrètement, je fais comment ?

Avec
konsole je ne sais pas. Mais pourquoi utiliser konsole?



D'une part, parce que j'y suis habitué. D'autre part, il y a deux-
trois trucs dans l'usage que j'ai de konsole que je ne sais pas
reproduire avec xterm, en particulier avoir plein de sessions dans des
onglets différents mais dans la même fenêtre. Je pourrais utiliser
screen, mais la première condition serait que je puisse le configurer
pour naviguer entre les sessions avec shift+droite/gauche. Et après...
j'avais utilisé screen à une époque et je n'ai jamais réussi à
vraiment m'habituer à son interface et ses commandes. Si pour utiliser
la souris dans vi je dois changer toutes mes habitudes de travail, ça
n'en vaut pas la peine. Tant que les défauts de xterm ne sont pas plus
que ça (et c'est quand même un truc mineur, hein), je n'ai pas envie
de m'embêter à changer.
--
Rémi Moyen
xavier
Le #18396171
Rémi Moyen
Hélas, je sais. Je poste via google groups (because que j'ai pas accès
à un vrai serveur de news, firewall, proxy et tout ça) qui supprime
les espaces en fin de ligne...



Va voir chez lacave, il y a des serveurs de news sur le port 80 (http)

--
XAv
Disponible au 1/9/2009
Damien Wyart
Le #18395411
> > Mais pourquoi utiliser konsole?



* Rémi Moyen
D'une part, parce que j'y suis habitué. D'autre part, il y a deux-
trois trucs dans l'usage que j'ai de konsole que je ne sais pas
reproduire avec xterm, en particulier avoir plein de sessions dans des
onglets différents mais dans la même fenêtre. Je pourrais utiliser
screen, mais la première condition serait que je puisse le configurer
pour naviguer entre les sessions avec shift+droite/gauche.



On s'éloigne du sujet vim, mais si tu veux un émulateur de terminal
léger *et* complet (donc avec des onglets), je te conseille d'essayer
mrxvt, il est vraiment très agréable à utiliser.

--
DW
Rémi Moyen
Le #18395401
On Jan 15, 5:53 pm, Damien Wyart
On s'éloigne du sujet vim, mais si tu veux un émulateur de terminal
léger *et* complet (donc avec des onglets), je te conseille d'essayer
mrxvt, il est vraiment très agréable à utiliser.



La description a l'air pas trop mal, en effet. Mais il n'est pas
installé sur ma machine, ça commence à faire beaucoup de choses
"custom" pour pas grand chose...

Ceci dit, je garde l'info dans un coin, j'irais tester sur ma machine
maison (où je contrôle tout !).
--
Rémi Moyen
Publicité
Poster une réponse
Anonyme