117 votes

Comment remplacer le texte entre guillemets dans la vi

Dire que j'ai cette ligne de code:

$query = "SELECT * FROM table";

Est-il une commande dans vi/vim qui peut instantanément supprimer tout ce qui est entre guillemets et de positionner le curseur entre eux pour que je puisse commencer à taper?

199voto

eugene y Points 37378

Utiliser ci", ce qui signifie: le changement, qu'à l'intérieur des guillemets.

Vous pouvez également manipuler d'autres objets de texte de façon similaire, par exemple:

  • ciw - à l'intérieur d'un mot
  • ci( - changement à l'intérieur de parenthèses
  • dit - supprimer à l'intérieur d'une balise HTML, etc.

Plus sur les différentes vim objets de texte ici.

26voto

Brian Agnew Points 143181

Vous pouvez sélectionner entre guillemets, puis supprimer (d), variation (c) etc. à l'aide de

vi"

De même, vous pouvez remplacer les accolades, crochets, les éléments XML etc. donc:

vi(
vi{
vit

ou tout simplement modifier/supprimer, faire la correspondante di", ci" etc. En substituant a pour i sera englobant les éléments environnants (afin de marquer ou de modifier les supports et le contenu, par exemple)

5voto

Anton Beloglazov Points 866

J'ai fait un plugin vim-textobj-quotes: https://github.com/beloglazov/vim-textobj-quotes

Il fournit des objets de texte le plus proche de paires de guillemets de tout type et prend en charge les guillemets s'étendant sur plusieurs lignes. En utilisant seulement iq ou aq il vous permet de faire fonctionner sur le contenu de simple ('), double ("), ou à l'arrière (`) les guillemets qui entourent actuellement le curseur, sont à l'avant du curseur, ou derrière (dans l'ordre de préférence). En d'autres termes, il saute vers l'avant ou vers l'arrière lorsque cela est nécessaire pour atteindre les guillemets.

C'est plus facile à comprendre par des exemples concrets (le curseur est affiché avec |):

  1. Avant: foo '1, |2, 3' bar; après en appuyant sur diq: foo '|' bar
  2. Avant: foo| '1, 2, 3' bar; après en appuyant sur diq: foo '|' bar
  3. Avant: foo '1, 2, 3' |bar; après en appuyant sur diq: foo '|' bar
  4. Avant: foo '1, |2, 3' bar; après en appuyant sur daq: foo | bar
  5. Avant: foo| '1, 2, 3' bar; après en appuyant sur daq: foo | bar
  6. Avant: foo '1, 2, 3' |bar; après en appuyant sur daq: foo | bar

Les exemples ci-dessus sont donnés pour les apostrophes, le plugin fonctionne exactement de la même manière que pour les doubles (") et de retour (`) les citations.

Vous pouvez également utiliser d'autres opérateurs: ciq, diq, yiq, viq, etc.

Jetez un oeil à la page github lié ci-dessus pour plus de détails.

4voto

Sam Peacey Points 3180

Déjà à l'intérieur des citations que vous pouvez faire

di"

Lire aussi supprimer à l'intérieur "

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