fortune
)的输出。我知道vim-startify;但我不需要所有这些功能。我只想显示一些简单的文字...
#1 楼
其实答案就在开始。在第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
的位置,第二个q4312079q是startify特定的代码。#2 楼
这是我从vim-startify
中提取的代码;关键部分是在VimEnter
autocmd上创建一个新的缓冲区,在其中添加一些文本,然后映射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
15年7月25日在14:37
@regedarek显示一个随机的笑话。请参阅:en.wikipedia.org/wiki/Fortune_(Unix)
–马丁·图尔诺伊(Martin Tournoij)
15年7月25日在15:47
评论
...我想知道是谁想到了函数名insane_in_the_membrane,以及这与它的实际代码有何关系。因为那个人很聪明,这是我今天看到的最好的函数名称! :P
–门把手
2015年2月8日在23:43
Marco Hinz将@Doorknob Function从“开始”重命名为“膜中的疯狂”。鉴于赛普拉斯·希尔(Cypress Hill)的原始歌词,我想他担心这种方法的规模越来越大。也许当时只是在听。
–贾兰布
2015年2月9日在9:59
感谢您的回答!但是我不认为这个片段确实是一个“答案”。我应该在insane_in_the_membrane函数中放什么?我需要此代码片段的前3行吗?还是它们是特定于Startify的(Session.vim是什么?),最后一行给出了错误。
–马丁·图尔诺伊(Martin Tournoij)
2015年2月10日在16:01