IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applications et environnements graphiques Discussion :

Supprimer des lignes marquées avec Emacs


Sujet :

Applications et environnements graphiques

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 151
    Points : 133
    Points
    133
    Par défaut Supprimer des lignes marquées avec Emacs
    Bonjour à tous,
    j'aimerais pouvoir supprimer des lignes de mon code source, elle commence toutes par deux tirets, "--", connaissez-vous une solution avec l'éditeur Emacs?
    J'ai essayé de le faire avec les fonctions Répéter, Ctrl-u, chercher vers le bas, Ctrl-s, et ensuite Ctrl-k pour supprimer la ligne après le curseur. Sans succès!
    Je vous remercie d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 95
    Points
    95
    Par défaut avec command shell via emacs
    Bonjour,

    J'utilise sed via le mini-buffer. Je place le curseur au début de la région à traiter:

    Commande sed :
    L'argument -1 redirige la sortie vers le buffer courant (je n'ai jamais essayé avec un autre chiffre que 1)
    L'argument -| prend comme entrée de commande la région sélectionnée.

    Plus d'info sur cette page:
    http://www.linux-france.org/article/...tml/index.html

  3. #3
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    je ne sais pas si ça t'aideras, mais voici une solution sous vim/gvim :
    :g/^--/d

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Sous emacs, il faut utiliser "query-replace-regexp" (qui est accessible via C-M-%)

    Ensuite, tu tapes le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ^--.*
    [ret]
    [ret]
    ATTENTION : après avoir tapé ^--.*, il ne faut pas appuyer sur entrée. En effet, ce que tu souhaites faire ne consiste pas à supprimer le contenu de la ligne, mais la ligne entière. Il faut donc y ajouter le retour à la ligne, ce qui se fait via la séquence : C-q C-j

  5. #5
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Plus simple encore : la fonction delete-matching-lines sert à ça. Passe lui en argument ^--.

    Comme tu voulais faire ça à la main, au début (en répétant la recherche et le C-k), voici une solution en utilisant des macros. En espérant que cela te sera utile (pas cette fois, car il y a plus simple ; mais ça devrait t'apprendre quelques trucs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C-x (           ; debut d'une macro
    C-M-s ^-- ret   ; recherche par regexp
    C-a             ; debut de la ligne
    C-k C-k         ; suppression de la ligne
    C-x )           ; fin de la macro
     
    C-x h           ; selectionner tout le buffer
    M-x apply-macro-to-region-lines     ; lancer la macro sur tout le fichier

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 151
    Points : 133
    Points
    133
    Par défaut
    En premier, merci à Gorgonite d'avoir déplacé mon message dans une rubrique mieux adaptée.
    Et merci à vous tous de m'avoir répondu et d'en faire profiter tous le monde.
    A bientôt, Wil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer des lignes avec JTable
    Par momop72 dans le forum Composants
    Réponses: 2
    Dernier message: 04/12/2013, 14h45
  2. Supprimer des lignes avec R
    Par vincent1989 dans le forum R
    Réponses: 2
    Dernier message: 03/12/2012, 15h19
  3. comment supprimer des lignes avec macros
    Par kadij dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/06/2009, 06h14
  4. Supprimer des lignes d'un fichier lu avec StringBuffer
    Par blackhock dans le forum Général Java
    Réponses: 3
    Dernier message: 15/04/2009, 16h21
  5. supprimer des lignes avec VBA
    Par NulenVBA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/10/2008, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo