不知道从什么时候起(可能是 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. Vue问题

    vue问题 #(1)vouter的addRoutes方法---用户权限 //自定义添加路由方法,防止重复添加路由 #使用后 路由结构 const user = () => import('../ ...

  2. Kubernetes Job Controller 原理和源码分析(二)

    概述程序入口Job controller 的创建Controller 对象NewController()podControlEventHandlerJob AddFunc DeleteFuncJob ...

  3. React简单教程-1-组件

    前言 React,Facebook开发的前端框架.当时Facebook对市面上的前端框架都不满意,于是自己捣鼓出了React,使用后觉得特别好用,于是就在2013年开源了. 我也用React开发了一个 ...

  4. SpringBoot官方支持任务调度框架,轻量级用起来也挺香!

    大家好,我是二哥呀.定时任务的应用场景其实蛮常见的,比如说: 数据备份 订单未支付则自动取消 定时爬取数据 定时推送信息 定时发布文章 等等(想不出来了,只能等等来凑,,反正只要等的都需要定时,怎么样 ...

  5. Arduino WeMos D1 开发环境搭建

    更新记录 2022年4月16日:本文迁移自Panda666原博客,原发布时间:2021年9月2日. WeMos D1介绍 WeMos D1开发板全称是WeMos D1 WiFI UNO R3开发板,基 ...

  6. Acwing785.快速排序

    Acwing785.快速排序 快排模板: y总教学大法好~: #include <iostream> using namespace std; const int N = 1000010; ...

  7. Java 将HTML转为XML

    本文介绍如何通过Java后端程序代码来展示如何将html转为XML.此功能通过采用Word API- Free Spire.Doc for Java 提供的Document.saveToFile()方 ...

  8. RPA SAP财务内部对账机器人

    [简介] 本机器人用于使用SAP软件的集团公司间往来对账前台登录SAP账户和密码,需退出PC微信,输入法切换为英文半角状态. [详细流程] 1.清空Excel-VBA管理工具原始数据 2.输入对账时间 ...

  9. Nginx防御CC攻击

    CC攻击可以归为DDoS攻击的一种.他们之间都原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击.CC攻击又可分为代理CC攻击,和肉鸡CC攻击.代理CC攻击是黑客借助代理服务器生 ...

  10. Feign通过自定义注解实现路径的转义

    本文主要讲解如果通过注解实现对路由中的路径进行自定义编码 背景 近期由于项目中需要,所以需要通过Feign封装一个对Harbor操作的sdk信息. 在调用的过程中发现,当请求参数中带有"/& ...