GeekHub

一款生成艺术字的小工具FigLet

各位使用命令行工具时,是否好奇过那些花里胡哨的镂空艺术字体是怎么生成的?

其实有一款小工具可以实现各种艺术字体的自动生成,那就是FigLet,话不多说,先举个例子:

ryan@ryan-ThinkPad-X270:~$ figlet gooneyryan
                                                           
  __ _  ___   ___  _ __   ___ _   _ _ __ _   _  __ _ _ __  
 / _` |/ _ \ / _ \| '_ \ / _ \ | | | '__| | | |/ _` | '_ \ 
| (_| | (_) | (_) | | | |  __/ |_| | |  | |_| | (_| | | | |
 \__, |\___/ \___/|_| |_|\___|\__, |_|   \__, |\__,_|_| |_|
 |___/                        |___/      |___/   

是不是有内味儿了?还可以设置字体:

ryan@ryan-ThinkPad-X270:~$ figlet -f slant gooneyryan
                                                            
   ____ _____  ____  ____  ___  __  _________  ______ _____ 
  / __ `/ __ \/ __ \/ __ \/ _ \/ / / / ___/ / / / __ `/ __ \
 / /_/ / /_/ / /_/ / / / /  __/ /_/ / /  / /_/ / /_/ / / / /
 \__, /\____/\____/_/ /_/\___/\__, /_/   \__, /\__,_/_/ /_/ 
/____/                       /____/     /____/              

ubuntu上安装figlet非常简单:

sudo apt install figlet

输入命令showfigfonts可以查看全部字体,而且还有示例(有几个字体显示不正常,我也不知道为啥):

ryan@ryan-ThinkPad-X270:~$ showfigfonts 
banner :
                                          
#####    ##   #    # #    # ###### #####  
#    #  #  #  ##   # ##   # #      #    # 
#####  #    # # #  # # #  # #####  #    # 
#    # ###### #  # # #  # # #      #####  
#    # #    # #   ## #   ## #      #   #  
#####  #    # #    # #    # ###### #    # 
                                          


big :
 _     _       
| |   (_)      
| |__  _  __ _ 
| '_ \| |/ _` |
| |_) | | (_| |
|_.__/|_|\__, |
          __/ |
         |___/ 


block :
                                            
_|        _|                      _|        
_|_|_|    _|    _|_|      _|_|_|  _|  _|    
_|    _|  _|  _|    _|  _|        _|_|      
_|    _|  _|  _|    _|  _|        _|  _|    
_|_|_|    _|    _|_|      _|_|_|  _|    _|  
                                            
                                            


bubble :
  _   _   _   _   _   _  
 / \ / \ / \ / \ / \ / \ 
( b | u | b | b | l | e )
 \_/ \_/ \_/ \_/ \_/ \_/ 


digital :
+-+-+-+-+-+-+-+
|d|i|g|i|t|a|l|
+-+-+-+-+-+-+-+


ivrit :
                                                            _   _            _ 
                                                           | |_(_)_ ____   _(_)
                                                           | __| | '__\ \ / / |
                                                           | |_| | |   \ V /| |
                                                            \__|_|_|    \_/ |_|
                                                                               


lean :
                                     
    _/                               
   _/    _/_/      _/_/_/  _/_/_/    
  _/  _/_/_/_/  _/    _/  _/    _/   
 _/  _/        _/    _/  _/    _/    
_/    _/_/_/    _/_/_/  _/    _/     
                                     
                                     


mini :
           
._ _ o._ o 
| | ||| || 
           


mnemonic :
mnemonic


script :
                          
               o          
 ,   __   ,_        _ _|_ 
/ \_/    /  |  |  |/ \_|  
 \/ \___/   |_/|_/|__/ |_/
                 /|       
                 \|       


shadow :
      |               |                
  __| __ \   _` |  _` |  _ \\ \  \   / 
\__ \ | | | (   | (   | (   |\ \  \ /  
____/_| |_|\__,_|\__,_|\___/  \_/\_/   
                                       


slant :
         __            __ 
   _____/ /___ _____  / /_
  / ___/ / __ `/ __ \/ __/
 (__  ) / /_/ / / / / /_  
/____/_/\__,_/_/ /_/\__/  
                          


small :
               _ _ 
 ____ __  __ _| | |
(_-< '  \/ _` | | |
/__/_|_|_\__,_|_|_|
                   


smscript :
                                  
 ,           ,   _   ,_  o    _|_ 
/ \_/|/|/|  / \_/   /  | | |/\_|  
 \/  | | |_/ \/ \__/   |/|/|_/ |_/
                          (|      


smshadow :
               |              |              
(_-<  ` \ (_-<   \   _` |  _` |  _ \\ \  \ / 
___/_|_|_|___/_| _|\__,_|\__,_|\___/ \_/\_/  
                                             


smslant :
                 __          __ 
  ___ __ _  ___ / /__ ____  / /_
 (_-</  ' \(_-</ / _ `/ _ \/ __/
/___/_/_/_/___/_/\_,_/_//_/\__/ 
                                


standard :
     _                  _               _ 
 ___| |_ __ _ _ __   __| | __ _ _ __ __| |
/ __| __/ _` | '_ \ / _` |/ _` | '__/ _` |
\__ \ || (_| | | | | (_| | (_| | | | (_| |
|___/\__\__,_|_| |_|\__,_|\__,_|_|  \__,_|
                                          


term :
term


FigLet只是一个酷炫的小玩具么,并不是,事实上FigLet的历史非常悠久,早在图形界面尚未普及的九十年代,FigLet可是程序员们的一大神器。

「FIGlet」的历史

「FIGlet」在1991年春天,仅仅是一个只有170行用C语言编写的小程序,当时叫做newban,作者认为它是一个可以长期使用于互联网中的程序,然后用带“新”的英文不太合适,于是后来称之为FIGlet 1.0。当时的版本只有一个字体并且仅仅包含了一些小写字母。

于是1993年的时候,决定重写「FIGlet」,花了7个月的时间整理了13个字体以及相关文档,因此FIGlet 2.0正式版也正式诞生。

当时「FIGlet」像暴风一样席卷互联网,每周都有新的字体涌现,不少人自愿把figlet这个功能接入到non-Unix当中,当然还有一些bug的报告。因为这些从而使得「FIGlet」更加国际化,所以在FIGlet 2.1中加入了支持非ASCII字符,还有从右到左打印等功能。直至今天最新版本是2.2.5,可以从官方网站找到相关代码的下载地址

我觉得这个工具生成的艺术字体出了用在命令行的输出外,非常适合用于代码注释,出了好看以外,艺术字体足够大,在VSCode或者Sublime这些具有缩略图功能的编辑器里,可以缩略图里看到注释的字母,非常适合代码的分段注释,比如:

其实还有一款类似的工具,叫toilet,使用方法类似:

ryan@ryan-ThinkPad-X270:~$ toilet gooneyryan
                                                                      
                                                                      
  mmmm   mmm    mmm   m mm    mmm   m   m   m mm  m   m   mmm   m mm  
 #" "#  #" "#  #" "#  #"  #  #"  #  "m m"   #"  " "m m"  "   #  #"  # 
 #   #  #   #  #   #  #   #  #""""   #m#    #      #m#   m"""#  #   # 
 "#m"#  "#m#"  "#m#"  #   #  "#mm"   "#     #      "#    "mm"#  #   # 
  m  #                               m"            m"                 
   ""                               ""            ""                  

通过参数-f可以设置字体:

ryan@ryan-ThinkPad-X270:~$ toilet -f slant gooneyryan
                                                            
   ____ _____  ____  ____  ___  __  _________  ______ _____ 
  / __ `/ __ \/ __ \/ __ \/ _ \/ / / / ___/ / / / __ `/ __ \
 / /_/ / /_/ / /_/ / / / /  __/ /_/ / /  / /_/ / /_/ / / / /
 \__, /\____/\____/_/ /_/\___/\__, /_/   \__, /\__,_/_/ /_/ 
/____/                       /____/     /____/              

toilet和figlet的效果基本相同,可是名字更好记一些(大雾),两者都可以在ubuntu下apt安装。

另外如果对figlet的内置字体不满意的话,官方网站还有大量的字体可以下载,字体的效果可以参考这里

附:小技能,配合彩虹字体输出小公举小工具lolcat(撸啊撸猫)有奇效:

参考链接:

FIGlet初识-凹凸实验室

酷炫的文字工具——Figlet用法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注