Vim autocommand de déclenchement sur l'ouverture de “rien”
Question
Je veux vim pour ouvrir l'Explorateur lorsqu'aucun fichier n'est ouvert ou créé.Par exemple.quand je l'appelle vim
sans les options.
l'appel vim newfile.txt
doit toujours se comporter de façon normale cependant.
Comment pourrais-je aller sur le faire?Je n'arrive pas à trouver le bon autocmd
pour cela.
La solution
Si vous voulez faire cela pour que vim invocation seulement, la meilleure façon est d'utiliser argc()
:
autocmd VimEnter * :if argc() is 0 | Explore | endif
argc()
la fonction renvoie un nombre de noms de fichiers spécifiés sur la ligne de commande lorsque vim a été invoquée, à moins que quelque chose de modifié les arguments de la liste, plus d'informations sur :h argc()
.
Autres conseils
Trouvé la réponse moi-même:
"open to Explorer when no file is opened
function! TabIsEmpty()
" Remember which window we're in at the moment
let initial_win_num = winnr()
let win_count = 0
" Add the length of the file name on to count:
" this will be 0 if there is no file name
windo let win_count += len(expand('%'))
" Go back to the initial window
exe initial_win_num . "wincmd w"
" Check count
if win_count == 0
" Tab page is empty
return 1
else
return 0
endif
endfunction
" Test it like this:
" echo TabIsEmpty()
function! OpenExplorer()
if (TabIsEmpty())
:Explore
end
endfunction
La plus grande partie de ce code a été prise à partir de cette question.