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
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Francois Lafont
Le #26569456
On 3/6/21 2:38 PM, Francois Lafont wrote:
(Í  visualiser avec une police Í  chasse)

Petite coquille, désolé.
s/chasse/chasse fixe/g
--
François Lafont
william
Le #26569531
On 2021-03-06, Francois Lafont
On 3/6/21 2:38 PM, Francois Lafont wrote:
(Í  visualiser avec une police Í  chasse)

Petite coquille, désolé.
s/chasse/chasse fixe/g


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 ...
Francois Lafont
Le #26570085
Salut,
On 3/7/21 11:46 PM, william wrote:
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 ...

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
william
Le #26570071
On 2021-03-10, Francois Lafont
Salut,
On 3/7/21 11:46 PM, william wrote:
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 ...

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.


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
Francois Lafont
Le #26570066
Hello,
On 3/11/21 9:00 PM, william wrote:
Si c est tout a fait faisable.
selection du block, copy (y).
selection du block, replacement par " "

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
Benoit Izac
Le #26570065
Bonjour,
Le 12/03/2021 Í  20:22, Francois Lafont a écrit dans le message
Si c est tout a fait faisable.
selection du block, copy (y).
selection du block, replacement par " "

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).

:s/%V./ /g
--
Benoit Izac
william
Le #26570059
On 2021-03-12, Benoit Izac
Bonjour,
Le 12/03/2021 Í  20:22, Francois Lafont a écrit dans le message
Si c est tout a fait faisable.
selection du block, copy (y).
selection du block, replacement par " "

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).

:s/%V./ /g

heu simplement avec le bloc sélectionné, "r " (remplacement par un
espace)
Benoit Izac
Le #26570057
Bonjour,
Le 13/03/2021 Í  18:06, william a écrit dans le message
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).

:s/%V./ /g

heu simplement avec le bloc sélectionné, "r " (remplacement par un
espace)

Mince, ça s'est vu que je suis plutÍ´t un utilisateur d'Emacs. ;-)
--
Benoit Izac
Francois Lafont
Le #26570046
Salut,
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
Francois Lafont
Le #26571452
Bonjour,
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:
Est-il possible de faire un paste [dans vim] en mode remplacement, ie
sans que cela modifie la position des autres caractères ?

Si ce n'est pas clair, le détail se trouve dans mon message précédent.
--
François Lafont
Poster une réponse
Anonyme