UNIX系統提供了許多內建的編輯器。在本節中,我將介紹最流行的編輯器,並展示使用它們的基本操作。 尤其是vim和emacs擁有很多命令和插件,你可以花上多年時間,只是涉及它們的皮毛。
ed
ed是原始的UNIX文本編輯器,也是最基本的編輯器。然而,很少有人使用它,事實上,大多數人可能從來沒用過。
使用ed命令開始它。 這將啟動一個交互會話。 進入寫模式後,輸入一行上的 a,然後按enter。 然後輸入你想要的內容,完成後,在一行上只需輸入一個點(.)然後按 enter。
現在輸入w,然後跟上文件名以將緩衝區保存到文件中。 它將返回寫入文件的字節數。
然後,按 q退出。
你可以通過使用文件名調用ed來編輯文件:ed <文件名>。 當你按下 a 來添加時,你將向文件的底部添加內容。
在ed會話中,你可以輸入,p來打印當前文件的內容。
vi / vim
vim是一個非常受歡迎的文件編輯器,尤其是在程序員中間。它有著很多活躍的開發者,並經常更新,有很大的社區支持。甚至還有vim大會!
現代系統中的 vi只是指的是 vim,表示vim改進版。
透過在命令行上運行 vi 來啟動它。
你可以在調用時指定文件名以編輯該文件:
vi test.txt
你必須知道Vim有2種主要模式:
- 命令模式(或正常模式)
- 插入模式
當你啟動編輯器時,你處於命令模式。 你不能像在基於GUI的編輯器中那樣輸入文本。 你必須進入插入模式。 你可以按 i 鍵進入插入模式。 一旦這樣做,編輯器底部會顯示-- INSERT --字樣:
現在你可以開始輸入並填充屏幕以顯示文件內容:
你可以使用方向鍵來移動文件,也可以使用 h - j - k - l 鍵。h-l 是左右移動,j-k 是上下移動。
編輯完成後,你可以按 esc 鍵退出插入模式,並返回到命令模式:
此時,你可以在文件中導航,但無法在文件中添加內容(要小心按鍵,因為它們可能是命令)。
現在你可能想要做的一件事是 保存文件 。你可以通過按 :(冒號),然後按 w 來保存。
你可以通過按 : 然後按 w 和 q 來 保存並退出::wq
你可以通過按 : 然後按 q 和 ! 來 不保存並退出: :q!
你可以通過進入命令模式並按 u 來 撤銷 和編輯。你可以通過按 ctrl-r 來 重做(取消撤銷)。
這些是使用Vim的基本操作。 從這裡開始進入一個我們無法在這個簡單介紹中深入探討的領域。
我只會提及那些能讓你開始使用Vim的命令:
- 按
x鍵刪除當前高亮顯示的字符 - 按
A鍵將光標移至當前選定行的末尾 - 按
0鍵跳轉到行的開始位置 - 移動到單詞的第一個字符,按
d或w鍵刪除該單詞。如果按e而不是w,則保留下一個單詞前面的空格 - 在
d和w之間使用一個數字刪除多個詞。例如,使用d3w可以向前刪除3個詞 - 按
d,然後按d鍵刪除整行。按d鍵,然後按$鍵從光標所在位置到該行的末尾刪除整行
要了解有關Vim的更多信息,我推薦閱讀Vim FAQ,特別是運行 vimtutor 命令,它應該已經安裝在你的系統中,並且能夠幫助你開始探索vim。
emacs
emacs 是一個非常強大的編輯器,而且在歷史上被認為是UNIX系統上的編輯器之王。著名的 vi vs emacs 爭論和激烈討論為世界各地的開發人員帶來了無數沒有生產力的小時。
emacs 非常強大。一些人整天都把它當作一個操作系統(參見:https://news.ycombinator.com/item?id=19127258)。我們只討論這裡的一些基本功能。
只需執行 emacs 即可打開一個新的emacs會話:
macOS用戶,稍微停一下。如果你使用的是Linux,沒有問題。但是,macOS沒有使用GPLv3的應用程序,更新到GPLv3的內建UNIX命令也沒有進行更新。雖然現在列出的命令存在一些小問題,但在這種情況下,使用2007年的emacs版本不完全等同於使用經過12年改進和變化的版本。Vim不會出現此問題,因為它是最新的。為了解決這個問題,運行
brew install emacs,運行emacs時將使用來自Homebrew的新版本(確保你已安裝了Homebrew)。
你還可以通過調用 emacs <文件名> 來編輯現有的文件:
你可以開始編輯,編輯完成後按 ctrl-x ,然後按 ctrl-w。然後你確認目錄:
Emacs會告訴你文件已經存在,問你是否應該覆蓋它:
回答y,你將收到一個成功的確認消息:
按 ctrl-x,然後按 ctrl-c 來退出Emacs。或者按 ctrl-x,然後按 c(按住 ctrl 鍵)。
這只是有關Emacs的一點皮毛知識。我無法在這個簡單介紹中寫出更多。我鼓勵你打開Emacs,按 ctrl-h r 打開內建手冊,按 ctrl-h t 打開官方教程。
nano
nano是一個更適合初學者的編輯器。
使用 nano <文件名> 來運行它。
可以直接輸入字符到文件中,不必擔心模式問題。
你可以按 ctrl-X 退出而不進行編輯。如果你編輯了文件緩衝區,編輯器會要求你確認並保存編輯內容,或放棄它們。底部的幫助信息顯示了可讓你在文件中工作的鍵盤命令:
pico和nano差不多,只是nano是GNU版本的pico,因為在歷史上某個時刻,pico不是開源的,為了滿足GNU操作系統的許可需求,才創建了nano克隆版本。