不知道从什么时候起(可能是 Ubuntu 21.04,也可能是 Ubuntu 21.10),Ubuntu 中的 gnome-terminal 的行间距就加大了,看起来极其不爽,特别是和 Powerline 之类的主题配合的时候尤为明显。好像这个问题很早以前就出现过,后来又改过来了,至少我的印象中 Ubuntu 20.04 和 Ubuntu 20.10 是正常的。最让人蛋疼的是,这个问题在网上还搜不到,难道只有我一个人被这个问题困扰吗?

事情是这样的,我最近看别人玩 zsh 还不错,特别是 zsh 中有一个主题插件,叫 powerlevel10k,比较漂亮,于是我就决定自己试一下。我配置出来的效果是这样的:

细心点看,可以看出来,因为终端中两行之间的行间距太大,使得 powerlevel10k 主题看起来非常不舒服。这个问题我以前就发现过,只要是终端中的行间距太大,就会对 Powerline 类的主题造成影响,包括 Vim 中的 air-line 主题。如下图:

不细心的人可能并没有发现有什么不妥,但是如果和正常行间距比较一下,就可以看出很大的差别,如果翻一翻我之前的关于 Vim 的随笔就可以看出来。(后面我会贴正常行高情况下的贴图,等我格了这个 Ubuntu 22.04,回退到 20.04。)我之前的随笔是在 Ubuntu 20.10 中写的,终端的行间距是正常的。但是当我输入sudo aptitude install zsh准备装一个 zsh 的时候,翻车了,因为 Ubuntu 20.10 的支持期过了,所以软件仓库中啥都没有了。继续在 Ubuntu 22.04 中玩 zsh 吧,又被 gnome-terminal 恶心的行间距问题困扰,郁闷呀。

再多说一点题外话,我也尝试过寻找其它行间距正常的终端软件。我发现,在 Ubuntu 22.04 中,凡是使用 libvte 编写的终端软件,行间距都不正常。而使用 Qt 编写的,行间距都是正常的。我借用了 Lubuntu 中的 QTerminal,其效果如下:



上面的截图,就是 Powerline 类的主题应该有的样子。

我还借用了 Kubuntu 中的 Konsole,如下图:

行间距也是正常的,只是软件实在是丑了一点,而且配色也不好看。以上两个终端软件也不能设置背景透明度。

唉,没办法,谁让我偏爱 gnome-terminal 呢?

怎么办?硬盘格了吧......

重新装个 Ubuntu 20.04 吧......

...

重装完成了,下面我来继续展示。

这是 powerlevel10k 的效果,是我编译 Vim 的 YouCompleteMe 插件的操作展示,其中可以显示上一条命令运行是否成功、运行时间等等,我还配置了它显示我的 CPU 负载、剩余内存、磁盘占用率等信息。

下面是 vim 欢迎界面的截图,可以看到 air-line 插件的效果,也可以看看在正常行间距的情况下,是不是有拥挤的感觉?

下面用 Vim 写一个 Hello World。可以看出,在正常行间距的情况下写代码,一点也不显得拥挤。

可以看出,在正常的行间距情况下,英文和代码一点也不觉得拥挤,中文会有一点点拥挤的感觉。下面这张图很能说明问题:

而且从上图中可以看出,我查了一下 libvte 的版本,发现 Ubuntu 20.04 中的 libvte 也是 2.91 版,和 Ubuntu 22.04 中是一致的。那么终端的行间距表现如此不同,问题究竟出在哪里呢?

也许是 Ubuntu 的发行方单方面不想让终端看起来那么拥挤吧,但是是否能够考虑一下 powerline、powerlevel、air-line 这些插件的感受?

新版 Ubuntu 中 gnome-terminal 可恶的行间距问题逼我退回了 Ubuntu 20.04的更多相关文章

  1. Ubuntu中修改Terminal背景

    哈哈哈哈,没什么卵用,只能是看起来舒服,有逼格! 详解参考

  2. 在Azure中的Ubuntu中安装Open edX

    最近,由于工作原因,在Azure上的Ubuntu虚拟机中安装了Open edX 实例,安装过程遇到了不少问题, 在从网上找答案的过程中,学习到了不同的知识. 注:若Ubuntu虚拟机Setup在Glo ...

  3. ubuntu中磁盘挂载与卸载

      问题描述:          ubuntu中磁盘的挂载和卸载     问题解决:          (1)ubuntu中磁盘挂载        注:    如上所示,使用命令df查看磁盘使用情况 ...

  4. 访问不了虚拟机 ubuntu中的myql,解决方案

    ============================================================== 1. 现象 2. 原因分析 2.1 访问虚拟机中的mysql的前提: 你的 ...

  5. Ubuntu中如何使得程序在后台运行

    Ubuntu中如何使得程序在后台运行 一.前言 在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这 ...

  6. ubuntu中KDE与GNOME安装切换

    转载:http://apps.hi.baidu.com/share/detail/18919303 1.在Ubuntu中安装KDE桌面命令 sudo apt-get install kUbuntu-d ...

  7. ubuntu中的Wine详解

    什么是wine?(转自百度百科,具体看百科) wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多 ...

  8. 【转】ubuntu中的Wine详解

    原文网址:http://blog.csdn.net/iwtwiioi/article/details/10530561 什么是wine?(转自百度百科,具体看百科) wine,是一款优秀的Linux系 ...

  9. Ubuntu中配置Java环境变量时,出现command not found问题解决记录

    百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...

随机推荐

  1. 数据分析工具Metabase--Metabase安装(最详细的安装教程)

    Meatabase介绍 Metabase 是一款开源的BI工具.主要可以实现在线的可视化分析,单独生成分析图标,定时刷新数据集,权限管理,报告分享等一系列功能. Metabase支持多种市面上主流的数 ...

  2. C#/VB.NET 在Word转PDF时生成目录书签

    当我们在转换Word文档到PDF格式时,想保留Word文档的标题作为PDF书签,那么应该如何操作呢?那么本文将以C#及VB.NET代码为例,介绍如何在Word转PDF时生成目录书签.下面是具体方法和步 ...

  3. 2020.09.12【NOIP提高组&普及组】模拟赛C组 总结

    总结:这次比赛成绩并不理想,虽然策略得当 \(P.S.\):太多题有多组数据,但是样例只有一个数据 各题题解和改题情况 T1 匹配 题面 描述 给你一个由{a,b-z,A,B-.Z}组成的字符串,我们 ...

  4. 基于数传电台的组态王控制实现远程采集控制器PLC

    「物联网应用案例」基于数传电台的组态王控制 一.案例介绍 采用亚控科技组态王结合亿佰特E90系列数传电台实现远程采集控制PLC.在这里主要介绍通信环境的搭建,故不采用过于复杂的控制程序,但为了体现控制 ...

  5. 漏洞修复之Oracle系列

    Oracle 11g CVE-2012-1675(远程投毒)漏洞修复. 数据库版本 Oracle 11g 11.2.0.4.0非RAC 漏洞编号 CVE-2012-1675 漏洞介绍 Oracle允许 ...

  6. dotnet 在 linux 上构建问题(RID 的问题)

    个人理解 一方面 /etc/os-release 中定义的的 ID VERSION_ID 是会与源代码中定义 RID 的相对应,如果不对应,就会报错 The specified RuntimeIden ...

  7. Java 泛型中的通配符

    本文内容如下: 1. 什么是类型擦除 2.常用的 ?, T, E, K, V, N的含义 3.上界通配符 < ?extends E> 4.下界通配符 < ?super E> 5 ...

  8. JavaScript有哪些数据类型,它们的区别?

    基本数据类型:number.string.boolean.Undefined.NaN(特殊值).BigInt.Symbol 引入数据类型:Object NaN是JS中的特殊值,表示非数字,NaN不是数 ...

  9. React.js中JSX的原理与关键实现

    在开始开发之前,我们需要创建一个空项目文件夹.安装 初始化 npm init -y 2.安装webpack相关依赖 npm install webpack webpack-cli -D 安装babel ...

  10. JavaScript写倒计时

    在网页中,特别是电商网站中,倒计时的出现频率很高,接下来给大家介绍一下怎么用JavaScript写一个倒计时.代码如下: 首先我们通过Date构造函数的方法创建一个倒计时的结束的时间.并将其转换为毫秒 ...