不用滑鼠,程式設計師編程竟能如此高效?

csdn 發佈 2020-08-23T21:36:03+00:00

Ubuntu不僅易於安裝,而且易於使用。在此之前,我是Windows用戶,感覺Windows和Ubuntu很相似。

作者 | Matthieu CNEUDE

譯者 | 彎月,責編 | 屠敏

出品 | 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的時候,你

關鍵字: