https://linux.cn/article-8143-1.html
對一個程序員來說,選擇一個文本編輯器是一件非常重要的事。因為不同編輯器之間有著不少的差異:圖形界麵或者非圖形界麵、不同的快捷鍵、不同的編程語言支持、不同的插件以及自定義設置等等。我建議不是去搜索最棒的編輯器,而是去選擇最適合你的習慣且最適應你的任務的那一個。假如你打算在一個團體中工作,那麼最好和你的共事者選擇一樣的編輯器。這樣的話,一旦你在使用中遇到問題,你就可以去向他們尋求幫助。
這正是我在幾年之前開始使用 Vim 的原因。通常來說,Vim 會被置於傳說中的 Emacs 的對立麵。我承認我對 Emacs 知之甚少,但是對於它倆,你需要知道的是它們都可以被深度定製,並且在初學時也都非常令人困惑。這個教程並不會介紹有關 Vim 的所有內容,而是將介紹一些基礎以使你在最初就能正確使用它,隨後還會展示一些小技巧,借此(希望能)讓你有能力自己去探索學習。
Vim 一詞來源於 “Vi IMproved”。Vi 是一個被廣泛安裝於 Unix 係統的非圖形界麵文本編輯器,並且它也被默認安裝在了 Linux 係統中。Vim 是這個原始編輯器的增強版,但是不同於 Vi,並不是每個發行版都默認安裝了它。
安裝
在 Ubuntu 中可以使用如下命令來安裝 Vim:
sudo apt-get install vim
如果你已經對某些插件有了興趣,使用以下命令:
sudo apt-cache search vim
這命令將給你輸出一個很長的和 Vim 有關的包列表。在這之中,有針對不同編程語言的工具,有插件管理器,等等。
在這係列教程中,我將會在 Ubuntu 上使用最新版的 Vim(7.3.154,LCTT 譯注:現在最新版為 8.0)。當然你也可以使用其它任何版本。
熱身
在終端輸入 vim
命令,你將會看到一個非常棒的歡迎界麵。
(LCTT 譯注:看到了歡迎界麵中那行“Help poor children in Uganda!” 了嗎?)
如果你之前從未使用過 Vi 或者 Vim,那麼你很可能甚至不知道該怎麼退出它... 是的,這是事實。任何你常用的快捷鍵在 Vim 中都將失去原有的效果。(LCTT 譯注:網上有個流傳的笑話——“如何製造亂碼”,“讓新手退出 vi”)
首先,要使用任何命令式的功能,像保存save或者退出exit,你都先得輸入一個冒號(:
)。保存是 :w
而退出是 :q
。如果你想不保存文件就退出,那麼就要使用強製退出命令 :q!
。Vim 中非常棒的一點是你不需要分開輸入各個命令,換言之,如果你想保存然後退出,你就可以直接使用 :wq
。
現在,我們退出 Vim 再打開一個文本文件。為此,你隻需把想要編輯的文件名加在命令後麵即可:
vim [文本文件名]
一般而言,當你打開一個文本文件,你將會處在查看模式。這使得 Vim 與眾不同並且最初會讓人感到困惑。Vim 主要由兩種模式構成:查看模式和編輯模式。查看模式用於查看內容並且使用一些命令。想要進入編輯模式,隻需按 i
鍵進行插入insert或者 a
鍵進行添加add。想要返回到查看模式或者進行命令式功能的操作,按 Escape
鍵即可。插入insert和添加add的差異僅僅在於你是想在光標位置之前還是在光標之後進入編輯模式並進行文字輸入。要想徹底地明白,你應該親自去嚐試一下。我的建議是:僅在行尾使用添加add,而在其它時候使用插入insert。
(LCTT 譯注:此段落中“查看模式”原文是 “visual mode”,疑為“view mode”,在此模式下可以查看文本,但是不能進行編輯;而“visual mode” 是編輯模式的一種,可以按 v
鍵進入,然後就可以用方向鍵從當前光標位置開始進行選擇,並以反白的視覺效果顯示,通常選擇後可以按 y
進行複製、按 d
進行剪切等操作。此外, 本文作者的用語並不標準,按照 Vim 自己的用語來說,此處所謂的“查看模式”,應該稱之為“普通模式”,“編輯模式”應該稱之為“插入模式”,不過意思是一致的。)
要想在文本之中移動光標,你通常可以使用鍵盤上的方向鍵,它們無論是在查看模式還是在編輯模式都可以生效。不過,一個真正的純粹主義者將會告訴你使用按鍵 h
向左,j
向下,k
向上,l
向右來(在查看模式)進行移動。
現在你已經明白了如何和簡單地控製 Vim,我們再來更加深入一些。
一些簡單命令
現在你已經熟悉了在正常模式和插入模式之間進行切換,下麵是一些可以在正常模式中使用的命令:
-
x
:刪除一個字符 -
u
:撤銷一個操作(相當與Ctrl+z
) -
dd
:刪除一行內容 -
dw
:刪除一個單詞 -
yy
:複製一行內容 -
yw
:複製一個單詞 -
p
:粘貼一個之前刪除或複製的行或者單詞 -
e
:跳到下個單詞(LCTT 譯注:詞尾)(比單純用方向鍵更快) -
r
:替換一個字母(按r
,鬆開,然後再按新字母)
當然不止這些,不過這些對現在來說已經足夠了。如果你掌握了上麵的全部,你將能你很順熘地使用 Vim 了。
對於那些還想知道更多的人,我再多提一下。你可以在任何這些命令之前加上一個數值,那麼這個命令將被重複執行相應的次數。例如,5x
將在當前行連續刪除 5 個字母,而 3p
將會粘貼 3 次。
高級命令
最後,作為對你自己繼續探索的鼓勵和示例,這裏給出幾個高級且常用的命令:
-
/所搜索的內容
:在文中搜索特定內容 -
:sp 文本文件名
:將屏幕水平分割成上下兩半,新文件展示在另一半。想要在兩側切換焦點,可以使用Ctrl+w
快捷鍵。 -
:vsp 文本文件名
:同上,但是是垂直分割屏幕 -
Ctrl+Shift+C
和Ctrl+Shift+V
:在終端中複製和粘貼文本 -
:! 命令名
:在 Vim 中運行 Vim 外的終端命令,直接發送給 shell。例如,:! ls
將在不退出編輯器的同時,顯示你當前目錄內的文件。
結論
我覺得你現在應該已經有了足夠的準備來開始使用 Vim。你還可以通過安裝各種插件,編輯 ~.vimrc
文件,或者在 shell 中輸入 vimtutor
命令來使用交互式教程以學到更多。
原文發布時間為:2017-01-24
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-27 10:02:10