Vim Autocommand Trigger all'apertura di "Niente"
Domanda
Voglio che VIM apra: Explorer quando non viene aperto o creato alcun file. Per esempio. Quando chiamo vim
senza alcuna opzione.
chiamata vim newfile.txt
dovrebbe comunque comportarsi in modo normale.
Come farei a farlo? Non riesco a trovare il corretto autocmd
per questo.
Soluzione
Se vuoi farlo solo per l'invocazione VIM, il modo migliore è usare argc()
:
autocmd VimEnter * :if argc() is 0 | Explore | endif
argc()
La funzione restituisce un numero di file di file specificati sulla riga di comando quando VIM è stato invocato a meno che non sia modificato gli argomenti, ulteriori informazioni su :h argc()
.
Altri suggerimenti
Ho trovato la risposta da solo:
"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 maggior parte di questo codice è stata presa questa domanda.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow