Je suis sûr qu'il y avait un plugin pour ce genre de choses, mais maintenant que j'en ai besoin, je n'arrive pas à le trouver (naturellement), donc je vais juste demander gentil et simple.
Quelle est la façon la plus simple de choisir entre crochets ou guillemets, ou généralement une liste de caractères correspondants?
write ( *, '(a)' ) 'Computed solution coefficients:'
Par exemple, ici, je voudrais sélectionner (a)
, ou Computed solution coefficients:
.
Je ne suis pas intéressé par le multiligne, juste les cas qui se produisent sur une seule ligne.
yi"
sélectionner tous les guillemetsci(
ou leci)
fait pour ce que je cherchais. Merci. Je ne comprends toujours pas complètementi
dans ce cas, mais qui s'en soucie tant que cela fonctionne, non? :)Pour choisir entre les guillemets simples, je fais généralement un
vi'
("sélectionner les guillemets simples intérieurs").À l'intérieur d'un bloc de parenthèses, j'utilise
vib
("sélectionner le bloc interne")À l'intérieur d'un bloc d'accolades, vous pouvez utiliser
viB
("B majuscule")Pour effectuer les sélections "inclusives" (sélectionnez également les guillemets, les parenthèses ou les accolades), vous pouvez utiliser à la
a
place dei
.Vous pouvez en savoir plus sur les sélections d'objets texte dans le manuel ou
:help text-objects
dans vim.la source
Cette méthode de sélection est intégrée et bien couverte dans l'aide de Vim. Il couvre les balises XML et plus encore.
Tu vois
:help text-objects
.la source
Pour la sélection entre guillemets simples, utilisez
vi'
.Pour sélectionner entre parenthèses, utilisez
vi(
.la source
ci'
ouci(
pour changer au lieu de sélectionner visuellement. Mais il fait exactement ce que je voulais. Merci :)%vi(
ou%vib
Utilisez les flèches ou
hjkl
pour accéder à l'une des expressions entre crochets, puisv
sélectionnez le mode visuel (c'est-à-dire la sélection), puis%
passez à l'autre parenthèse.la source
Écrivez une fonction Vim dans .vimrc en utilisant la
searchpair
fonction intégrée:( http://vimdoc.sourceforge.net/htmldoc/eval.html )
la source
J'ajouterais un détail à la réponse la plus votée:
Si vous utilisez gvim et que vous souhaitez copier dans le presse-papiers, utilisez
"+<command>
Pour copier tout le contenu entre crochets (ou parens ou accolades)
Par exemple:
"+yi}
copiera dans le presse-papiers tout le contenu entre les accolades de votre curseur.la source
y
.J'ai créé un plugin
vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotesIl fournit des objets texte pour les paires de guillemets les plus proches de n'importe quel type. Utiliser uniquement
iq
ouaq
il vous permet d'opérer sur le contenu des guillemets simples ('), doubles (") ou arrière (`) qui entourent actuellement le curseur, sont 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 si nécessaire pour atteindre les devis.Il est plus facile à comprendre en regardant des exemples (le curseur est indiqué par
|
):foo '1, |2, 3' bar
:; après avoir appuyédiq
:foo '|' bar
foo| '1, 2, 3' bar
:; après avoir appuyédiq
:foo '|' bar
foo '1, 2, 3' |bar
:; après avoir appuyédiq
:foo '|' bar
foo '1, |2, 3' bar
:; après avoir appuyédaq
:foo | bar
foo| '1, 2, 3' bar
:; après avoir appuyédaq
:foo | bar
foo '1, 2, 3' |bar
:; après avoir appuyé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 antérieurs (`).
Vous pouvez également utiliser d'autres opérateurs:
ciq
,diq
,yiq
,viq
, etc.Veuillez consulter la page github liée ci-dessus pour plus de détails.
la source
Un simple keymap dans vim résoudrait ce problème. map viq F ”lvf” hh Cette commande ci-dessus mappe viq aux touches pour rechercher entre guillemets. Remplacez "par n'importe quel caractère et créez vos keymaps. Collez-le dans vimrc au démarrage et vous devriez pouvoir l'utiliser à chaque fois.
la source