Maison  >  Questions et réponses  >  le corps du texte

vimscript - vim supprime ou remplace une section entière

Il y a un texte comme celui-ci

As of initscripts-2012.07.5, the default format of /etc/rc.conf and
/etc/crypttab have changed. See their respective man pages for 
more details.

--BEGIN--
The purpose of this change is to unify the configuration of systemd
and initscripts. This will allow us to share code and documentation, 
and should make maintenance of initscripts simpler in the long-run.
--END--

The old format is still supported, so old config files should still
work unchanged.

J'espère pouvoir supprimer toutes les lignes entre --BEGIN-- --END-- Existe-t-il une méthode directe dans vim ?

.

Une autre question supplémentaire est de savoir comment ajouter un élément de contenu alors qu'il y a déjà une marque
--BEGIN--.

Ceux ci-dessus espèrent tous traiter les fichiers texte de manière scriptée.


Juste un exemple, le nombre de lignes entre --BEGIN--, --END-- est incertain
Le marquer manuellement est un peu laborieux. Le fichier lui-même n'est pas petit et a une structure similaire
. Plus.

ringa_leeringa_lee2712 Il y a quelques jours762

répondre à tous(5)je répondrai

  • ringa_lee

    ringa_lee2017-05-16 16:43:00

    :g/--BEGIN--/,/--END--/d
    如果要同时删除前后的空行
    :g/--BEGIN--/-1,/--END--/+1d

    répondre
    0
  • 怪我咯

    怪我咯2017-05-16 16:43:00

    vim peut le faire,

    En mode commande :

    %s/--BEGIN--\_.*--END--//g
    

    Le _ est la clé, cela peut correspondre à plusieurs lignes.
    Il existe déjà un moyen de remplacer le logo --BEGIN--. Cela peut également être fait en utilisant l'idée de remplacement ci-dessus
    . :%s/^--BEGIN--/&Contenu à remplacer/g

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 16:43:00

    Déplacez le curseur au début
    Esc v pour passer en mode affichage
    j Faites défiler vers le bas pour sélectionner la partie opérationnelle
    d Supprimer x Couper Les deux sont OK

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 16:43:00

    Puisque vous voulez le scripter, utilisez simplement sed :

    sed -i '/--BEGIN--/,/--END--/d' files_to_modify
    

    répondre
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 16:43:00

    ndd, n est le nombre de lignes à supprimer.

    répondre
    0
  • Annulerrépondre