मैं विम की शुरुआत या परिचय स्क्रीन कैसे बदल सकता हूं?


14

जब मैं विम को बिना किसी फाइल के शुरू करता हूं, तो मैं हमेशा यह देखता हूं:

              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

मेरे द्वारा इसे कैसे बदला जा सकता है?

विशेष रूप से, मैं fortuneयहां एक शेल कमांड ( ) का आउटपुट डालना चाहूंगा ।

मैं विम-स्टार्ट के बारे में जानता हूं ; लेकिन मुझे उन सभी सुविधाओं की आवश्यकता नहीं है। मैं सिर्फ कुछ सरल पाठ दिखाना चाहता हूं ...

जवाबों:


5

वास्तव में उत्तर प्रारंभ में है। में startify.vim लाइन 15 के आसपास हम देख सकते हैं

 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

तो प्रासंगिक बात VimEnterऑटो कमांड है जिसे " सभी स्टार्टअप सामान करने के बाद " कहा जाता है ।
निम्नलिखित ifजाँचता है कि क्या यह एक खाली सत्र है (जैसे तर्कों की जाँच करके filename)। मूल रूप से आप अपना कोड दूसरे के स्थान पर रख सकते हैं if, जो प्रारंभ-विशिष्ट कोड है।


3
... मैं जानना चाहता हूं कि फ़ंक्शन नाम के बारे में किसने सोचा था insane_in_the_membrane, और इसके वास्तविक कोड के साथ कुछ भी दूर से कैसे करना है। क्योंकि वह व्यक्ति प्रतिभाशाली है और यह सबसे अच्छा कार्य नाम है जिसे मैंने आज देखा है! : पी
Doorknob

1
Marco Hinz द्वारा @Doorknob फ़ंक्शन को "प्रारंभ" से "झिल्ली में पागल" नाम दिया गया था । सरू हिल के मूल गीत को देखते हुए मुझे लगता है कि वह इस बात से चिंतित थे कि यह विधि कितनी बड़ी हो रही थी। या शायद उस समय सिर्फ सुन रहा था।
जलानब

आपके उत्तर के लिए धन्यवाद! लेकिन मुझे नहीं लगता कि यह स्निपेट वास्तव में एक "उत्तर" है, जैसे। मैं insane_in_the_membraneफ़ंक्शन में क्या डालूं? क्या मुझे इस स्निपेट की पहली 3 लाइनों की आवश्यकता है? या वे Startify-specific (क्या Session.vim?) हैं, और अंतिम पंक्ति एक त्रुटि देती है।
मार्टिन टूरनोइज

5

यहाँ वह कोड है जिसे मैंने निकाला है vim-startify; प्रमुख भाग VimEnterआटोक्मड पर एक नया बफर बना रहे हैं , उस में कुछ पाठ डाल रहे हैं, और फिर iएक नया बफर शुरू करने के लिए मैपिंग कर रहे हैं और फिर मोड डालें।

मैंने नीचे एक छोटे से प्लगइन में रखा है जो कुछ सेटिंग्स और ऐसे जोड़ता है, लेकिन मूल अवधारणा बिल्कुल समान है।

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

यह क्या है भाग्य -a ??
टोमेकफ्रैंक

@regedarek यह एक यादृच्छिक मजाक प्रदर्शित करता है। देखें: en.wikipedia.org/wiki/Fortune_(Unix)
मार्टिन टूरनोइज जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.