Les expressions régulières (souvent abrégées en «regex») sont des expressions écrites dans un langage déclaratif utilisé pour faire correspondre des modèles dans des chaînes.
Voici ce que j'obtiens de la documentation: \zs"démarre la partie en surbrillance" après avoir trouvé l'expression rationnelle précédente, et \@<="démarre la partie en surbrillance" après avoir trouvé l' atome précédent . Mais je ne comprends pas exactement les subtilités de cela, alors quelqu'un peut-il expliquer en quoi elles diffèrent un …
Commande normale: le tri peut trier les lignes en fonction de la colonne ou de la colonne virtuelle ( \%cou \%v), la colonne logique de niveau supérieur pourrait-elle être utilisée comme clé de tri? L'utilisation d'une expression régulière semble un peu complexe pour ce scénario (la colonne se trouve à …
Je veux créer un script Vim de base qui supprime simplement n lignes, saute 1 ligne et se répète jusqu'à la fin du document. Je ne me soucie pas des correspondances spécifiques, je veux juste supprimer la ligne. Par exemple; Je veux donc répéter la commande 3ddjpour tout le document. …
Lors de l'édition du fichier de syntaxe, j'ai trouvé quelque chose comme: \s*\%(\%(:\@<!\/\/.*\)\=\|\%(\/\*.*\*\/\s*\)*\)$ Je ne connais personne d'autre que là \%- \@bas. Je ne peux même pas googler parce que je ne sais pas quel est son nom. Alors qu'est-ce que c'est et que fait-il?
Existe-t-il une alternative dans la recherche et le remplacement vim pour les chaînes, que d'avoir à échapper chaque caractère spécial dans la chaîne. Par exemple, si je veux faire correspondre la chaîne suivante et la remplacer par quelque chose [ERROR] Login unsucessful Ensuite, je dois faire :%s/\[ERROR\]\ Login\ unsucessful/something/g Et …
J'utilise l'expression régulière suivante pour faire correspondre une chaîne de documentation sous une définition de fonction Clojure: \vdefn.*\n\s*\zs"([^"]|\n)*" Existe-t-il un moyen d'exécuter la commande en mode normal gq(lignes de formatage) sur toutes les correspondances de ce modèle dans un fichier donné?
J'ai un fichier avec le modèle suivant: foo 111 baz foo 222 baz foo 333 baz qui doit être transformé en foo 111 bar 111 baz foo 222 bar 222 baz foo 333 bar 333 baz Donc, dupliquez toutes les lignes commençant par fooet modifiez uniquement foole doublon mais laissez …
Je rencontre souvent une situation où j'ai un dossier avec beaucoup de cas mixtes. Par exemple, CamelCase and camelCase Je cherche un substitut d'expression régulière Vim pour produire, AnotherCase and anotherCase En ce moment, je fais cela en deux étapes après avoir sélectionné visuellement les lignes, :s/CamelCase/AnotherCase/g :s/camelCase/anotherCase/g Est-ce possible …
J'ai le format de fichier suivant: <common> fitnes=0 genetic=1 method=0 </common> <inputs> foo=bar bar=foo </inputs> <limits> balance=200.00 </limits> et je voudrais supprimer tout ce qui est entre <inputs>et </inputs>(à l'exception du motif lui-même) et le remplacer par le contenu d'un autre fichier (par exemple foo.txt). En d'autres termes, les lignes …
J'ai des mots comme lblSERINOddans les phrases. Les mots sont séparés par un espace blanc. Je veux remplacer le dà la fin de tous ces mots par u. Ainsi, par exemple lblSERINOd, ressemblera lblSERINOu. J'ai essayé s/.*\ud /u /gmais Vim dit qu'il ne peut pas trouver .*\ud. Quel est le …
J'essaie de créer un script pour effectuer une recherche floue dans un tampon. L'idée principale est de prendre une entrée et d'insérer .\{-}entre chaque paire de caractères, par exemple foodevient f.\{-}o.\{-}o. Cela fonctionne assez bien, mais propose de nombreuses correspondances non idéales. Je pense qu'une recherche floue devrait donner les …
Je suis un peu confus sur les opérateurs de comparaison d'expressions rationnelles de VimScript. Si je regarde à travers :h =~?ma compréhension, cela =~peut être utilisé pour faire une correspondance d'expressions rationnelles (ce ?qui le rend insensible à la casse). Mais ce code affiche "non": let s:myVar = "S123" if …
J'ai un cas d'utilisation commun lorsque je transforme une expression python de la manière suivante: value 1 value 2 value 3 dans ['value 1', 'value 2', 'value 3'] La façon la plus simple peut être d'utiliser un mappage, mais je voulais utiliser une substitution pour cette tâche. Jusqu'à présent, j'ai …
Je veux remplacer un caractère par son littéral hexadécimal. Par exemple, avant l'expression régulière: h Après l'expression régulière: 0x68 J'essaye ceci: s/\([a-z]\)/\=printf("%#02x", submatch(0))/ Mais cela le remplace par 00 Qu'est-ce que je fais mal? Est-ce seulement possible?
Les utilisateurs de langue anglaise n'ont probablement pas ce problème, mais vim est assez stupide en ce qui concerne les expressions régulières. Dans mon cas, la plupart des lettres de l'alphabet turc en dehors de l'alphabet EN ne semblent pas être qualifiées de caractères de mot. Étant donné un document …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.