不用鼠标,程序员编程竟能如此高效?

不用鼠标,程序员编程竟能如此高效?

作者 | Matthieu CNEUDE

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

曾经,我是一名骄傲的Ubuntu用户。Ubuntu不仅易于安装,而且易于使用。在此之前,我是Windows用户,感觉Windows和Ubuntu很相似。

然而,日复一日,年复一年,我的自豪感逐渐消失了,取而代之的却是无边无尽的烦恼。Ubuntu让我大失所望:

  • 有时会显示奇怪的错误。

  • 非常慢。

  • 必须手动编译许多官方代码库中没有的应用程序。

  • 必须手动编译许多官方代码库中完全过时的应用程序。

  • 为了尽可能多地使用键盘,必须学习大量随机快捷键,尽管只是一款基本的工具。

由于没有更好的选择,所以我坚持了好多年。某天早上,我兴致勃勃地打算升级LTS版本。然而,一切都崩溃了。我甚至无法启动Ubuntu。我想方设法修复所有问题,但当时的我对Linux一无所知,不知该从何处下手,毫无头绪。Ubuntu论坛也没有提供太多帮助,于是我决定重新安装。

我的内心充满了痛苦,然而,我的老朋友Ubuntu,又一次华丽丽地让我失望了。

几个月后,我有幸与一群出色的开发人员合作,他们向我展示了如何构建高效的开发环境。

于是,我的整个工作流程都发生了转变。我从Ubuntu转移到了Arch Linux、从Unity到i3、从PhpStorm到Neovim。经过多年的默默抗争,我终于拥有了一个可扩展、稳定、高效的新系统。我甚至编写了一堆脚本,只需一个命令即可安装我所需要的一切。一切准备就绪,我可以大展拳脚了。

不用鼠标,程序员编程竟能如此高效?

开发人员的好朋友,Shell

不用鼠标,程序员编程竟能如此高效?

纯文本的力量

你可能在想:为什么要使用基于文本的Shell/p>

  • 基于文本的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更令人沮丧。

不用鼠标,程序员编程竟能如此高效?

ArchLinux:获取最新的软件

不用鼠标,程序员编程竟能如此高效?

滚动发布系统

 

滚动发布系统究竟是什么rch Linux社区会不断为我们和用户提供所有软件的更新。可确保你安装的程序是最新版本。

你无需担心自己是否错过了某个工具的强大功能和修复补丁。Arch Linux可以保证你的系统保持最新版本。

那么应用程序是不是很丰富rch Linux的官方代码库非常庞大。大多数时候,你都可以找到自己所需的一切。如果找不到,你还可以访问AUR(Arch用户代码库),找到你想要的一切。我一点也没有夸张。在使用Arch Linux多年之后,AUR仍然能不断带给我惊喜。

唯一的缺点:AUR的应用程序并不一定经过了良好的测试。所以,请谨慎使用。但是,只要查看其构建记录就可以知道安装之后会发生什么。

当从头开始安装Arch Linux时,你可以选择每一个需要安装的应用程序。凡是你不需要的东西,都不会出现在你的硬盘上。未经你的同意,任何应用程序都无法在后台运行,你是掌控一切的主人。

ArchLinux周围的社区也很强大。一般他们都值得信赖,而且他们不会在stack overflow上随便抛出一些Shell命令却不做任何解释(这一点与Ubuntu有很大的不同)。

再说,谁稀罕stack overflow呀rch Wiki才是最出色的Linux Wiki。同样,这个网站至今仍然能带给我很多惊喜,里面几乎应有尽有。

现在,你可能在想:Arch Linux稳定吗是否会每两周崩溃一次,让你感觉无望/p>

你会发现网上的很多人都在长篇大论讨论这个问题。我的建议听他们的。我每天都在使用Arch Linux,已经坚持了5年。在我安装的过程中,Arch Linux从未崩溃过,要说有也是在我刚刚开始尝试使用的时候。

如果你谨慎使用AUR,那么完全可以依赖这款功能强大、轻巧且可自定义的Linux发行版。

有时,pacman(不是吃豆人,而是Arch Linux的打包管理器)会要求你进行一些手动修改。但Arch Linux的官方网站会提供详细记录,而且可以立即解决。

不用鼠标,程序员编程竟能如此高效?

图: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,打开了4个窗格和两个窗口

我尝试了很多终端模拟器,而Urxvt是我的最佳选择。

这是一款非常轻巧且快速的终端,尤其是如果你运行Urxvtd、Urxvt守护进程的话。它可以非常容易地生成任意终端。

话虽如此,由于有了Tmux,现在我只需同时打开2-3个终端。这是一款功能强大的终端复用器,你可以:

  • 创建会话,包括窗口和窗格。

  • 根据需要在终端中打开尽可能多的窗口。每个窗口都会占据整个终端窗口,而且还可以分成窗格。即使你需要3个窗口,每个窗口4个窗格(总共12个不同的Shell),tmux也可以轻松应对。

  • 分离和附着会话。想象一下你错误地关闭了某个终端,这时你可以打开一个新终端,然后附着会话就可以恢复整个tmux会话。

  • 同步窗格。你需要在三台不同的远程服务器上运行完全相同的命令么只需打开三个窗格,用一个命令同步它们,你在第一个窗格中键入的所有内容都会被复制到其他窗格中。

  • 还有很多我不了解的用法。

如上所示,一切都可以用键盘来管理。当然你也可以使用鼠标,在学习期间使用鼠标也很方便。

你甚至可以利用tmuxp,进一步自动化tmux会话。实际上,你可以编写一个配置文件来打开所需的窗口和窗格,并在其中自动启动应用程序。

假设为了启动一个新项目,你需要:

  • 在一个窗格中运行dockercompose。

  • 在另一个窗格中,在Docker容器中运行npm run dev。

  • 在另一个窗口中,打开到生产服务器的ssh连接。

在tmuxp的帮助下,你只需要一个命令行和一个简单的配置文件就可以自动化上述所有操作。

不用鼠标,程序员编程竟能如此高效?

图:本文就是用Neovim写的

你害怕了跑。让我解释一下,为什么你应该认真考虑学习Vim的知识。

我写了很多关于Vim的文章,这里我简单总结一下Vim的优点:

  • 使用Vim编程很有趣。

  • Vim可以让你充分利用键盘。

  • 原版的Vim拥有很多功能,你总是能够学到新技巧。

  • Vim有一个很好的社区,其中维护着许多插件。不论你使用何种编程语言,不论是JavaScript、Golang、PHP还是Clojure,这些插件都能够满足你99%的需求。

  • 你不必再受任何语言的限制。你想通过同一款编辑器使用Rust、Go和C编程,同时还可以使用自动补齐、高亮显示语法以及其他功能im就是完美的选择。

  • 一切都是高度可配置的。忘记你的其他喜好吧,使用Vim,你可以微调任何所需的内容。

  • 不会有通知时不时地冒出来,打断你的工作(说的就是你,Intellij IDE)。

  • 你可以针对自己的工作流构建自己的IDE,同时不必在IDE中塞满你永远不会使用的东西。

  • 非常快。

  • 免费。

不用鼠标,程序员编程竟能如此高效?

图:tig:在分支层次结构的顶部,你还可以在底部看到所做的所有修改

不用鼠标,程序员编程竟能如此高效?

更好的MySQL及PostgreSQL命令行工具

 

如果你需要在Shell中通过一个快速实用的界面来与数据库交互,则我建议你尝试mysql的mycli,以及PostgreSql的pgcli。

这些工具类似于MySQL和PostgreSql自己的CLI:

  • 自动补齐数据库、表、连接等。

  • 可以将常见的操作写成代码段。

如果想在Arch Linux上安装这两个工具,则需要通过AUR获取它们。

不用鼠标,程序员编程竟能如此高效?

生产力、多功能性、控制性和舒适性是我选择构建和配置整个开发环境时考虑的主要因素。无鼠标开发环境改变了我作为一名开发人员的生活,我想通过本文分享我从这次经历中获得的知识。

有些从未尝试过Vim的人说,Vim是地球上最复杂的工具,不要听他们胡言乱语。不要听他们争论Arch Linux的崩溃次数比Windows 95还多。我相信这些言论并不属实。

这种环境的设置和理解需要付出一些时间和精力,大约需要几周的时间。但在这之后,你将拥有自己的开发环境,不仅可以满足当前和将来的需求,还可以掌控一切,让你感觉如鱼得水。

不用鼠标,程序员编程竟能如此高效?

不用鼠标,程序员编程竟能如此高效? 微信公众号 不用鼠标,程序员编程竟能如此高效? 成就一亿技术人

来源:CSDN资讯

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月21日
下一篇 2020年7月21日

相关推荐