আমি কীভাবে ভিমের শুরু বা ইন্ট্রো স্ক্রিন পরিবর্তন করতে পারি?


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এবং এর আসল কোডটির সাথে কীভাবে দূর থেকে কিছু করা যায়। কারণ সেই ব্যক্তিটি উজ্জ্বল এবং এটিই আজ আমি দেখা সবচেয়ে ভাল ফাংশনের নাম! : পি
ডুরকনব

1
@ ডুরকনব ফাংশনটির নাম "স্টার্ট" থেকে "ঝিল্লিতে উন্মাদ" করা হয়েছিল মার্কো হিন্জ দ্বারা। সাইপ্রাস হিলের মূল লিরিক্সগুলি দিয়ে আমি অনুমান করতে পারি যে পদ্ধতিটি কত বড় হচ্ছে সে সম্পর্কে তিনি উদ্বিগ্ন ছিলেন। বা সম্ভবত এটি তখন শুনছিলেন।
জালানব

আপনার উত্তরের জন্য ধন্যবাদ! তবে আমি মনে করি না যে এই স্নিপেটটি আসলে একটি "উত্তর"। আমি কি insane_in_the_membraneফাংশন রাখি ? আমার এই স্নিপেটের প্রথম 3 লাইন দরকার? অথবা তারা স্টার্টাইফাই-নির্দিষ্ট (কী 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()

ভাগ্য কি - এ ??
tomekfranek

@regedarek এটি একটি এলোমেলো রসিকতা প্রদর্শন করে। দেখুন:
en.wikedia.org/wiki/Fortune_( ইউনিক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.