Inilah kode yang saya ekstrak vim-startify
; bagian-bagian kunci membuat buffer baru pada VimEnter
autocmd, meletakkan beberapa teks di dalamnya, dan kemudian memetakan i
untuk memulai buffer baru dan kemudian pergi ke mode insert.
Saya meletakkan di bawah ini dalam sebuah plugin kecil yang menambahkan beberapa pengaturan dan semacamnya, tetapi konsep dasarnya persis sama.
fun! Start()
" Don't run if: we have commandline arguments, we don't have an empty
" buffer, if we've not invoked as vim or gvim, or if we'e start in insert mode
if argc() || line2byte('$') != -1 || v:progname !~? '^[-gmnq]\=vim\=x\=\%[\.exe]$' || &insertmode
return
endif
" Start a new buffer ...
enew
" ... and set some options for it
setlocal
\ bufhidden=wipe
\ buftype=nofile
\ nobuflisted
\ nocursorcolumn
\ nocursorline
\ nolist
\ nonumber
\ noswapfile
\ norelativenumber
" Now we can just write to the buffer, whatever you want.
call append('$', "")
for line in split(system('fortune -a'), '\n')
call append('$', ' ' . l:line)
endfor
" No modifications to this buffer
setlocal nomodifiable nomodified
" When we go to insert mode start a new buffer, and start insert
nnoremap <buffer><silent> e :enew<CR>
nnoremap <buffer><silent> i :enew <bar> startinsert<CR>
nnoremap <buffer><silent> o :enew <bar> startinsert<CR>
endfun
" Run after "doing all the startup stuff"
autocmd VimEnter * call Start()
insane_in_the_membrane
, dan bagaimana hal itu ada hubungannya dengan kode sebenarnya. Karena orang itu brilian dan ini adalah nama fungsi terbaik yang pernah saya lihat hari ini! : P