Question Comment ajouter une commande dans l'éditeur vim?


Si vous supposez 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 de sorte que si je tape ": debug", la commande ci-dessus s'exécute? Comment puis-je y arriver?


69
2018-01-09 13:26


origine




Réponses:


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

L'éditeur Vim vous permet de définir   vos propres commandes. Vous les exécutez   commandes comme n'importe quel autre   Commande de mode ligne de commande. À   définir une commande, utilisez la commande ":"   commande, comme suit:

: commande DeleteFirst 1delete

Maintenant, quand vous exécutez la commande   ": DeleteFirst" Vim s'exécute   ": 1delete", qui supprime le premier   ligne.

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

Mettez cette ligne dans votre ~/.vimrc (moins l'inital : bien sûr) et il sera défini chaque fois que vous démarrez vim. Utiliser aussi %:t faire référence au fichier en cours d'édition (écriture ! gcc %:t est remplacé par ! gcc foo.c).

Si vous souhaitez seulement qu’il soit défini pour un fichier ou pour certains fichiers, vous voulez un autocommande.


83
2018-01-09 13:56



si vous remplacez une commande existante, vous devez utiliser command!. - phyatt


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


14
2018-01-09 13:48





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

Cela fera en sorte que lorsque l'utilisateur tape :Legend en mode normal, un bloc de texte est ajouté sous le curseur.

Etape 1: Placez cette ligne dans un fichier nommé ~ / legend_header.txt`

this text will be added

Étape 2: Placez 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 dans vi. Type :Legend

Étape 2: Le contenu de ~/legend_header.txt devrait être ajouté où le curseur est.


4
2018-05-01 14:31





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 extension .c.


0
2017-11-13 20:48