Comment ajouter une commande dans l'éditeur vim?


87

Si supposons que mon nom de fichier de code source est "foo.c". Lors de l'édition et du débogage, j'exécute toujours cette commande: -

:! gcc -g foo.c -o foo; gdb foo

Puis-je ajouter une commande personnalisée à Vim telle que si je tape ": debug", la commande ci-dessus est exécutée? Comment puis-je y arriver?

Réponses:


103

Oui. Documentation Vim, Section 40.2, Mappages de ligne de commande :

L'éditeur Vim vous permet de définir vos propres commandes. Vous exécutez ces commandes comme toute autre commande en mode ligne de commande. Pour définir une commande, utilisez la commande ": command", comme suit:

: commande DeleteFirst 1delete

Maintenant, lorsque vous exécutez la commande ": DeleteFirst", Vim exécute ": 1delete", ce qui supprime la première ligne.

Remarque: Les commandes définies par l'utilisateur doivent commencer par une lettre majuscule. Vous ne pouvez pas utiliser ": X", ": Suivant" et ": Imprimer". Le trait de soulignement ne peut pas être utilisé! Vous pouvez utiliser des chiffres, mais cela est déconseillé.

Mettez cette ligne dans votre ~/.vimrc(moins le montant initial :bien sûr) et elle sera définie chaque fois que vous démarrez vim. Utilisez également %:tpour faire référence au fichier en cours d'édition (l'écriture ! gcc %:test remplacée par ! gcc foo.c).

Si vous souhaitez qu'il ne soit défini que pour un fichier ou pour certains fichiers, vous souhaitez une autocommande.


4
si vous remplacez une commande existante, vous devez utiliser command!.
Phyatt

14

Vim a déjà un support pour Makefiles (: make). Si vous en créez un pour votre source, vous pouvez spécifier ce que vous voulez faire. De plus, à travers les balises ctags, Vim pourra parcourir les erreurs trouvées lors de la compilation.


5

Ajoutez une commande de l'éditeur vi définie par l'utilisateur:

Ainsi, lorsque l'utilisateur tape :Legenden mode normal, un bloc de texte est ajouté sous le curseur.

Étape 1: Mettez cette ligne dans un fichier nommé ~ / legend_header.txt`

this text will be added

Étape 2: Mettez cette commande dans votre fichier ~ / .vimrc (si le fichier n'existe pas, créez-le):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

Étape 3: Redémarrez vi pour que les modifications prennent effet. Vous avez terminé.

Essaye-le

Étape 1: Ouvrez un nouveau fichier dans vi. Être dans le "mode normal" par défaut en vi. Type:Legend

Étape 2: Le contenu de ~/legend_header.txtdevrait être ajouté à l'emplacement du curseur.


0

J'utilise cette commande dans mon fichier .vimrc pour compiler et exécuter le code c:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, mais pour vos besoins vous pourriez mettre:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

Vous pouvez être sûr que le nom du fichier exec sera le nom de la source sans l'extension .c.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.