如何更改Vim的启动或简介屏幕?


14

当我启动没有任何文件的Vim时,总是看到以下信息:

              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

我该如何更改?

具体来说,我想将shell命令(fortune)的输出放在这里。

我知道vim-startify ; 但我不需要所有这些功能。我只想显示一些简单的文字...

Answers:


5

其实答案就在开始。在第15行的startify.vim中,我们可以看到

 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,后者是startify专用代码。


3
...我想知道是谁想到了函数名insane_in_the_membrane,以及它与实际代码的关系如何。因为那个人很聪明,这是我今天看到的最好的函数名称!:P
门把手2015年

1
Marco Hinz将@Doorknob Function 从“开始”重命名为“膜中的疯狂”。鉴于赛普拉斯·希尔(Cypress Hill)的原始歌词,我想他担心这种方法的规模越来越大。也许当时只是在听。
jalanb 2015年

感谢您的回答!但是我不认为这个片段确实是一个“答案”。我要在insane_in_the_membrane功能中添加什么?我需要此代码片段的前3行吗?还是它们是特定于Startify的(是Session.vim?),最后一行给出了错误。
马丁·图尔诺伊

5

这是我从中提取的代码vim-startify;关键部分是在VimEnterautocmd 上创建一个新缓冲区,在其中添加一些文本,然后映射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 ??
tomekfranek

@regedarek它显示一个随机的笑话。参见: en.wikipedia.org/wiki/Fortune_
Unix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.