Триггер автокоманды Vim при открытии "ничего" - PullRequest
4 голосов
/ 12 мая 2011

Я хочу, чтобы vim открывал: Explorer, когда файл не был открыт или создан.Например.когда я звоню vim без каких-либо вариантов.

вызов vim newfile.txt должен вести себя нормально.

Как бы я поступил так?Я не могу найти правильный autocmd для него.

Ответы [ 2 ]

5 голосов
/ 13 мая 2011

Если вы хотите сделать это только для vim-вызовов, лучше всего использовать argc():

autocmd VimEnter * :if argc() is 0 | Explore | endif

argc() функция возвращает количество имен файлов, указанных в командной строке, когда vim был вызван, если только что-то не изменило список аргументов, больше информации в :h argc().

2 голосов
/ 12 мая 2011

Сам нашел ответ:

"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

Большая часть этого кода была взята из этого вопроса .

...