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?
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", 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
(bien sûr le :
initial__) et elle sera définie à chaque démarrage de vim. Utilisez également %:t
pour faire référence au fichier en cours d'édition (l'écriture ! gcc %:t
est 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 .
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.
Ainsi, lorsque l'utilisateur saisit :Legend
en 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é.
Testez-le
Étape 1: Ouvrez un nouveau fichier dans vi. Être dans le "mode normal" par défaut en vi. Tapez :Legend
Étape 2: Le contenu de ~/legend_header.txt
devrait être ajouté à l'emplacement du curseur.
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.