Afficher le nom de la fonction dans la ligne d'état
- Je modifier un grand C, C++, ou Java fichier, disons, environ 15000 lignes, avec de jolies long des définitions de fonction, disons, environ 400 lignes. Lorsque le curseur est au milieu d'une définition de fonction, ce serait cool de voir le nom de la fonction dans Vim ligne d'état.
Lorsque nous avons mis en :set ls=2
dans Vim, nous pouvons obtenir le chemin d'accès au fichier (par rapport au répertoire courant), le numéro de ligne, etc. Ce serait vraiment cool si on pouvait voir le nom de la fonction aussi. Des idées comment l'obtenir?
Actuellement, je utiliser [[
pour aller au début de la fonction et Ctrl-O pour revenir à la ligne, je suis en train de modifier.
- Quel est le problème avec votre méthode actuelle?
- Il veut quelque chose de plus rapide et plus facile... d'avoir des info en toujours affiché.
- Quel est le point de l'avoir toujours affiché et mis à jour si il n'est pas toujours le regarder?
- Ouais je veux qu'il affiche toujours, de sorte que chaque fois que je veux regarder, je peux juste regarder
- Et c'est votre droit en tant que Vim utilisateur!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ctags.vim pour cela, il affichera le nom de la fonction dans le titre ou la barre d'état.
SOURCE: https://superuser.com/questions/279651/how-can-i-make-vim-show-the-current-class-and-method-im-editing
Pour afficher le nom de la fonction programmes C ajoutez ce qui suit dans votre vimrc:
Ou si vous avez besoin de la touche "f", juste la carte la fonction que vous désirez.
search()
de ne pas déplacer le curseur, donc une version plus courte de ce avec la même fonctionnalité serait: le fun! ShowFuncName() echohl ModeMsg echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bWn')) echohl Aucun endfun carte f :appel ShowFuncName() <CR> Référence: exécuter:help search()
Basé sur @manav m-n la réponse de
Le " n " drapeau dans
search()
de ne pas déplacer le curseur, donc une version plus courte de ce avec la même fonctionnalité serait:Référence: exécuter
:help search()
Ma solution est la suivante:
Je suis en fait en essayant de faire correspondre le C/C++/Java a permis de noms de fonctions. En général, cela fonctionne pour moi (y compris pour les opérateurs surchargés), mais suppose que l'ouverture { est au niveau de la colonne 0, ligne par lui-même.
Je viens de remarquer aujourd'hui qu'elle échoue si inclus dans un espace de noms {}, même si c'est le contraire formaté comme prévu.
Il existe plusieurs plugins pour la ligne d'état ou à la demande avec une cartographie, par exemple:
- Je utiliser https://github.com/mgedmin/chelper.vim pour cela. Il n'a pas besoin d'un fichier de tags, au lieu de cela, il analyse le code source à la volée.