如何使用纯手工制作一个漂亮的 vim 状态栏

如何使用纯手工制作一个漂亮的 vim 状态栏,第1张

我将 space-vim 的状态栏单独提取成为一个插件: .. , 可直接安装试用。

首先看一下最后的效果:

知己知彼,百战不殆。先来分析一下使用 airline 与 lightline 有什么好处?

漂亮,酷炫,这毋庸置疑。

airline 与很多插件集成的非常好,真是省心又省力。

那有什么不足之处呢?

airline 可能会导致 100 ms 的启动延迟。具体可以看这里 xu..., 这里也有一篇关于 vim 启动优化非常好的文章。

定制性依旧不高,或者说深度定制的门槛有点高,不是那么容易上手。我曾经尝试过深入修改过 airline,不过并不顺利。

它们所提供的信息可能过于庞杂,显得有些冗余。

那么如何通过纯手工制作一个与 airline/lightline 相比也还不错的 statusline 呢?

什么叫不错?这键指个因人而异,按照我个人的审美而言,首先不能太单调(我只关心漂不漂亮),其次得显示出一些有用丛拆的信息。那么就会涉及到以下一些内容:

颜色转换,也就是各部分前景色,背景色之类的。

一些有用的信息,比如语法检查的内容信息。

为了漂亮,我们可能还会选择添加一些 Unicode 字符进去。

function! Buf_total_num()

   return len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))endfunctionfunction! File_size(f)

   let l:size = getfsize(expand(a:f))    if l:size == 0 || l:size == -1 || l:size == -2

       return ''

   endif

   if l:size <1024

       return l:size.' bytes'

   elseif l:size <1024*1024

       return printf('%.1f', l:size/1024.0).'k'

   elseif l:size <1024*1024*1024

       return printf('%.1f', l:size/1024.0/1024.0) . 'm'渗亮枣

   else

       return printf('%.1f', l:size/1024.0/1024.0/1024.0) . 'g'

   endifendfunctionset statusline=%<%1*[B-%n]%*" TOT is an abbreviation for totalset statusline+=%2*[TOT:%{Buf_total_num()}]%*set statusline+=%3*\ %{File_size(@%)}\ %*set statusline+=%4*\ %F\ %*set statusline+=%5*『\ %{exists('g:loaded_ale')?ALEGetStatusLine():''}』%{exists('g:loaded_fugitive')?fugitive#statusline():''}%*set statusline+=%6*\ %m%r%y\ %*set statusline+=%=%7*\ %{&ff}\ \|\ %{\"\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"\ \|\"}\ %-14.(%l:%c%V%)%*set statusline+=%8*\ %P\ %*" default bg for statusline is 236 in space-vim-darkhi User1 cterm=bold ctermfg=232 ctermbg=179hi User2 cterm=None ctermfg=214 ctermbg=242hi User3 cterm=None ctermfg=251 ctermbg=240hi User4 cterm=bold ctermfg=169 ctermbg=239hi User5 cterm=None ctermfg=208 ctermbg=238hi User6 cterm=None ctermfg=246 ctermbg=237hi User7 cterm=None ctermfg=250 ctermbg=238hi User8 cterm=None ctermfg=249 ctermbg=240

简单介绍一下重点:%1*[foo]%*, hi User1 ......, 改变的便是 [foo] 部分的 style, 比如前景色,背景色,粗体等等。如果你也想要尝试自己定制一番,按照个人喜好照葫芦画瓢即可 :p.

上面的示例似乎有些复杂,下面给出一个简略版本:

set statusline+=%4*\ %F\ %*

hi User4 cterm=bold ctermfg=169 ctermbg=239

分两步:

%数字* + 后面跟上所要在 statusline 中显示的内容 +%*,圈出所要进行 *** 作的范围,比如简略版本中为 \ %F \ , 即为 空格 文件的全路径 空格。

hi User数字 cterm=bold ctermfg=111 ctermbg=111 gui=bold guifg=111 guibg=111 ,就会 highlight 上面圈出的范围。 cterm, gui 分别指的是 terminal 与 GUI 环境。 fg,bg 为前景,背景色。数字可以自己定义。 hi User1 ... 就会对 %1* ... %* 所圈中的 ... 进行 highlight *** 作。

也可以不用数字,采用自定义名称。 比如%4* 可替换为%#highlightgroup#, highlightgroup 为一个自定义的名称,那么%4*\ %F\ %* 也可以写为 %#fullPath#\ %F\ %*, hi fullPath ... 进行 highlight 就可以了。

至此你应该可以 *** 作自己的 statusline 了。这里是 256 色对照表 , 这里 是我给出的示例出处。

如果你不喜欢 airline 可能导致 vim 启动延迟 100 ms, 或是喜欢无插件版本的 vim, 就可以使用这个方法来进行 statusline 的美化了。实际上,这同样也适用于 tabline.

顺便介绍一下 space-vim 的 statusline 值得关注的一些部分,[B-1] 代表 buffer 1, 1 为当前 buffer 对应的编号。[TOT 3], TOT 指的是 total, 当前共有多少 buffer,可以使用 Tab 快速切换。文件完整路径后面采用橙色前景色显示的是 ale 语法检查的信息。其他部分比较显然,值得关注的点也不多就不介绍了。

末了,说一下上面的缺点:所有 window 的 statusline 都是很相似的,可能不能像 airline/lightline 那样容易区分出哪个是当前光标所在的 window。 而且跟你的 colorscheme 可能不搭。不过我个人来讲,愿意接受这些不足。

仅仅是分享一个方案,如何选择取决于你自己。

在“文件”菜单上单击“新建项目”。将出现“梁脊新建项目”对话框。单击“Windows 窗体应用程序”,然后单击“确定”。将一个“ToolStrip”控件从“工具箱”拖到窗体中。ToolStrip1 将出现在组件栏中,同时一个工具栏已添加到窗体的顶部。将一个“TextBox”控件添加到窗体中,并保留默认名称 textBox1。单击此灶渣洞“TextBox”控件,然后在“属性”窗口中更改以下属性:属性值Size260, 20Text这是一个简单测试单击 ToolStrip 控件,再单击该控件右上角的智能任务箭头,然后单击“插入标准项”。工具栏上将显示七个标准按钮(“新建”、“打开”、“保存”、“打印”、“剪切”、“复制”、“粘贴”和“帮助”)。双击“CutToolStripButton”控件以添加默认的 Click 事件处理程隐枯序,然后添加以下代码。此代码将剪切 TextBox1 中的选定文本并将其复制到剪贴板中。this.textBox1.Cut()按F5 运行代码。当窗体出现时,选择文本框中的一个单词,然后单击“剪切”按钮(带有一个剪刀图标)。确认选定的文本已从文本框中移除。

打印控件是一种用于实现胡陵丛打印功能的软件组件,通常被嵌入到其他应用程序中使用。如果您需要手工执行文件并进行打印 *** 作,则可以按照以下步骤进行:

1. 打开要打印的文件:首先,找到要打印的文件,并双击以在计算机上打开它。

2. 选择“打印”选项:在文件窗口中,点击菜单栏或快捷键(通常为Ctrl+P)来调出“打印”对话框。

3. 选择正确的设备和设置:在“打印”对话框中,选择正确的输出设备(如本地连接的USB或网络共享的网络设备),并设置好纸张大小裤樱、方向、页码范围等参数。

4. 点击“确定”开始打印:确认所有设置后,点击“确定”按钮即可开始执行该文档的手动打印汪雀 *** 作。此时系统将会启动相应的驱动程序和控制器来完成任务。

需要注意,在某些情况下可能需要安装特定品牌或型号相关驱动程序才能正常使用该设备进行手工执行文件并进行相应 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8228305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存