热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vim状态栏_Vim的最后状态

vim状态栏对于某些Vimmers而言,他们的地位就像绝地的光剑一样。每一个都是相似但独特的-展现潜伏身份的美学樱桃。这个想法导致了诸如Powerline࿰

vim状态栏

对于某些Vimmers而言,他们的地位就像绝地的光剑一样。 每一个都是相似但独特的-展现潜伏身份的美学樱桃。 这个想法导致了诸如Powerline , Airline和Lightline之类的项目 。 尽管都很有趣,但是本教程还是按照旧的方式进行的。 我们将前往隐喻的Dagobah ,使用Force方法( Vim脚本)制作状态栏。

在开始之前,这里是语法的预览。 下面的屏幕截图是我当前的状态行,以及用于生成它的代码 。

下面的代码

基础

与对Vim的任何探索一样,我们需要从底层开始:help statusline

非空时,此选项确定状态行的内容。 该选项由散布在普通文本中的printf样式'%'项目组成。 每个状态行项目的形式为:
%-0{minwid}.{maxwid}{item}
除{item}外的所有字段都是可选的。 可以将单个百分号表示为“ %%”。 最多可以指定80个项目。

这看起来似乎令人困惑且不直观,但不要担心……还不算太糟。

首先是要告诉Vim我们想要看到状态栏。 您可以通过将以下代码放入.vimrc (vim)或init.vim (neovim)中来完成此操作。

set laststatus=2

现在,我们已经告诉Vim我们感兴趣,我们需要给它一些显示的东西! 对于一个非常基本的示例,请键入以下内容:

set statusline=lightsaber!

重新加载Vim时,您应该看到:

显然,此状态线并不是非常有用,但是要小心!

句法

在状态栏星系中,存在一种特殊的语法。 每行都是从单个项目派生的,每个项目都对应于一条特定的信息。 例如, %f将给出当前存在于缓冲区中的文件的相对路径。

echo "Hello, this is a .jedi file" >> lightsaber.jedi

将以下内容插入Vim配置。

set statusline=%f

打开我们之前创建的文件。 您应该看到状态行及其上打印的文件名。

总的来说,这是状态栏的公式。 您将使用这些预定义的映射来创建武器。 有一件事情要注意:如何组合多个项目。

完整的地图列表:

一个显示文件名,当前行,总行和缓冲区号的最小示例:

格式化

我们开始到达某个地方,不再是padawan。 但是,还有更多技巧可以覆盖。

其中第一个涉及控制我们的物品位于哪一边。 具体来说, =符号。 An =表示部分之间的分离点。

另一个格式设置必须是空格。 使用反斜杠- \来转义空格。 下面的例子中有注释的一个其它符号- <<用来告诉Vim如果行太长则在哪里截断行。

有了您现在所掌握的知识&#xff0c;您应该能够将一些像样的东西放在一起。 但是旅程还没有结束&#xff01;

表达方式

有时候您可能会对包含以前未定义的内容感兴趣。 这是表达式将发挥作用的地方。 在Vim的状态行语法中&#xff0c; %{...}之间的任何内容都将作为表达式求值&#xff0c;并用结果替换。 因此&#xff0c;假设您对于set showmode太酷了&#xff0c;并希望直接在您的行中使用它&#xff0c;这就是您将如何实现此任务的方法。

这是您迈向黑暗面的第一步。 现在&#xff0c;您几乎可以将您心中想要的任何内容添加到行中。 例如&#xff0c;如果您是加密货币&#xff0c;则可以增加比特币和ETH的价格-可能性无穷无尽。 有关Vim Script的详细介绍&#xff0c;请点击此处 。 我还在下面提供了更多示例。

文件大小

只读文件

还值得注意的是&#xff0c;您可以在表达式中利用Vim的内部函数。

颜色

时机已到。 您会选择哪一边&#xff1f; 坚韧极简的生活接受了Vim神所提供的一切。 或者&#xff0c;您会沉迷于郁郁葱葱的彩虹之中吗&#xff1f; 就个人而言&#xff0c;我不太在乎……但是&#xff0c;幸运的是&#xff0c;选择权是您的&#xff01;

有两种方法可以向状态行添加颜色。 一种是通过小猪退缩您的配色方案。 另一种是自己定义颜色。

高亮组

第一种着色方法是从您的colorscheme中借用的。 例如&#xff0c; #function#将为function关键字使用定义的突出显示。 下一张图片是使用此技术的状态栏&#xff1a;

下面的代码

User1..9颜色

第二种方法取决于您要定义的颜色。 如果要高度控制&#xff0c;这是您的选择。 在继续之前&#xff0c;我们将简要地回到Vim的帮助中进行概述。

将突出显示组设置为User {N}&#xff0c;其中{N}来自minwid字段&#xff0c;例如&#xff05;1。 使用&#xff05;或&#xff05;0 *恢复正常的高亮显示。 User {N}和StatusLine之间的差异将应用于非当前窗口状态行的StatusLineNC。 数字N必须在1到9之间。请参见| hl-User1..9 |。

这可能有点令人困惑&#xff0c;所以让我们跳一个例子。 首先要做的是指定我们感兴趣的颜色。 语法类似于创建自定义颜色方案。

hi User1 ctermbg&#61;green ctermfg&#61;red guibg&#61;green guifg&#61;red
hi User2 ctermbg&#61;red ctermfg&#61;blue guibg&#61;red guifg&#61;blue
hi User3 ctermbg&#61;blue ctermfg&#61;green guibg&#61;blue guifg&#61;green

为了应用它&#xff0c;您指定用户号&#xff0c;后跟* - %1* User1颜色。 下面是一个完整的示例。

该行的代码如下

轻便式版本&#xff1a;

您的选择仅受您的想象力和时间限制。

下一步

尽管已涵盖了所有内容&#xff0c;但仍有很多东西要学习。 在建议其他资源之前&#xff0c;我将简要介绍另外几个主题。

特殊的角色

我的产品系列中的‹‹ ››仅用于美学目的。 您可以转到unicode表中找到有趣的字符。

每种模式不同的颜色

如果您确定不使用插件就可以这样做。 最简单的路径将使用augroupEvents 。 我将从:help Events 。 然后&#xff0c;您将为用户定义的颜色设置一个augroup &#xff0c;并根据事件关闭它们。 我不会提供解决方案&#xff0c;因为我猜测这会激发一些动机。 因此&#xff0c;开始学习一些Vim脚本将是一项有价值的任务。 老实说&#xff0c;这还不错。 还有其他方法&#xff0c;但是在某些时候您最终会重新发明轮子。

有关Vim的更多信息&#xff0c;请访问我的博客&#xff01;

其他资源

  • DIY Vim状态栏
  • Vim pr0n&#xff1a;制作自己的状态行
  • 更简单的Vim状态线
  • 建立自己的Vim状态线
  • 我的自定义状态行

翻译自: https://hackernoon.com/the-last-statusline-for-vim-a613048959b2

vim状态栏



推荐阅读
author-avatar
男人--沉默底线
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有