vim multi-ligne correspondant à supprimer au début de la ligne
ringa_lee
ringa_lee 2017-05-16 16:34:34
0
3
584

Description du problème
Un fichier plus volumineux doit être traité et le contenu avant que la chaîne correspondante dans chaque ligne ne soit supprimé. Le format du contenu du fichier est le suivant :


aaa dd kk segmentfault=1098-0987-3jlc ok=okj hello=0cvqa
12jk od=kk segmentfault=1jj8-lk87-oplc suiji=che shachu=keng
pppp=dd bbo;=9as segmentfault=0876-oj87-3pac zifu=ka neirong=xia

Il est prévu que le contenu avant que segmentfault apparaisse pour la première fois dans chaque ligne puisse être supprimé jusqu'au début de la ligne. Les résultats de traitement attendus sont les suivants

.

segmentfault=1098-0987-3jlc ok=okj hello=0cvqa
segmentfault=1jj8-lk87-oplc suiji=che shachu=keng
segmentfault=0876-oj87-3pac zifu=ka neirong=xia

La solution actuelle
utilise des macros pour exécuter

qa    ---开启宏录制
/resourceId ---随意操作
d0               ---随意操作,删除至行首
j                  ---随意操作,跳转到下一行
q     ---退出宏
1000000@a ---执行1000000次

Inconvénients : faible efficacité, extrêmement chronophage

Solution attendue
Attendez-vous à une édition directe des colonnes (ctrl + v) pour supprimer la position correspondante de chaque ligne au début de la ligne.
Comment y parvenir ?

ringa_lee
ringa_lee

ringa_lee

répondre à tous(3)
曾经蜡笔没有小新

Essayez le remplacement régulier et la modification des colonnes. Vos mots clés sont dans des positions différentes et ne peuvent pas être modifiés directement

.
:%s/^.*segmentfault/segmentfault/g
仅有的幸福

@ixx L'idée est bonne, les expressions régulières
mais il existe une solution plus simple

:%s/^.*\zesegmentfault//g

ze Le mode de correspondance des marques est terminé

淡淡烟草味

Je suppose que l'auteur de la question souhaite utiliser le mode colonne de vim (Ctrl-v), puis sélectionner plusieurs lignes pour faire correspondre la partie située avant le segment de mot.
Mais cela ne fonctionne pas, car cela ne peut pas être fait
1) En mode colonne, la correspondance est mieux effectuée au début ou à la fin de la ligne, formant des blocs de correspondance irréguliers ;
2) Le s du début de la ligne jusqu'au segment de la première ligne est de 3 W, tandis que le s des 2ème et 3ème lignes jusqu'au segment est de 2 W. Ce n'est pas facile à faire d'un coup. (Pour la même raison, remplacer W par w ne fonctionnera pas non plus)

En mode colonne, le principe le plus approprié pour le traitement est que le texte est relativement bien organisé ou peut être facilement positionné .

==========
Une autre réponse disait que l'utilisation d'expressions régulières pour faire correspondre et remplacer est très utile.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!