Vim'in başlangıç ​​veya giriş ekranını nasıl değiştirebilirim?


14

Vim'i herhangi bir dosya olmadan başlattığımda her zaman şunu görüyorum:

              VIM - Vi IMproved

               version 7.4.580
           by Bram Moolenaar et al.
 Vim is open source and freely distributable

        Become a registered Vim user!
type  :help register<Enter>   for information

type  :q<Enter>               to exit
type  :help<Enter>  or  <F1>  for on-line help
type  :help version7<Enter>   for version info

Bunu nasıl değiştirebilirim?

Özellikle, bir shell command ( fortune) çıktısını buraya koymak istiyorum.

Vim-startify'yi biliyorum ; ama tüm bu özelliklere ihtiyacım yok. Sadece basit bir metin göstermek istiyorum ...

Yanıtlar:


5

Aslında cevap yıldızdır. Gelen startify.vim hattı 15 civarında görebiliriz

 autocmd VimEnter * nested
\ if !argc() && (line2byte('$') == -1) && (v:progname =~? '^[-gmnq]\=vim\=x\=\%[\.exe]$')
\ | if get(g:, 'startify_session_autoload') && filereadable('Session.vim')
\ | source Session.vim
\ | else
\ | call startify#insane_in_the_membrane()
\ | endif
\ | endif
\ | autocmd! startify VimEnter

İlgili olan şey, VimEnter" tüm başlangıç ​​öğelerini yaptıktan sonra " olarak adlandırılan otomatik komuttur .
Aşağıdaki ifbölüm bunun boş bir oturum olup olmadığını kontrol eder (gibi bağımsız değişkenleri kontrol ederek filename). Temel olarak, kodunuzu ifstartify'ye özgü kod olan ikincinin yerine koyabilirsiniz.


3
... fonksiyon adını kimin düşündüğünü insane_in_the_membraneve bunun gerçek koduyla nasıl uzaktan ilgisi olduğunu bilmek istiyorum . Çünkü o kişi harika ve bugün gördüğüm en iyi işlev adı bu! : P
Kapı tokmağı

1
@Doorknob İşlev Marco Hinz tarafından "başlangıçtan" ​​"zardaki deli" olarak yeniden adlandırıldı . Cypress Hill'in orijinal sözleri göz önüne alındığında , yöntemin ne kadar büyük olduğu konusunda endişeliydi sanırım. Ya da belki o zaman dinliyordu.
jalanb

Cevabınız için teşekkürler! Ancak bu pasajın gerçekten bir "cevap" olduğunu düşünmüyorum. Bu insane_in_the_membraneişleve ne koyabilirim ? Bu pasajın ilk 3 satırına ihtiyacım var mı? Yoksa Startify'ye özgü mü (ne Session.vim?) Ve son satır bir hata veriyor.
Martin Tournoij

5

İşte aldığım kod vim-startify; anahtar parçalar VimEnterautocmd'de yeni bir tampon oluşturuyor , içine bazı metinler koyuyor ve ardından iyeni bir tampon başlatmak ve sonra ekleme moduna geçmek için.

Aşağıdakileri bazı ayarlar ve benzeri ekleyen küçük bir eklentiye koydum , ancak temel konsept tamamen aynı.

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()

servet nedir -a ??
tomekfranek

@regedarek Rastgele bir şaka görüntüler. Bkz: en.wikipedia.org/wiki/Fortune_(Unix)
Martin Tournoij
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.