非程式員的GNU Emacs使用心得…… Shell Mode 第3集 命令列編輯

來源:互聯網
上載者:User

bash 帶來了命令列編輯,無數的人有福了

是啊。真的是這樣。命令列編輯實在是我們日常工作中須臾不可離開的好朋友。你們現在還能夠想象每天工作在一個沒有命令列編輯的古老的 Bourne Shell會是一個什麼感覺嗎?往事不堪回首啊。。。而且不是很遙遠啊,就在兩三年前,一些比較早期的作業系統,我不是說 Linux,在預設安裝的情況下,是不包括可愛的 Bourne Again Shell的。

這還不是問題的全部,即使是現在,對於一些自己實現命令解析的應用程式,例如 WebSphere MQ 的命令解釋程式 MQSC,在一些沒有 GNU readline 的系統內容裡面,比如說預設安裝的 HP-UX 上面,都將是一件非常痛苦的體驗。。。 當然,你也可能沒有機會接觸到 WebSphere MQ 這樣的程式,不過沒什麼,你可以自己編譯一套不包含 GNU readline 的 Python 安裝,我想體驗上的差別不會很大。

現在你們開始有一點點感覺到我們工作的辛苦了吧。這和在自己專屬的的,配置完備的,武裝到牙齒的機器上工作是完全不同的一種體驗,

然而,困難還沒有就此結束。我們還有一些遠在萬裡之外的機器。這樣的機器通過非常緩慢的網路連接進來,操作一台慢速連線的機器更是一次痛苦的體驗。想想你的每一次按鍵都要一兩秒鐘才會在螢幕上顯示出來,想想你的每一次返回修改都不能及時確定游標究竟移動了多少,想一想這樣的環境下你要工作一整天,當然還有明天,還有明天的明天。。。有什麼感覺?要不要順便再想一想與此同時還要工作在一個沒有 GNU readline 的命令解釋程式中。。。。。。

我在這裡不是在講鬼故事。這就是我們每天真實的工作環境。這也就是為什麼我會選擇使用 GNU Emacs的 shell-mode。其中核心的一個原則就是——不能把命令列的控制權交給 Shell。我們要自己掌握這個控制權,或者說讓 Emacs掌握這個控制權。

當我們使用 shell-mode的時候和我們使用 terminal的時候最明顯的區別就在於terminal那端的 Shell再也看不見我們的每一次按鍵了。其實以前的這種 terminal 的通訊方式不能不說是 Unix的一個小小的曆史遺留的問題。現在終端是有足夠強大的處理能力的。所以,我們把這個權利收回了,從此之後,整個世界,安靜了。

當我們在 Emacs的 shell-mode裡面輸入命令,我們的每一次按鍵,都只是輸入到 Emacs的 buffer裡面,這個時候對於遠端的 Shell來講,我們的按鍵是不存在的。一切都在 Emacs裡完成,一切都在 Eamcs裡處理。當一條完整的命令最終編輯完成以後,再將這條命令一次性的發送給遠端的 Shell。

就用這樣一種模式工作,我們在前面提到的那些個困難,就全部都迎刃而解了。不論是面對沒有 GNU readline 的第三方命令解釋程式,還是面對遙遠的美利堅花旗國的那些慢速連線的機器,或者是其中的任意組合,由於我的所有的工作,每一行命令,都在本地的 GNU Emacs裡面編輯完成,然後才發送給遠端的 Shell,所以以上的種種問題,對我來說都不存在了。

對於沒有 GNU readline 的命令解釋程式,由於我的所有的命令都是輸入給 Emacs 的 shell buffer的,而且 Emacs具有非常優秀的文字編輯功能,我可以隨心所欲的編輯我的命令,對於下面的那個命令解釋程式,由於我只是把最終完成的結果發送給他,他有沒有 readline,他能不能作命令列編輯,對我來說無所謂了。

對於美利堅花旗國的慢速機器,同樣由於我的所有的命令都是輸入給 Emacs 的 shell buffer,而不是每敲一次按鍵都要和美利堅花旗國進行一次互動,GNU Emacs 是安裝在我的本地機器上的,所以串連的速度快慢對我來說也影響不大了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.