不知道各位小伙伴用过 spacevim 或者 LunarVim 又或者 doomvim 或者其他的什么 vim 配置框架,我们发现他们的启动界面都做的比较好看,而我们默认进入的启动界面则显得比较素了。这篇文章我们将来教大家使用插件打造属于自己的启动界面

使用 dashboard-nvim 插件

这部分我主要使用的是插件 dashboard-nvim 。与之前的插件类似,我们可以使用下面的语句来安装

use {'glepnir/dashboard-nvim'}

我们可以使用如下语句来加载该插件

local db = require("dashboard")

然后我们重新进入 neovim 之后,发现它已经给我们显示了一个默认的启动界面



针对启动界面的配置分为三个部分,显示头信息、中间内容以及底部的内容。我们来分别对其进行配置

配置显示头

图中使用蓝色显示的 dashboard为显示头,我们可以使用 custom_header变量进行配置。官方贴心的给了很多使用ascii字符显示的图片可以供我们选择(ascii-text-header),例如我们使用如下的配置

db.custom_header = {
' ⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣴⣶⣶⣶⣶⣶⠶⣶⣤⣤⣀⠀⠀⠀⠀⠀⠀ ',
' ⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣿⠁⠀⢀⠈⢿⢀⣀⠀⠹⣿⣿⣿⣦⣄⠀⠀⠀ ',
' ⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⠿⠀⠀⣟⡇⢘⣾⣽⠀⠀⡏⠉⠙⢛⣿⣷⡖⠀ ',
' ⠀⠀⠀⠀⠀⣾⣿⣿⡿⠿⠷⠶⠤⠙⠒⠀⠒⢻⣿⣿⡷⠋⠀⠴⠞⠋⠁⢙⣿⣄ ',
' ⠀⠀⠀⠀⢸⣿⣿⣯⣤⣤⣤⣤⣤⡄⠀⠀⠀⠀⠉⢹⡄⠀⠀⠀⠛⠛⠋⠉⠹⡇ ',
' ⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣼⣇⣀⣀⣀⣛⣛⣒⣲⢾⡷ ',
' ⢀⠤⠒⠒⢼⣿⣿⠶⠞⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⣼⠃ ',
' ⢮⠀⠀⠀⠀⣿⣿⣆⠀⠀⠻⣿⡿⠛⠉⠉⠁⠀⠉⠉⠛⠿⣿⣿⠟⠁⠀⣼⠃⠀ ',
' ⠈⠓⠶⣶⣾⣿⣿⣿⣧⡀⠀⠈⠒⢤⣀⣀⡀⠀⠀⣀⣀⡠⠚⠁⠀⢀⡼⠃⠀⠀ ',
' ⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣤⣭⣭⣭⣭⣭⣥⣤⣤⣤⣴⣟⠁ ',
}

我们再次打开就发现头已经变成哆啦A梦了。



如果你喜欢彩色样式的话,官方已经给出了解决办法了。可以通过 lolcat 或者 ueberzug 来生成彩色图片,然后嵌入到 custom_header 变量中。这里就不过多演示了

定义中间部分

中间部分表示的是它显示为 Please Config your own center section 这块的内容。我们可以使用 custom_center 来定义

custom_center 是一个 table。它的每个部分对应着一条显示。每条显示和功能我们可以使用如下字段来进行定制

  • icon : 当前显示图标
  • desc:某个功能的描述信息,后面会原样显示出来
  • shortcut:快捷键
  • action:在某项位置回车时执行的命令

我们按照官方给出的截图上的功能进行定义

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组成的字符串。 这里我们可以对他进行一些扩展,例如我这里可以使用下面的函数获取到底加载了哪些插件作为我们优化启动速度的依据

db.custom_footer = function()
local footer = {'', ' Have fun with neovim'}
if packer_plugins ~= nil then
local count = #vim.tbl_keys(packer_plugins)
footer[2] = ' neovim loaded ' .. count .. ' plugins'
for key, value in pairs(packer_plugins) do
table.insert(footer, ' ' .. key)
end
end print(footer)
return footer
end

我们再次重启 neovim 之后发现,它已经帮我们显示了它加载了哪些插件



我们发现关于主题的插件它加载了两个,后面我们可以选择注释掉一个。

本篇就到此结束了,剩下的插件我们在下一篇继续介绍

从零开始配置 vim(16)——启动界面配置的更多相关文章

  1. Hyper-v Server安装与配置-新加GUI界面配置工具介绍

    650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" ...

  2. 配置ubuntu 16.04.1 LTS odoo 10.0开发环境

    使用VMware Fusion 8.5.0创建ubuntu 64bit虚拟机:使用ubuntu-16.04.1-desktop-amd64.iso镜像缺省安装ubuntu,用户名odoo,密码1234 ...

  3. [VSTS] 从零开始 Team Foundation Server 2010 安装配置详细图文教程

    http://www.cnblogs.com/WilsonWu/archive/2011/11/24/2261674.html 近期公司要配TFS用于新项目的管理,公司也将逐步迁移至VSTS平台,前期 ...

  4. RHEL/CentOS 7 中配置 PXE 网络启动服务器

    RHEL/CentOS 7 中配置 PXE 网络启动服务器 作者: Matei Cezar 译者: LCTT joeren | 2015-02-17 14:28   评论: 13 收藏: 8 分享:  ...

  5. LINUX操作系统VIM的安装和配置

    VIM的安装   在命令行敲入"vi"后按"tab"键,可以看到目前系统中只安装了vi和vim.tiny. vim是从VI发展而来的一个文本编辑器,功能更强大. ...

  6. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  7. P6 EPPM 安装与配置指南 16 R1 2016.4

       关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...

  8. 配置系统引导启动SuperScoekt

    配置系统引导启动SuperScoekt SuperSocket源码解析之启动过程 一 简介 这里主要说明从配置系统引导启动SuperScoekt作为应用程序,且以控制台程序方式启动 二 启动过程 2. ...

  9. [转]Linux(centOS6.5)下SVN的安装、配置及开机启动

    1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion PS:yum inst ...

  10. mysql5.6.16绿色版配置、运行

    原文:mysql5.6.16绿色版配置.运行 1.从该地址http://dev.mysql.com/downloads/mysql/中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3 ...

随机推荐

  1. HanLP 学习

    学习 HanLP 需要了解, 双数组Trie树 (Double-array Trie) Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机 T ...

  2. Go--Println、Printf区别

    Println:打印字符串.变量:    同函数输出多项,之间存在空格    不同函数输出自动换行 Printf:打印需要格式化的字符串,可以输出字符串类型的变量:不可以输出整型变量和整型   同函数 ...

  3. SSL 证书过期巡检脚本

    哈喽大家好,我是咸鱼 我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请.如果没有及时更换证书的话,就有可能导致网站出问题,给公司业务带来一定的影响 所以说我们要每隔一定时间去检查网站上的 S ...

  4. #5702:Solving Order(结构体排序,水题)

    原题目链接 题目大意:把颜色由多到少进行排序,从大到小的输出. 解题思路:将变量存在结构体中,然后结构体排序即可.还需要注意格式的问题. 详见代码. #include <iostream> ...

  5. The 18th Zhejiang Provincial Collegiate Programming Contest 补题记录(ACFGJLM)

    补题链接:Here A. League of Legends 签到题,求和判断即可 ll suma, sumb; void solve() { ll x; for (int i = 1; i < ...

  6. java调用本机的命令 如ping、打开文本等

    最近接触到用java代码调用主机的命令部分感觉有点意思整理总结一下 环境jdk1.8  操作系统win10,不用引入其他的包jdk自带的api就可以 一.java调用ping命令 import jav ...

  7. vue-asome-swiper

  8. java垮平台的原理-垃圾回收-day1

    目录 1. 跨平台原理 2. 垃圾回收 3. DOS的几个基本命令 4. PATH环境变量的作用 5 java的安装 6. 第一个java程序 6. 另外两个环境变量CLASS_PATH 与JAVA_ ...

  9. shell 脚本之 disk_monitor

    编写脚本实现监测指定文件夹的磁盘空间.   =========================================================== ## 脚本逻辑介绍 用户通过 --p ...

  10. 如何与chatgpt共存

    作为程序员,专注于创造性劳动,而把重复性劳动任务交给chatgpt,要成为 需求 和 chatgpt的桥梁. 人工智能比如chatgpt越来越强,提问能力是人类的天赋,提问能力更为重要.