这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
在学习 Go 之前,我就接触过 Go。Go 可能也算是个“网红语言”吧,GitHub 上面有不少个人项目都是用 Go 写的。作为一个资深的 Vim 用户,发掘好用的开源工具肯定也是兴趣之一,今天来介绍一下我以前用过的几个 Go 语言写的项目。
FZF
FZF 是一个用 Go 语言开发的命令行模糊查询工具,可以用来查找文件、历史命令、进程、主机名、书签、git 分支等。它可以与任何命令行工具配合使用,只要它们能生成列表输出。它的源代码托管在 Github 上。
FZF 的作者比较有名。他开发 vim-plug 是现在最流行的 Vim 插件管理工具,也因为他是资深 Vim 用户的原因,FZF 很容易配合 Vim 使用。
LazyGit
Lazygit 是一个用 Go 语言编写的简单的 git 命令终端界面,它可以让你在终端中方便地执行 git 操作,有点像 Sourcetree 的感觉。Lazygit 和其他 git 工具有一些区别,主要是在界面和操作上。Lazygit 是一个终端界面,它可以让你在终端中快速地查看和执行 git 命令,而不需要输入很多参数。其他 git 工具可能是图形界面,或者是基于文本编辑器的插件,或者是基于 git 命令的封装。Lazygit 的优点是它简单、快速、轻量级,而且可以和其他终端工具结合使用。
LazyDocker
LazyDocker 和 LazyGit 是同一个作者,它是 Docker 和 Docker-Compose 的终端管理工具,用于显示和操作容器的状态、日志、重启、删除、重建等功能。它采用 Go 语言开发,基于 gocui 库实现。它支持键盘操作和鼠标点击,具有简单灵活的终端界面。
LazyDocker 和其他 Docker 图形化管理工具的区别主要有以下几点:
- LazyDocker 是基于终端的,而不是桌面应用程序,这意味着它可以在任何支持终端的平台上运行,而不需要安装额外的软件。
- LazyDocker 支持 Docker 和 Docker-Compose,而一些其他工具只支持 Docker。
- LazyDocker 有一些独特的功能,比如显示容器的 CPU 使用率和内存占用,以及在不同容器之间复制和粘贴文件。
- LazyDocker 是免费开源的,而一些其他工具可能需要付费或有使用限制。
题外话
Go 语言的简洁和表达力在这些项目中可以说体现得淋漓尽致。它们之中有很多都是我在写 Go 之前就接触到的,在快速入门以后为了学习我也看了它们的源代码。我发现尽管它们的代码数量都不低,但是它们的代码却非常地容易阅读。这让我加深了对 Go 语言的好感。