Déplacer un bloc en mode replace dans vim
Le
Francois Lafont

Bonjour Í tous,
Régulièrement, j'ai le besoin de faire des petits schémas réseau assez basiques
en mode texte. Par exemple quelque chose comme ça :
-
(Í visualiser avec une police Í chasse)
++
| |
| |
| |
++-++
| |
| |
| |
++ |
| |
| |
| +--++
+-+-+ | |
| | | B |
| A | | |
| | ++
++
-
Le truc qu'il me manque dans vim, c'est un moyen pour déplacer un bloc
sans toucher au reste du texte, un peu comme quand on est en mode « replace ».
On m'a indiqué ce plugin vim https://github.com/zirrostig/vim-schlepp qui
permet de déplacer un bloc très facilement (on sélectionne le bloc et on le
déplace avec la combinaison de touche de son choix) mais le souci c'est que
ça modifie aussi le placement des caractères en dehors de ce bloc. Par exemple
si, avec le plugin, je cherche Í descendre le bloc « A » de quelques lignes,
j'obtiens ceci :
-
(Í visualiser avec une police Í chasse)
++
| |
| |
| |
++-++
| |
| |
| |
++ |
|
|
+--++
| |
| B |
| |
| ++
|
|
+-+-+
| |
| A |
| |
++
-
alors que je voudrais avoir ceci, avec un bloc « B » qui ne bouge pas :
-
(Í visualiser avec une police Í chasse)
++
| |
| |
| |
++-++
| |
| |
| |
++ |
|
|
+--++
| |
| B |
| |
| ++
|
|
+-+-+
| |
| A |
| |
++
-
Est-il possible de faire cela avec vim ?
J'ai tenté de faire une issue sur Gitbub au niveau du plugin (ici
https://github.com/zirrostig/vim-schlepp/issues/14) mais je pense que
le projet n'est plus vraiment maintenu et je ne suis pas assez calé en
vim (loin de lÍ ) pour hacker moi-même le code du plugin.
NB: je sais qu'il existe des sites en lignes pour faire ce genre de
schémas comme par exemple https://asciiflow.com/ mais je trouvais ça
sympa de le faire avec vim.
Merci d'avance pour votre aide.
--
François Lafont
Régulièrement, j'ai le besoin de faire des petits schémas réseau assez basiques
en mode texte. Par exemple quelque chose comme ça :
-
(Í visualiser avec une police Í chasse)
++
| |
| |
| |
++-++
| |
| |
| |
++ |
| |
| |
| +--++
+-+-+ | |
| | | B |
| A | | |
| | ++
++
-
Le truc qu'il me manque dans vim, c'est un moyen pour déplacer un bloc
sans toucher au reste du texte, un peu comme quand on est en mode « replace ».
On m'a indiqué ce plugin vim https://github.com/zirrostig/vim-schlepp qui
permet de déplacer un bloc très facilement (on sélectionne le bloc et on le
déplace avec la combinaison de touche de son choix) mais le souci c'est que
ça modifie aussi le placement des caractères en dehors de ce bloc. Par exemple
si, avec le plugin, je cherche Í descendre le bloc « A » de quelques lignes,
j'obtiens ceci :
-
(Í visualiser avec une police Í chasse)
++
| |
| |
| |
++-++
| |
| |
| |
++ |
|
|
+--++
| |
| B |
| |
| ++
|
|
+-+-+
| |
| A |
| |
++
-
alors que je voudrais avoir ceci, avec un bloc « B » qui ne bouge pas :
-
(Í visualiser avec une police Í chasse)
++
| |
| |
| |
++-++
| |
| |
| |
++ |
|
|
+--++
| |
| B |
| |
| ++
|
|
+-+-+
| |
| A |
| |
++
-
Est-il possible de faire cela avec vim ?
J'ai tenté de faire une issue sur Gitbub au niveau du plugin (ici
https://github.com/zirrostig/vim-schlepp/issues/14) mais je pense que
le projet n'est plus vraiment maintenu et je ne suis pas assez calé en
vim (loin de lÍ ) pour hacker moi-même le code du plugin.
NB: je sais qu'il existe des sites en lignes pour faire ce genre de
schémas comme par exemple https://asciiflow.com/ mais je trouvais ça
sympa de le faire avec vim.
Merci d'avance pour votre aide.
--
François Lafont
Petite coquille, désolé.
s/chasse/chasse fixe/g
--
François Lafont
Cela dit meme si cela ne marche pas comme tu veux tu peux toujours faire
de l'edition vertical simplement dans vim.
ctrl+v etc ...
On 3/7/21 11:46 PM, william wrote:
Oui, j'utilise l'édition via control+v mais peux-tu me confirmer que l'exemple
que j'ai donné dans mon message initial n'est pas réalisable avec ce mode ? Car
si c'est faisable, c'est que j'ai loupé un truc.
À+
--
François Lafont
Si c est tout a fait faisable.
selection du block, copy (y).
selection du block, replacement par " "
collage du block.
il y a plusieurs commande mais ca marche
On 3/11/21 9:00 PM, william wrote:
Est-ce que tu pourrais détailler cette dernière étape car je vois que je ne sais pas faire ça ? (je parle du remplacement du bloc par des espaces).
Merci de ton aide.
--
François Lafont
Le 12/03/2021 Í 20:22, Francois Lafont a écrit dans le message
:s/%V./ /g
--
Benoit Izac
heu simplement avec le bloc sélectionné, "r " (remplacement par un
espace)
Le 13/03/2021 Í 18:06, william a écrit dans le message
Mince, ça s'est vu que je suis plutÍ´t un utilisateur d'Emacs. ;-)
--
Benoit Izac
Merci William et Benoit pour vos réponses (dans mon cas, celle de William
a fonctionné mais pas celle de Benoit, je ne sais pas pourquoi, c'est vraiment
parfois « cryptique » pour moi la syntaxe de vim.
Du coup, je suis parti sur le "r " de William. Mais le souci, c'est que si
je reprends mon exemple dans mon post initial, je n'arrive toujours pas Í
obtenir le résultat souhaité. J'obtiens ceci :
------------------------------------------------------
(Í visualiser avec une police Í chasse fixe)
+------------+
| |
| |
| |
+---+----+---+
| |
| |
| |
+------------------------+ |
|
|
+-----+------+
| |
| B |
| |
| +------------+
|························
|···········
+-+----------+
| |
| A |
| |
+------------+
------------------------------------------------------
Les caractères « point » (·) sont en fait des caractères espace, c'est juste
pour mieux les visualiser. Ces caractères espace (des trailing spaces) m'embêtent
un peu mais, Í la limite, je peux faire disparaÍ®tre tous les trailing spaces
en une commande vim Í la fin. Donc ce n'est pas bien grave.
En revanche, on peut voir que le bloc B a été altéré lors de la troisième
étape du paste du bloc A (copie du bloc A => OK, remplacement du bloc A par
des espaces => OK avec "r " mais le paste n'est pas OK). Est-il possible de
faire un paste en mode remplacement, ie sans que cela modifie la position
des autres caractères ?
--
François Lafont
Je me permets une petite relance de ce fil non résolu o͹ ma question était :
On 3/16/21 1:30 AM, Francois Lafont wrote:
Si ce n'est pas clair, le détail se trouve dans mon message précédent.
--
François Lafont