81 votes

Mettre entre parenthèses avec Vim

Existe-t-il un moyen de mettre du texte entre parenthèses (ou accolades) dans vim ?

En d'autres termes, comment feriez-vous cela?

Chaîne initiale :

 It is sunny outside.

Chaîne finale :

 It is (sunny) outside.

Sur une note amusante, je viens d'appuyer sur :w pour soumettre cette question.

Joyeux vim-ing, SOCommunity !

89voto

Ian Hatch Points 901

Pour un mot, j'ai utilisé :

 bcw()<Esc>P

C'est-à-dire, allez au début du mot, coupez le mot et passez en mode insertion, tapez les crochets, puis quittez le mode insertion et recollez le mot.

Gardez à l'esprit que cela écrasera votre registre Yank.

Vous pouvez bien sûr remplacer bcw par les types de mouvement et de sélection dont vous avez besoin, comme

 5cc{<Enter>}<Esc>P

39voto

mwilson Points 916

Surround.vim devrait faire l'affaire. Si vous voulez répéter cela avec '.', voyez ici .

8voto

ldigas Points 19740

Vous pouvez définir un mappage simple pour cette sorte de chose. Cela devrait le faire. En mode normal, tapez z pour entourer un mot entre parenthèses.

 :nnoremap <leader>z viw<esc>a)<esc>hbi(<esc>lel

6voto

jwd Points 4560

Pourquoi ne pas utiliser :s// ( rechercher et remplacer ) ?

Par exemple:

 :s/sunny/(&)/

Vous avez probablement autre chose en tête, mais je ne peux pas dire à partir de votre question de quoi il s'agit.

( & est un raccourci pour le texte correspondant)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X