Lors de l'édition avec vim, vous devez souvent supprimer les éléments entre guillemets. J'ai trouvé cela sur Internet. Il y en a des similaires
di(, ci', etc., comment comprenez-vous le i ici ?
Pour comprendre cette commande, vous devez comprendre quelques concepts de base de VIM :
1. opérateur : VIM fournit de nombreuses commandes (opérateurs) pour modifier ou éditer du texte. Ces opérateurs eux-mêmes ne sont qu'un comportement, comme d est supprimer, c est changement, mais ces opérateurs doivent connaître l'objet sur lequel ils travaillent. activé, nous avons donc besoin d'une méthode pour lui fournir un objet texte. Vous pouvez considérer ces opérateurs comme une fonction qui reçoit un objet texte à traiter. Pour la documentation d'aide, veuillez consulter help: Operator
2. objets-texte : D'après le nom, il s'agit d'un objet texte. C'est le paramètre à transmettre à l'opérateur. VIM fournit quelques méthodes pour sélectionner du texte en tant qu'objets texte, y compris les commandes spéciales a et i (a et i n'entrent-ils pas en mode insertion ? Cela sera expliqué plus tard), où i signifie "intérieur" , tel que 'hello, w^orld', (^ représente la position du curseur), alors i' sélectionnera hello, world et a' entre les guillemets simples, et a' sélectionnera l'intégralité du contenu, y compris les guillemets simples. Pour plus d'instructions, veuillez consulter la documentation help: text-objects.
3. Mouvement : indique un mouvement. C'est également la première chose avec laquelle vous entrez en contact lors de l'apprentissage de VIM, h, j, k, l, etc. En fait, chaque commande de déplacement couvrira une zone de texte, et cette zone de texte peut également être utilisée comme objet texte. Par exemple, si 5w déplace 5 mots, ces 5 mots peuvent en fait être transmis à l'opérateur comme objet texte. à ce moment. Par exemple : d5w supprimera 5 mots. Pour plus d'instructions, veuillez consulter la documentation help: motion.
4. Mode en attente de l'opérateur : nous savons tous que VIM possède de nombreux modes. Les premiers à comprendre sont le mode normal, le mode insertion et le mode commande. D'après le nom, ce mode signifie qu'il y a un opérateur en attente. La raison pour laquelle il y a cet état est parce que vous avez utilisé l'opérateur mentionné en 1. Cet opérateur nécessite un objet texte comme paramètre, et il vous attend. pour lui donner un tel objet peut être réalisé grâce aux instructions en 2 ou 3. C'est pourquoi a et i n'entreront pas en mode insertion pour le moment, car VIM n'est pas en mode normal à ce moment, mais dans un autre mode. Vous pouvez configurer set showcmd pour laisser VIM afficher la commande actuelle. S'il s'agit d'un mode en attente d'opérateur, vous verrez cette commande affichée dans la barre d'état de VIM. Après lui avoir transmis les paramètres requis par l'opérateur, VIM reviendra en mode normal après l'exécution de la commande.
Il est facile de comprendre di’ à ce stade :
- d : VIM accepte la commande de suppression et passe en mode attente d'opérateur
- i' : En utilisant la position actuelle du curseur comme coordonnée, sélectionnez le texte entre guillemets simples et transmettez-le à d comme objet à supprimer
je veux dire à l'intérieur, veuillez vous référer à
dans vim:help object-select
:help object-select
比如说有这么个字符串
"testdfat"
假设光标停留在第一个t位置
di"
:delete all content inside ",结果字符串为""
dta
:delete all content toa
,结果字符串为"at"
dfa
:delete all content from current location, untila
is found,结果字符串为"t"
Par exemple, il existe une telle chaîne"testdfat"
di"
: supprime tout le contenu à l'intérieur ", la chaîne de résultat est""
dta
: supprime tout le contenu versa
, la chaîne de résultat est"at"
🎜dfa
: supprime tout le contenu de l'emplacement actuel, jusqu'à ce quea
soit trouvé, la chaîne résultante est"t"
🎜 🎜d signifie supprimer, et i signifie presque dedans. Lorsqu'ils sont combinés, cela signifie supprimer les caractères entre les deux guillemets.
Celui correspondant est di' di( di< di{ .....
d peut également être remplacé par c.
Il existe également un daw das dap similaire : supprimer un mot/une phrase/un paragraphe.
Pour comprendre cette commande, vous devez comprendre quelques concepts de base de VIM :
1. opérateur : VIM fournit de nombreuses commandes (opérateurs) pour modifier ou éditer du texte. Ces opérateurs eux-mêmes ne sont qu'un comportement, comme d est supprimer, c est changement, mais ces opérateurs doivent connaître l'objet sur lequel ils travaillent. activé, nous avons donc besoin d'une méthode pour lui fournir un objet texte. Vous pouvez considérer ces opérateurs comme une fonction qui reçoit un objet texte à traiter. Pour la documentation d'aide, veuillez consulter help: Operator
2. objets-texte : D'après le nom, il s'agit d'un objet texte. C'est le paramètre à transmettre à l'opérateur. VIM fournit quelques méthodes pour sélectionner du texte en tant qu'objets texte, y compris les commandes spéciales a et i (a et i n'entrent-ils pas en mode insertion ? Cela sera expliqué plus tard), où i signifie "intérieur" , tel que 'hello, w^orld', (^ représente la position du curseur), alors i' sélectionnera hello, world et a' entre les guillemets simples, et a' sélectionnera l'intégralité du contenu, y compris les guillemets simples. Pour plus d'instructions, veuillez consulter la documentation help: text-objects.
3. Mouvement : indique un mouvement. C'est également la première chose avec laquelle vous entrez en contact lors de l'apprentissage de VIM, h, j, k, l, etc. En fait, chaque commande de déplacement couvrira une zone de texte, et cette zone de texte peut également être utilisée comme objet texte. Par exemple, si 5w déplace 5 mots, ces 5 mots peuvent en fait être transmis à l'opérateur comme objet texte. à ce moment. Par exemple : d5w supprimera 5 mots. Pour plus d'instructions, veuillez consulter la documentation help: motion.
4. Mode en attente de l'opérateur : nous savons tous que VIM possède de nombreux modes. Les premiers à comprendre sont le mode normal, le mode insertion et le mode commande. D'après le nom, ce mode signifie qu'il y a un opérateur en attente. La raison pour laquelle il y a cet état est parce que vous avez utilisé l'opérateur mentionné en 1. Cet opérateur nécessite un objet texte comme paramètre, et il vous attend. pour lui donner un tel objet peut être réalisé grâce aux instructions en 2 ou 3. C'est pourquoi a et i n'entreront pas en mode insertion pour le moment, car VIM n'est pas en mode normal à ce moment, mais dans un autre mode. Vous pouvez configurer set showcmd pour laisser VIM afficher la commande actuelle. S'il s'agit d'un mode en attente d'opérateur, vous verrez cette commande affichée dans la barre d'état de VIM. Après lui avoir transmis les paramètres requis par l'opérateur, VIM reviendra en mode normal après l'exécution de la commande.
Il est facile de comprendre di’ à ce stade :
- d : VIM accepte la commande de suppression et passe en mode attente d'opérateur
- i' : En utilisant la position actuelle du curseur comme coordonnée, sélectionnez le texte entre guillemets simples et transmettez-le à d comme objet à supprimer