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.

È stato utile?

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
scroll top