Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VIm] commenter un bloc entier.

8 réponses
Avatar
Hugolino
Bonjour,

J'ai souvent tout un bloc de texte à commenter (par '#' puisqu'il s'agit
de fichier de configuration ou de script bash).

N'y aurait-il pas un hack/macro/whatever qui permettrait de faire ça en
deux coups de cuillère à pot avec vim (v 7.1.56 sur ubuntu)
Avec bien sur la manip inverse qui permet d'enlever les '#'.


Merci de votre aide

--
> Vous pouvez toujours nous publier votre photo, que je puisse dire si vous
> représentez l'esthétique que l'étranger imagine de l'homme français
Vous parlez là à SM/Doom/Chibre<tulavu@moncul>. Précisez bien que vous
voulez une photo du visage.

8 réponses

Avatar
Jogo
Sur fr.comp.os.unix, Hugolino disait :

J'ai souvent tout un bloc de texte à commenter (par '#' puisqu'il s'agit
de fichier de configuration ou de script bash).

N'y aurait-il pas un hack/macro/whatever qui permettrait de faire ça en
deux coups de cuillère à pot avec vim (v 7.1.56 sur ubuntu)


Pour commenter toutes les lignes de 12 à 20 :
:12,20s/^/# /

Avec bien sur la manip inverse qui permet d'enlever les '#'.


:12,20s/^# //

--
JFM> Au royaume des aveugles le borgne est roi
Au royaume des aveugles les borgnes sont mal vus.
-+- TP in Guide du Neuneu Usenet : Tu t'es vu quand tu fufes -+-


Avatar
Stephane Chazelas
2008-05-6, 23:59(+02), Hugolino:
J'ai souvent tout un bloc de texte à commenter (par '#' puisqu'il s'agit
de fichier de configuration ou de script bash).

N'y aurait-il pas un hack/macro/whatever qui permettrait de faire ça en
deux coups de cuillère à pot avec vim (v 7.1.56 sur ubuntu)
Avec bien sur la manip inverse qui permet d'enlever les '#'.
[...]


Typiquement, moi je fais 0<Ctrl-V>}I#<Esc>

Et pour supprimer 0<Ctrl-V>}0d

Tu peux aussi faire:

V}:s/^/#<Return>

V}:s/^#//<Return>


--
Stéphane

Avatar
mpg
Le (on) mercredi 07 mai 2008 09:09, Stephane Chazelas a écrit (wrote) :

Tu peux aussi faire:

V}:s/^/#<Return>

V}:s/^#//<Return>

Et si tu es intéressé par une tentative maladroite d'appliquer cette

stratégie pour obtenir un truc qui se comporte comme les commandes usuelles
(tu peux taper <F3><déplacement>, <F3><objet> (comme <F3>ap), ou juste <F3>
en mode visuel), je te propose l'extrait suivant de mon ftplugin/tex.vim, à
adapter :

function! TeXCommentOut(type)
silent exe "'[,']s:^:% :"
endfunction

function! TeXUnComment(type)
silent exe "'[,']s:^% ::e"
endfunction

nmap <buffer><silent> <F3> :set opfunc=TeXCommentOut<CR>g@
nmap <buffer><silent> <F4> :set opfunc=TeXUnComment<CR>g@
vmap <buffer> <F3> :s:^:% :<CR>
vmap <buffer> <F4> :s:^( *)% :1:e<CR>

Manuel.

Avatar
Hugolino
Le Wed, 7 May 2008 09:09:38 +0200 (CEST), Stephane Chazelas a écrit:
2008-05-6, 23:59(+02), Hugolino:
J'ai souvent tout un bloc de texte à commenter (par '#' puisqu'il s'agit
de fichier de configuration ou de script bash).

N'y aurait-il pas un hack/macro/whatever qui permettrait de faire ça en
deux coups de cuillère à pot avec vim (v 7.1.56 sur ubuntu)
Avec bien sur la manip inverse qui permet d'enlever les '#'.
[...]


Typiquement, moi je fais 0<Ctrl-V>}I#<Esc>

Et pour supprimer 0<Ctrl-V>}0d

Tu peux aussi faire:

V}:s/^/#<Return>

V}:s/^#//<Return>


OK, merci.
Mais je vais avoir du mal à l'utiliser, d'une part parce que je ne peux
retenir que les combinaisons de touches que je comprends et d'autre part
parce que j'avais oublié de dire que je voulais que ça marche sur une
sélection que j'aurais faite, grace à une touche (F4 par exemple) qui
serait mappé sur la bonne commande dans .vimrc.


--
le curseur et indéfiniment déporté vers la droite sans même
que je ne bouge la souris,
T'aurais pas un bureau en pente ? :-)))

Hugo (né il y a 1 389 720 348 secondes)


Avatar
mpg
Le (on) jeudi 08 mai 2008 19:09, Hugolino a écrit (wrote) :

parce que j'avais oublié de dire que je voulais que ça marche sur une
sélection que j'aurais faite, grace à une touche (F4 par exemple) qui
serait mappé sur la bonne commande dans .vimrc.

Euh, c'est un peu ce que fait le code que j'ai posté, il me semble, non ? Ou

j'ai manqué un truc ?

Manuel.

Avatar
Hugolino
Le Thu, 08 May 2008 19:41:05 +0200, mpg a écrit:
Le (on) jeudi 08 mai 2008 19:09, Hugolino a écrit (wrote) :

parce que j'avais oublié de dire que je voulais que ça marche sur une
sélection que j'aurais faite, grace à une touche (F4 par exemple) qui
serait mappé sur la bonne commande dans .vimrc.

Euh, c'est un peu ce que fait le code que j'ai posté, il me semble, non ? Ou

j'ai manqué un truc ?


Je suis contraint d'avouer que je n'avais pas testé ton code car je ne
le comprenais pas, notamment pourquoi chaque touche est mappée deux
fois, une fois avec nmap et l'autre fois avec vmap

Toutes mes excuses. Ça marche.


--
A l'âge de bière, les hommes vivaient dans les tavernes.
Hugo (né il y a 1 389 736 502 secondes)


Avatar
mpg
Le (on) jeudi 08 mai 2008 23:29, Hugolino a écrit (wrote) :

Le Thu, 08 May 2008 19:41:05 +0200, mpg a écrit:
Le (on) jeudi 08 mai 2008 19:09, Hugolino a écrit (wrote) :

parce que j'avais oublié de dire que je voulais que ça marche sur une
sélection que j'aurais faite, grace à une touche (F4 par exemple) qui
serait mappé sur la bonne commande dans .vimrc.

Euh, c'est un peu ce que fait le code que j'ai posté, il me semble, non

? Ou j'ai manqué un truc ?


Je suis contraint d'avouer que je n'avais pas testé ton code car je ne
le comprenais pas, notamment pourquoi chaque touche est mappée deux
fois, une fois avec nmap et l'autre fois avec vmap

C'est parce que j'essaie d'imiter le comportement des opérateurs comme y ou

autre : pouvoir être utilisé en mode normal (nmap) suivis d'un déplacement
ou d'un objet, ou en mode visuel sur une sélection (vmap). Si tu veux
seulement le truc en mode visuel, on peut simplifier le code...


Toutes mes excuses. Ça marche.

Euh, pas besoin de t'excuser, et content si ça t'aide.


Manuel.



Avatar
David LE BOURGEOIS
Bonjour,


Bonjour.

J'ai souvent tout un bloc de texte à commenter (par '#' puisqu'il s'agit
de fichier de configuration ou de script bash).

N'y aurait-il pas un hack/macro/whatever qui permettrait de faire ça en
deux coups de cuillère à pot avec vim (v 7.1.56 sur ubuntu)
Avec bien sur la manip inverse qui permet d'enlever les '#'.


Il existe le plugin NERD Commenter :

http://www.vim.org/scripts/script.php?script_id18

Merci de votre aide


De rien.

--
David LE BOURGEOIS
E-mail : david.lebourgeois (at) free.fr
Jabber : david.lebourgeois (at) jabber.fr
PGP : http://david.lebourgeois.free.fr/pgp/