译者 | 弯月,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:

曾经,我是一名骄傲的Ubuntu用户。Ubuntu不仅易于安装,而且易于利用。在此之前,我是Windows用户,觉得Windows和Ubuntu很相似。
然而,日复一日,年复一年,我的自满感逐渐消逝了,取而代之的却是无边无尽的烦恼。Ubuntu让我大失落所望:
有时会显示奇怪的缺点。
非常慢。
必须手动编译许多官方代码库中没有的运用程序。
必须手动编译许多官方代码库中完备过期的运用程序。
为了尽可能多地利用键盘,必须学习大量随机快捷键,只管只是一款基本的工具。
由于没有更好的选择,以是我坚持了好多年。某天早上,我兴致勃勃地皮算升级LTS版本。然而,统统都崩溃了。我乃至无法启动Ubuntu。我费尽心机修复所有问题,但当时的我对Linux一无所知,不知该从何处下手,毫无头绪。Ubuntu论坛也没有供应太多帮助,于是我决定重新安装。
我的内心充满了痛楚,然而,我的老朋友Ubuntu,又一次华标致地让我失落望了。
几个月后,我有幸与一群出色的开拓职员互助,他们向我展示了如何构建高效的开拓环境。
于是,我的全体事情流程都发生了转变。我从Ubuntu转移到了Arch Linux、从Unity到i3、从PhpStorm到Neovim。经由多年的默默抗争,我终于拥有了一个可扩展、稳定、高效的新系统。我乃至编写了一堆脚本,只需一个命令即可安装我所须要的统统。统统准备就绪,我可以大展拳脚了。
不黑不吹,这成为了我职业生涯中最主要的一个转变。为什么?
感谢Arch Linux,我学到了很多有关Linux的知识。
为理解决各种问题,理解操作系统抽象层下的事情办法非常主要。
我认为开拓职员必须理解Linux,由于Web做事器紧张运行在基于Linux的系统上。
我习气于在所有工具中利用一套统一的快捷键。
我可以通过键盘完成90%的系统操作。我能记住这些快捷键,是由于这些键位的设置很合理,而不像ctrl + shift + alt + e等常见的GUI快捷键。
当切换到如今利用的这套工具后,我真正体会到拥有一个精良、高效及可扩展的开拓环境有多么主要。我感到宾至如归。这套系统终于能够知足我所有的需求,我无需再跟系统作斗争了。
如今的我非常享受开拓的事情,而且我可以说:我享受到了十倍的编程乐趣!
在本文中,我们将谈论:
为什么Linux shell是开拓职员的最佳工具?
为什么我们该当利用Arch Linux?
什么是i3?
如何利用urxvt、tmux和tmuxp创建功能强大的终端?
一款迄今为止我所见过的最强大的IDE,它可以将Linux Shell的功能发挥到极致。
如何改进在终端中利用git的体验?
如何在shell中得到更好的MySQL和PostgreSQL利用体验?
你对这些话题感兴趣吗?下面请随我一起畅游无鼠标开拓环境的梦幻天下。
开拓职员的好朋友,Shell
图:大略高效的Shell
在本文中,我将反复提到shell,最常见的shell有bash和Zsh,我利用的是后者,而且我强烈推举。
纯文本的力量
你可能在想:为什么要利用基于文本的Shell?
基于文本的Shell下有丰富的运用程序。即便没有完备知足须要的工具,也可以很轻松地开拓一个shell工具,无需设计最上层的GUI。
可以为终极用户供应许多可选的功能,让终极用户完备按照自己的意愿选择。你不可能在一个图形界面中塞入20个按钮吧?但是,基于命令行的运用程序可以有20个选项。
Unix的思想许可你利用特定的工具来知足特定的需求。通过管道将一种工具的输出作为输入通报到另一种工具,这可以供应无穷无尽的可能性。
你可以利用Shell非常轻松田主动化常见的乏味任务。自动化是提高生产力并节省精力的关键。
常日命令行的实行速率非常快。没有沉重的图形界面,也没有3D菜单,来拖慢打算机的速率。
命令行不会占用大量内存。比较起Chrome来说,命令行可以节省80%的RAM。
“命令行工具比Hadoop集群快235倍。”
—— Adam Drake
我鼓励你尽可能利用Shell。虽然刚开始的时候,你可能会不适应,但Shell可以让你受益良多。
CLI运用程序之上的图形界面又如何呢?在我看来,它有严重的缺陷:
隐蔽了许多可以通过CLI轻松利用的功能。
无法办理(乃至无法理解)来自CLI层的任何缺点。
碰着以下情形,你会感到很困惑:
在没有图形界面的情形下,在远程做事器上利用这类工具。
向履历不敷的开拓职员先容该工具的实际事情事理。你可以阐明GUI,但不能阐明运用程序本身,尤其是当GUI和CLI采取了不同技能的时候,而且不幸的是这种情形非常普遍。
我有一段利用sourcetree的亲自经历,sourcetree是git的图形界面。当时我在和一名低级开拓职员一起事情,而他不睬解git是如何事情的。每当涌现问题时,他都搞不明白GUI在后台调用了什么命令。这比直接在Shell利用CLI git更令人沮丧。
无鼠标办法
利用Shell的时候,你紧张依赖键盘。可能你会以为有点吃惊,但我会只管即便避免利用鼠标。由于这是提高效率的关键之一:双手放在键盘上可以加快你的速率,而且更主要的是,可以让你更加快乐。
以下是无鼠标办法的一些优点:
将手从键盘移到鼠标很累。试试看不用移动手,你就明白了。
双手一贯放在键盘上会让你倍感轻松。你无需在敲键盘和移动光标之间不断切换。
即便只是编写购物清单,也有一种黑客的觉得!
很酷,是不是?
ArchLinux:获取最新的软件
图:Arch Linux在虚拟机上流畅地运行
与其他Linux发行版比较,Arch Linux具有许多上风。
滚动发布系统
滚动发布系统究竟是什么?Arch Linux社区会不断为我们和用户供应所有软件的更新。可确保你安装的程序是最新版本。
你无需担心自己是否错过了某个工具的强大功能和修复补丁。Arch Linux可以担保你的系统保持最新版本。
那么运用程序是不是很丰富?Arch Linux的官方代码库非常弘大。大多数时候,你都可以找到自己所需的统统。如果找不到,你还可以访问AUR(Arch用户代码库),找到你想要的统统。我一点也没有夸年夜。在利用Arch Linux多年之后,AUR仍旧能不断带给我惊喜。
唯一的缺陷:AUR的运用程序并不一定经由了良好的测试。以是,请谨慎利用。但是,只要查看其构建记录就可以知道安装之后会发生什么。
当从头开始安装Arch Linux时,你可以选择每一个须要安装的运用程序。凡是你不须要的东西,都不会涌如今你的硬盘上。未经你的赞许,任何运用程序都无法在后台运行,你是掌控统统的主人。
ArchLinux周围的社区也很强大。一样平常他们都值得相信,而且他们不会在stack overflow上随便抛出一些Shell命令却不做任何阐明(这一点与Ubuntu有很大的不同)。
再说,谁奇异stack overflow呀?Arch Wiki才是最出色的Linux Wiki。同样,这个网站至今仍旧能带给我很多惊喜,里面险些搜罗万象。
现在,你可能在想:Arch Linux稳定吗?它是否会每两周崩溃一次,让你觉得无望?
你会创造网上的很多人都在长篇大论谈论这个问题。我的建议?别听他们的。我每天都在利用Arch Linux,已经坚持了5年。在我安装的过程中,Arch Linux从未崩溃过,要说有也是在我刚刚开始考试测验利用的时候。
如果你谨慎利用AUR,那么完备可以依赖这款功能强大、轻巧且可自定义的Linux发行版。
有时,pacman(不是吃豆人,而是Arch Linux的打包管理器)会哀求你进行一些手动修正。但Arch Linux的官方网站会供应详细记录,而且可以立即办理。
利用i3管理窗口
图:i3 的窗口
ArchLinux不带任何类型的桌面或窗口管理器。你须要自行安装。我绝不犹豫地选择了i3 Windows Manager。
这是一款非常轻便、快速且易于利用的窗口管理器。i3没有精细的3D效果。统统都是为了提高效率和生产力,避免在视觉上造成滋扰。
你可以利用i3创建事情区。事情区霸占全体屏幕,而且还可以从一个屏幕移动到另一个屏幕。你可以在事情区中打开一个或多个窗口。它们会嵌入到你喜好的运用程序。
很大略,对不对?而且最吸引人部分是:你可以利用键盘轻松完成所有操作。你可以通过大略的按键来打开、移动和关闭事情区或窗口。你还可以利用快捷键来调度窗口大小。你乃至可以利用快捷键来打开自己喜好的运用程序。
统统都合乎逻辑。在第一次安装i3后,只过了2-3天,我就可以顺畅地利用它。你的肌肉可以记住你须要的快捷键。
i3的配置灵巧性很大。如果你想考试测验一下的话,可以参考这篇文章(https://thevaluable.dev/i3-config-mouseless/),逐步完成基本的i3配置。在你对i3有足够的理解之后,就可以根据须要对其进行自定义。
ArchLinux Wiki供应了完善的i3文档(https://wiki.archlinux.org/index.php/i3)。
Urxvt,Tmux和Tmuxp:将终端变成生产力猛兽
图:Urxvt中的Tmux,打开了4个窗格和两个窗口
我考试测验了很多终端仿照器,而Urxvt是我的最佳选择。
这是一款非常轻巧且快速的终端,尤其是如果你运行Urxvtd、Urxvt守护进程的话。它可以非常随意马虎地天生任意终端。
话虽如此,由于有了Tmux,现在我只需同时打开2-3个终端。这是一款功能强大的终端复用器,你可以:
创建会话,包括窗口和窗格。
根据须要在终端中打开尽可能多的窗口。每个窗口都会霸占全体终端窗口,而且还可以分成窗格。纵然你须要3个窗口,每个窗口4个窗格(统共12个不同的Shell),tmux也可以轻松应对。
分离和附着会话。想象一下你缺点地关闭了某个终端,这时你可以打开一个新终端,然后附着会话就可以规复全体tmux会话。
同步窗格。你须要在三台不同的远程做事器上运行完备相同的命令?那么只需打开三个窗格,用一个命令同步它们,你在第一个窗格中键入的所有内容都会被复制到其他窗格中。
还有很多我不理解的用法。
如上所示,统统都可以用键盘来管理。当然你也可以利用鼠标,在学习期间利用鼠标也很方便。
你乃至可以利用tmuxp,进一步自动化tmux会话。实际上,你可以编写一个配置文件来打开所需的窗口和窗格,并在个中自动启动运用程序。
假设为了启动一个新项目,你须要:
在一个窗格中运行dockercompose。
在另一个窗格中,在Docker容器中运行npm run dev。
在另一个窗口中,打开莅临盆做事器的ssh连接。
在tmuxp的帮助下,你只须要一个命令行和一个大略的配置文件就可以自动化上述所有操作。
适宜自己的IDE
我选用的IDE是Neovim,它是Vim的一个强大分支,可以与Shell合营利用。Neovim和Vim非常相似,因此我会利用“Vim”来指代二者。
图:本文便是用Neovim写的
你害怕了?别跑。让我阐明一下,为什么你该当负责考虑学习Vim的知识。
我写了很多关于Vim的文章,这里我大略总结一下Vim的优点:
利用Vim编程很有趣。
Vim可以让你充分利用键盘。
原版的Vim拥有很多功能,你总是能够学到新技巧。
Vim有一个很好的社区,个中掩护着许多插件。不论你利用何种编程措辞,不论是JavaScript、Golang、PHP还是Clojure,这些插件都能够知足你99%的需求。
你不必再受任何措辞的限定。你想通过同一款编辑器利用Rust、Go和C编程,同时还可以利用自动补齐、高亮显示语法以及其他功能?Vim便是完美的选择。
统统都是高度可配置的。忘却你的其他喜好吧,利用Vim,你可以微调任何所需的内容。
不会有关照时时时地冒出来,打断你的事情(说的便是你,Intellij IDE)。
你可以针对自己的事情流构建自己的IDE,同时不必在IDE中塞满你永久不会利用的东西。
非常快。
免费。
改进Git:tig和diff-so-fancy
图:tig:在分支层次构造的顶部,你还可以在底部看到所做的所有修正
图:diff-so-fancy 可以快速显示所有的修正内容
我觉得在最常见的日常任务中,利用Shell版的git非常方便。有时,git在用户体验方面的决策虽然有些怪异,但我们最好一开始就能意识到这一点。
基本上,你每天须要利用:
● git push
● git pull
● git branch
● git checkout
● git merge
● git rebase
● git diff
你真的须要一个完全的GUI吗?
我利用的第一个有关Git的工具是tig,你可以利用这个工具遍历git分支的层次构造,并显示每个提交的详细信息。
还有一个工具是git-so-fancy,它可以在终端中以非常易读的办法显示git diff。在提交代码之前,我常常利用它来验证自己的修正。
你可以从Arch Linux官方代码库下载这些工具。
更好的MySQL及PostgreSQL命令行工具
如果你须要在Shell中通过一个快速实用的界面来与数据库交互,则我建议你考试测验mysql的mycli,以及PostgreSql的pgcli。
这些工具类似于MySQL和PostgreSql自己的CLI:
自动补齐数据库、表、连接等。
可以将常见的操作写成代码段。
如果想在Arch Linux上安装这两个工具,则须要通过AUR获取它们。
你准备好成为一名无鼠标开拓职员了吗?
生产力、多功能性、掌握性和舒适性是我选择构建和配置全体开拓环境时考虑的紧张成分。无鼠标开拓环境改变了我作为一名开拓职员的生活,我想通过本文分享我从这次经历中得到的知识。
有些从未考试测验过Vim的人说,Vim是地球上最繁芜的工具,不要听他们胡言乱语。不要听他们辩论Arch Linux的崩溃次数比Windows 95还多。我相信这些辞吐并不属实。
这种环境的设置和理解须要付出一些韶光和精力,大约须要几周的韶光。但在这之后,你将拥有自己的开拓环境,不仅可以知足当前和将来的需求,还可以掌控统统,让你觉得如鱼得水。
图:我的小窝
原文:https://thevaluable.dev/mouseless-development-environment-overview/
本文为 CSDN 翻译,转载请注明来源。