不知道各位小伙伴用过 spacevim
或者 LunarVim
又或者 doomvim
或者其他的什么 vim
配置框架,我们发现他们的启动界面都做的比较好看,而我们默认进入的启动界面则显得比较素了。这篇文章我们将来教大家使用插件打造属于自己的启动界面
使用 dashboard-nvim 插件
这部分我主要使用的是插件 dashboard-nvim
。与之前的插件类似,我们可以使用下面的语句来安装
use {'glepnir/dashboard-nvim'}
我们可以使用如下语句来加载该插件
代码语言:javascript复制local db = require("dashboard")
然后我们重新进入 neovim
之后,发现它已经给我们显示了一个默认的启动界面
针对启动界面的配置分为三个部分,显示头信息、中间内容以及底部的内容。我们来分别对其进行配置
配置显示头
图中使用蓝色显示的 dashboard为显示头,我们可以使用 custom_header变量进行配置。官方贴心的给了很多使用ascii字符显示的图片可以供我们选择(ascii-text-header),例如我们使用如下的配置
代码语言:javascript复制db.custom_header = {
' ⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣴⣶⣶⣶⣶⣶⠶⣶⣤⣤⣀⠀⠀⠀⠀⠀⠀ ',
' ⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣿⠁⠀⢀⠈⢿⢀⣀⠀⠹⣿⣿⣿⣦⣄⠀⠀⠀ ',
' ⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⠿⠀⠀⣟⡇⢘⣾⣽⠀⠀⡏⠉⠙⢛⣿⣷⡖⠀ ',
' ⠀⠀⠀⠀⠀⣾⣿⣿⡿⠿⠷⠶⠤⠙⠒⠀⠒⢻⣿⣿⡷⠋⠀⠴⠞⠋⠁⢙⣿⣄ ',
' ⠀⠀⠀⠀⢸⣿⣿⣯⣤⣤⣤⣤⣤⡄⠀⠀⠀⠀⠉⢹⡄⠀⠀⠀⠛⠛⠋⠉⠹⡇ ',
' ⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣼⣇⣀⣀⣀⣛⣛⣒⣲⢾⡷ ',
' ⢀⠤⠒⠒⢼⣿⣿⠶⠞⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⣼⠃ ',
' ⢮⠀⠀⠀⠀⣿⣿⣆⠀⠀⠻⣿⡿⠛⠉⠉⠁⠀⠉⠉⠛⠿⣿⣿⠟⠁⠀⣼⠃⠀ ',
' ⠈⠓⠶⣶⣾⣿⣿⣿⣧⡀⠀⠈⠒⢤⣀⣀⡀⠀⠀⣀⣀⡠⠚⠁⠀⢀⡼⠃⠀⠀ ',
' ⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣤⣭⣭⣭⣭⣭⣥⣤⣤⣤⣴⣟⠁ ',
}
我们再次打开就发现头已经变成哆啦A梦了。
如果你喜欢彩色样式的话,官方已经给出了解决办法了。可以通过 lolcat
或者 ueberzug
来生成彩色图片,然后嵌入到 custom_header
变量中。这里就不过多演示了
定义中间部分
中间部分表示的是它显示为 Please Config your own center section
这块的内容。我们可以使用 custom_center
来定义
custom_center
是一个 table
。它的每个部分对应着一条显示。每条显示和功能我们可以使用如下字段来进行定制
icon
: 当前显示图标desc
:某个功能的描述信息,后面会原样显示出来shortcut
:快捷键action
:在某项位置回车时执行的命令
我们按照官方给出的截图上的功能进行定义
代码语言:javascript复制db.custom_center = {
{icon = " ", desc = 'Recently lastest session ', shortcut = "Leader s l", action = ""},
{icon = " ", desc = "Recently opened files ", shortcut = "Leader f h", action = ""},
{icon = " ", desc = "Find File ", shortcut = "leader f f", action = ""},
{icon = " ", desc = "File Browser ", shortcut = "leader f b", action = ""},
{icon = " ", desc = "Find Word ", shortcut = "leader f w", action = ""},
{icon = " ", desc = "Open Personal dotfiles ", shortcut = "leader e e", action = "edit $MYVIMRC"}
}
其他地方的功能我们先不管,暂时在 action
这个字段上填上空,我们先实现最后打开个人配置文件那个位置的代码,我们在 action
中填入 edit $MYVIMRC
。
再次打开,我们发现它已经可以显示这些内容了
并且我们在最后一项回车,发现它打开了当前配置文件
各位可以尝试一下,它并不能帮助我们自动将 shortcut
字段与 action
结合绑定为快捷键。仅仅作为一行的几个元素进行显示而已。而 action
则是按下回车会执行的命令
footer 定义
footer这部分与之前定义 header类似,也是一个 table组成的字符串。 这里我们可以对他进行一些扩展,例如我这里可以使用下面的函数获取到底加载了哪些插件作为我们优化启动速度的依据
代码语言:javascript复制db.custom_footer = function()
local footer = {'', '