J'ai écrit une petite fonction Vim qui déplace le curseur sur le premier caractère de la ligne actuelle. Si le curseur était déjà sur le premier caractère, le curseur est déplacé à la place à la première colonne.
" Jump to first character or column
noremap H :call FirstCharOrFirstCol()<cr>
:function! FirstCharOrFirstCol()
: let current_col = virtcol('.')
: normal ^
: let first_char = virtcol('.')
: if current_col == first_char
: normal 0
: endif
:endfunction
Comment appeler cette fonction en silence? Je préfère «: appeler FirstCharOrFirstCol ()» n'était pas affiché dans la ligne d'état. Changer simplement pour noremap H :silent call…
ne semble pas être suffisant.
*.vim
), vous n'avez jamais besoin des premiers:
caractères.Réponses:
Vous pouvez appeler la fonction en silence en définissant une carte silencieuse:
Pour plus d'informations, voir
:h :map-<silent>
. Notez en particulier que cela garantira que la commande ne sera pas répercutée à l'écran lorsque le mappage sera exécuté. La:silent
commande est utilisée pour désactiver la sortie de la fonction elle-même (voir:h :silent
).la source
:silent
c'est ce que je recherchais. Il convient de noter que si vous avez des erreurs dans votre fonction, vous recevrez toujours les messages, sauf si vous les utilisez!
. Je ne savais pas que j'avais laissé le code dans un état invalide et j'ai donc pensé que je n'utilisais pas:silent
correctement car il ne faisait pas taire les échos et je pouvais voir une erreur dans la sortie !!