Réponses:
Utilisez ci"
, ce qui signifie: changez ce qui se trouve à l'intérieur des guillemets doubles.
Vous pouvez également manipuler d'autres objets texte de la même manière, par exemple:
ci'
- changer à l'intérieur des guillemets simplesciw
- changer dans un mot ci(
- changer entre parenthèsesdit
- supprimer à l'intérieur d'une balise HTML, etc.En savoir plus sur les différents objets de texte vim ici .
F"ci"
.
Vous pouvez choisir entre les guillemets, puis supprimer ( d
), modifier ( c
) etc. en utilisant
vi"
De même, vous pouvez remplacer des accolades, des crochets, des éléments XML, etc. ainsi:
vi(
vi{
vit
ou pour simplement changer / supprimer, faire ce qui correspond di"
, ci"
etc. Remplacer a
par la i
volonté englobant les éléments environnants (donc vous marquez ou changez les crochets et le contenu, par exemple)
J'ai fait un plugin vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Il fournit des objets texte pour les paires de guillemets les plus proches de tout type et prend en charge les guillemets s'étendant sur plusieurs lignes. Utiliser uniquement iq
ou aq
cela vous permet d'opérer sur le contenu des guillemets simples ('), doubles (") ou arrière (`) qui entourent actuellement le curseur, se trouvent devant le curseur ou derrière (dans cet ordre de préférence) En d'autres termes, il saute en avant ou en arrière lorsque cela est nécessaire pour atteindre les guillemets.
C'est plus facile à comprendre en regardant des exemples (le curseur est affiché avec |
):
foo '1, |2, 3' bar
:; après avoir appuyé sur diq
:foo '|' bar
foo| '1, 2, 3' bar
:; après avoir appuyé sur diq
:foo '|' bar
foo '1, 2, 3' |bar
:; après avoir appuyé sur diq
:foo '|' bar
foo '1, |2, 3' bar
:; après avoir appuyé sur daq
:foo | bar
foo| '1, 2, 3' bar
:; après avoir appuyé sur daq
:foo | bar
foo '1, 2, 3' |bar
:; après avoir appuyé sur daq
:foo | bar
Les exemples ci-dessus sont donnés pour les guillemets simples, le plugin fonctionne exactement de la même manière pour les guillemets doubles (") et arrière (`).
Vous pouvez également utiliser d'autres opérateurs: ciq
, diq
, yiq
, viq
, etc.
Veuillez consulter la page github ci-dessus pour plus de détails.
De déjà à l'intérieur des citations, vous pouvez faire
di"
Lisez-le comme supprimer à l'intérieur "
En plus de la réponse de Brian, vous pouvez également p
(coller) et y
(copier) la nouvelle valeur, donc si vous souhaitez remplacer la valeur entre guillemets par une autre valeur, vous pouvez faire yi"
sur la sélection que vous souhaitez copier, vi"
pour sélectionner la zone que vous souhaitez remplacer, puis juste p
pour remplacer correctement la valeur.
La réponse choisie convient UNIQUEMENT à ViM mais PAS à vi. La question est également inexacte parce que l'auteur n'a pas mentionné la position initiale du curseur. Si nous supposons que le curseur est à l'intérieur des guillemets, alors pour vi, la réponse sera:
T"ct"
Où:
T "- reculer juste après le caractère"
c - commande de changement
t "- fournit la position de fin de la commande c, où elle doit arrêter d'effacer les caractères, en d'autres termes la plage à changer
vim
, mais PASvi
. (Pas sûr)