如何修改VIM未指定打开文件时默认启动页的显示文字
自定义Vim无文件启动时的默认首页内容
Vim默认的无参数启动欢迎文本是直接编译在二进制文件里的,没有公开的配置项可以直接修改对应内容,不需要改源码重编译,通过Vim自带的自动命令拦截启动场景就能实现自定义替换,是最通用、兼容性最好的方案。
实现逻辑
- 监听Vim启动完成的
VimEnter事件 - 判断启动时是否传入了文件参数(
argc()返回0就是无文件直接启动的场景) - 命中场景后清空默认欢迎缓冲区的内容,写入你自定义的提示文本,设置缓冲区属性避免误编辑
可直接复用的配置代码
把下面这段代码加入你的自定义vimrc配置即可,注释位置替换成你要展示的自定义命令改动说明:
" 替换无参数启动时的默认欢迎页 autocmd VimEnter * if !argc() | \ %delete _ | \ call setline(1, [ \ ' 自定义VIM配置分发包', \ ' 适配Vim 7.4+ 版本', \ '', \ '================ 自定义命令改动提示 ================', \ ' 插入模式下按 jj 快速退回普通模式', \ ' 普通模式下按 <leader>w 快速保存当前文件', \ ' 普通模式下按 <leader>ff 快速查找文件', \ ' 普通模式下按 <leader>q 快速退出当前窗口', \ '====================================================', \ '', \ 'type :q<Enter> 退出Vim', \ 'type :help<Enter> or <F1> 查看官方帮助', \ 'type :help version7<Enter> 查看版本信息', \ ]) | \ normal gg | \ setlocal nomodifiable bufhidden=wipe buftype=nofile | \ endif
可选调整
- 如果不想完全删除默认欢迎文本,只想在原有内容后面追加你的自定义提示,删掉配置里的
%delete _ |这行,把setline(1, [])换成call append(line('$'), [你的自定义行内容])即可 setline里的每一行字符串对应启动页显示的一行内容,你可以根据自己实际改的命令自由调整排版和内容- 配置里最后一行
setlocal的参数是把欢迎页设为不可修改的特殊缓冲区,不会生成空的swap文件,和Vim默认欢迎页的行为保持一致
内容的提问来源于stack exchange,提问作者Better_call_B4RB4
相关产品推荐
相关产品推荐

