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

Shell et commandes GNU Discussion :

[ Débutant avec vim ] Utiliser :autocmd dans l'éditeur VIM


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Bulgarie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Par défaut [ Débutant avec vim ] Utiliser :autocmd dans l'éditeur VIM
    Hello,

    Je découvre vim et j'utilise :autocmd pour lancer un script à chaque fois que j'enregistre le fichier dans VIM

    Voilà comment j'utilise autocmd :
    <code>
    :autocmd BufWritePost * ! /www/scripts/monscript.sh
    </code>

    Mais comment faire pour récuperer dans monscript.sh le nom (et le path) du fichier que je viens d'enregistrer ?

    J'ai besoin de ce nom de fichier car je veux ensuite executer la commande "cp" afin de faire automatiquement une copie de sécurité quand je fais :w


    Merci !

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par r2000 Voir le message
    je veux ensuite executer la commande "cp" afin de faire automatiquement une copie de sécurité quand je fais :w
    Ce serait peut-être plus simple de trouver l'option de vim qui permet d'avoir une copie de sécurité, non?

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,
    Sous vim, le fichier courant est dans '%', donc dans ton exemple, cela donnerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :autocmd BufWritePost * ! /www/scripts/monscript.sh %
    Tu peux aussi avoir un nom de fichier alternatif dans "#", mais la je te laisse lire l'aide de vim.

    Sinon, je suis d'accord avec jack-ft, vim c'est aussi faire du backup...

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    [HS]
    Citation Envoyé par disedorgue Voir le message
    Sinon, je suis d'accord avec jack-ft, vim c'est aussi faire du backup...
    Oui, vim c'est de la balle! Et emacs aussi, car vim et emacs ç'avent faire du backup!
    je c'est, tu c'est, il c'est, nous ç'avons, vous ç'avez, ils ç'avent...
    [/HS]

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    [mauvaise-foi]Je soupe sonne l'édit heure du faux rhum de geai nez raie lait faux te[/mauvaise-foi]

  6. #6
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Voilà comment j'utilise autocmd :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :autocmd BufWritePost * ! /www/scripts/monscript.sh

    Bonsoir,

    Pour ça, 3 commandes utiles :

    help
    expand
    execute

    Surtout l'aide en ligne comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :autocmd BufWritePost * execute '!/www/scripts/monscript.sh'  expand("%:p:e") expand("%")
    En clair :
    exécute ton script avec 2 arguments.
    1er arg. : le path complet sans le nom de fichier
    2ème arg. : que le nom de fichier

    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :autocmd BufWritePost * execute '!/www/scripts/monscript.sh'  expand("%:p")
    exécute ton script avec 1 argument.
    le path complet avec le nom de fichier

Discussions similaires

  1. [Débutant] Besoin d'être guidé dans l'utilisation d'XML
    Par jppaysan dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 28/04/2006, 11h19
  2. Réponses: 5
    Dernier message: 02/03/2006, 09h38
  3. [JUnit] [Débutant] Problème avec l'utilisation de JUnit
    Par Juanito-Toto dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 22/12/2005, 16h49
  4. Réponses: 2
    Dernier message: 18/06/2005, 18h14
  5. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58

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