編輯器之神VIM 總結 基礎部分
概要
vim和emacs,一個是編輯器之神,一個是神一樣的編輯器。他們被稱是UNIX系統下的倚天和屠龍,“二者得一,可得天下!”
幾年前,自從筆者學會了VIM,就再也不想回到以前windows系統下的notepad、word、ue等編輯器了;甚至程式設計的時候,都不習慣使用其它的IDE了,如visual studio、visual c++ 6.0、source insight、eclipse等等。原因很簡單,VIM高效很多!它非常適合程式設計師使用,學會VIM之後,能讓你在程式設計時,雙手一直遊離在鍵盤之上,而不需要移開去操作滑鼠。
接下來,我們就開始一起學習VIM。特別注意:紙上得來終覺淺,絕知此事要躬行。
PART-01 vim準備工作
安裝vim,通過命令如下:
$ sudo apt-get install vim
安裝完畢之後,即可通過下面的模板去編輯檔案:
vim [options] [file ..]
示例:
vim file.txt
表示用vim開啟/編輯file.txt檔案
說明:
options – 這項是編輯引數,可有可無。常用的有以下引數
-b : 以二進位制的形式開啟/編輯檔案。
-R : 以只讀的方式開啟/編輯檔案。
-S : 開啟vim書籤。
file – 這項是要編輯的檔名。vim支援同時編輯多個檔名:多個檔名時,請以空格分開。
有了上面的基礎之後,我們在當前目錄下新建一個file.txt,並用vim開啟編輯。並繼續後續的學習內容。
新建file.txt命令:
$ touch file.txt
vim開啟/編輯file.txt命令:
$ vim file.txt
開啟file.txt之後,顯示如下:
若要退出,輸入
:q
若要儲存退出,輸入
:wq
若要強制退出,不儲存,輸入
:q!
PART-02 vim常用模式
下面的內容介紹vim的幾種常用的模式。在詳細介紹之前,我們先建立一個大致的概念:vim包括許多模式,不同模式有不同的功能,如“插入模式”讓使用者輸入;“命令模式”>讓使用者執行儲存/退出等等命令。這裡,我們主要介紹vim的3種模式,其它模式後續再做說明!
vim包括主要包括3種模式:
插入模式
– 輸入文字,目的是讓使用者輸入文字。進入插入模式之後,vim就進入輸入狀態;使用者就能輸入文字。
編輯模式
– 也稱為正常模式,目的是讓使用者執行編輯操作。比如在編輯模式,使用者按“j”(敲擊一次字母j),當前的輸入游標會移動到下一行;使用者按“yy”(敲擊兩次y按鍵)拷貝一行文字。
命令模式
– 目的是讓使用者輸入命令。例如,在命令模式下,使用者輸入“w”表示儲存文字。
在下面的內容中若有標記”(常用)”的,務必要使用熟練;其它的可以後續慢慢掌握。
PART-02.01 插入模式
插入模式的作用就是讓使用者插入文字。但是用vim開啟檔案之後,檔案模式是“編輯模式”,而不是“插入模式”;所以,使用者要進入“插入模式”。可以通過以下方式進入:
i 在游標前插入 (常用)
I 在行首插入 (常用)
a 在游標後插入 (常用)
A 在行末插入 (常用)
o 在下一行插入,這裡是小寫字母o。 (常用)
O 在上一行插入,這裡是大寫字母o。 (常用)
s 刪除當前字元後插入
S 刪除當前行後插入
cc 刪除當前行後插入
c和方向鍵組合 刪除後插入。例如,依次輸入”c”、”l”表示刪除下一個字元後插入;依次輸入”c”、”j”表示刪除下一行之後插入。
例如,開啟file之後,按“o”進入插入模式。進入插入模式後,視窗的左下角會顯示“– INSERT –”,表示已經進入插入模式。
接著,我們可以輸入文字。如下圖:
如果要退出“插入模式”,按“ESC”即可。退出插入模式後,視窗的左下角會顯示“– INSERT –”會消失。
PART-02.02 編輯模式
編輯模式是讓使用者執行編輯操作。比如上/下/左/右移動輸入游標,複製/貼上文字,刪除文字等等。
在所有模式中,編輯模式是使用最多的。因此:一,每次用vim開啟文字,預設進入編輯模式!二,每次按“ESC”鍵從其它模式退出時,都會返回到編輯模式。它的進入方式也很簡單:一,重新vim開啟檔案。二,在其它模式下按“ESC”返回。
–移動游標命令–
h 左移動游標 (常用)
l 右移動游標 (常用)
j 上移動游標 (常用)
k 下移動游標 (常用)
w 以單詞(word)為單位向後移,移動到後一個單詞的起始處。 (常用)
e 以單詞(word)為單位向後移,移動到當前單詞的結尾處。 (常用)
b 以單詞(word)為單位向前移,移動到前一個單詞的起始處。 (常用)
f<charater> charater為字母或者數字,表示向後查詢charater,並將游標移動到charater處。(常用)
F<charater> charater為字母或者數字,表示向前查詢charater,並將游標移動到charater處。(常用)
上面的命令大都可以帶一個數字字首或者一個數字範圍,比如:
5j 將游標上移動5行
5w 將游標後移5個單詞
[Ctrl]+f 螢幕向下移動一頁,相當於 [Page Down]按鍵。 (常用)
[Ctrl]+b 螢幕向上移動一頁,相當於 [Page Up]按鍵。 (常用)
[Ctrl]+d 螢幕向下移動半頁
[Ctrl]+u 螢幕向上移動半頁
+ 游標移動到非空白字元的下一列
- 游標移動到非空白字元的上一列
n<space> n表示數字,<space>表示空格鍵。n<space>表示游標向後移這一行的n個字元。 (常用)
0或[Home] 移動到這一行的開頭。(常用)
$或[End] 移動到這一行的結尾。(常用)
H 游標移動到本屏首行的第一個字元
M 游標移動到本屏中央行的第一個字元
L 游標移動到本屏末尾行的第一個字元
G 游標移動到本文件的最後一行。(常用)
nG n為數字,nG表示該文件的第n行。例如,12G 表示移動到本文件的第12行。(可配合 :set nu)。(常用)
gg 移動到該文件的首行,相當於 1G。 (常用)
ngg 等價於nG
n<Enter> n為數字,游標向下移動 n 行。(常用)
–編輯文件命令–
dd 刪除一行 (常用)
yy 拷貝一行 (常用)
p 貼上文字(小寫p,表示在當前游標之後貼上) (常用)
P 貼上文字(大寫P,表示在當前游標之前貼上) (常用)
x 刪除當前字元 (常用)
X 刪除前一個字元 (常用)
上面命令大多都可以帶一個數字字首或者一個數字範圍,比如:
5dd 從當前行開始刪除5行 (常用)
5yy 從當前行開始拷貝5行 (常用)
1,3d 刪除1至3行
1,3y 拷貝1至3行 (.代表當前行,$代表最後一行)
u 撤銷上一個動作引起的改變。(常用)
[Ctrl]+r 恢復上一個動作引起的改變。(常用)
. 這是小數點,作用是重複上一個動作。例如,如果你想要重複進行復制或者刪除等操作,暗下小數點”.”就可以了。 (常用)
’ 這是單引號,作用是跳轉到上一次的操作行。(常用)
–搜尋文件命令–
在編輯模式下,可以進行搜尋和替代。替代涉及到命令模式,後續章節再詳細說明。
/word 向後搜尋“word”。例如,要在檔案內搜尋“skywang”,就輸入 /skywang 即可。 (常用)
?word 向前搜尋“word”。
n 這是字元鍵n,表示“重複前一個搜尋動作”。例如,我們剛剛在檔案內輸入 /skywang 進行搜尋skywang;接著,按n就會不停的向後查詢。(常用)
N 這是字元鍵N,作用和n相反,表示“反向的重複前一個搜尋動作”。例如,我們剛剛在檔案內輸入 /skywang 進行搜尋skywang;接著,按N就會不停的向前查詢。
這些就是編輯模式下的基本命令。
PART-02.03 命令模式
命令模式是讓使用者輸入命令。例如,通過“:w”儲存文字。
進入方式。在編輯模式下,輸入冒號”:”進入命令模式。然後即可輸入命令。
常用的命令:
:w 儲存文件。
:w! 強制儲存文件。針對開啟只讀文件使用,至於能否儲存成功,跟你對該文件的許可權有關。
:q 退出vim編輯器。
:q! 強制退出。若你修改文件,當不想儲存退出,則可以使用強制退出。
:wq 儲存文件並退出。
:w [filename] 將文件另外為filename,filename是文件名。
:r [filename] 插入“文件filename的內容”插入到當前游標處。
:r! [cmd] 將“linux命令”(cmd是命令名)插入到當前游標出。例如“:! pwd”,表示將當前路徑插入到當前游標處。
:e [filename] 用vim開啟檔案filename,並進行編輯。
:set nu 顯示行號
:set nonu 不顯示行號
除了上面3種常用的模式之外,vim還有“選擇模式”、“替換模式”和“滑鼠模式”。
下面介紹以下“選擇模式”和“替換模式”,而“滑鼠模式”不做介紹,筆者覺得它與vim的精神相悖,因為使用vim就是為了遠離滑鼠。
PART-03 vim其它模式
PART-03.01 選擇模式
選擇模式的主要作用是進行區域性的選擇,然後進行刪除或複製操作。這個模式也比較常用,它支援任意區域操作。
模式進入方式:在編輯模式下,按 “[v]” 或 “[V]” 或 “[Ctrl]+[v]”。
[v] – 以字元為單位,進行選擇
[V] – 以行為單位,進行選擇
[Ctrl]+[v] – 以塊為單位,進行選擇
下面,以下面的文字visual.txt為例,來介紹選擇模式的使用。
Lesson 2 SUMMARY
1. To delete from the cursor up to the next word type: dw
2. To delete from the cursor to the end of a line type: d$
3. To delete a whole line type: dd
4. To repeat a motion prepend it with a number: 2w
5. The format for a change command is:
operator [number] motion
where:
operator - is what to do, such as d for delete
[number] - is an optional count to repeat the motion
motion - moves over the text to operate on, such as w (word),
$ (to the end of line), etc.
6. To move to the start of the line use a zero: 0
7. To undo previous actions, type: u (lowercase u)
To undo all the changes on a line, type: U (capital U)
To undo the undo's, type: CTRL-R
目的:刪除 “The format …” 到 “zero”之間的內容。
可以使用以下操作:
01, 用vim開啟文字visual.txt。使用以下命令:
$ vim visual.txt
02, 將游標移動到”The format …”所在行。有許多方法,下面介紹常用的幾種:
方法一:不斷的按j,移動到下一行,直到移動到”The format …”所在行為止。
方法二:按8j,向下移動8行。
方法三:按9gg或者9G,直接跳轉到第9行。(可以先通過”:set nu”命令顯示行號)
03, 按數字”0”,移動到”The format …”所在行的起始為止。
04, 按字母”l”,移動到”The format …”的字母”T”處。
05, 按字母”v”進入選擇模式。此時,編輯器的左下方顯示“– VISUAL –”,表示進入選擇模式成功。
06, 按字母”j”移動到”zero”所在行。
07, 按”$”將游標移動到”zero”所在行的模式。
08, 按字母”h”移動到”zero”的字母”o”處。
至此,選擇完成!如下圖。
09, 按字母”d”,執行刪除操作。即可刪除 “The format …” 到 “zero”之間的內容。
若要退出”選擇模式”,按”ESC”即可。
PART-03.02 替換模式
替換模式的作用就是進行替換。
進入方式:在編輯模式下,按 “r” 或 “R” 。
[r] – 單個字元替換,只替換當前字元,替換之後返回編輯模式。例如,要將當前游標所在字元替換成”H”,則依次輸入”r”、”H”,就可以了。
[R] – 完全的替換模式,替換了當前字元後,會自動將游標移到下一字元…直到使用者按”ESC”鍵退出”替換模式”。
若要退出”替換模式”,按”ESC”即可。
後面會整理VIM的高階內容和筆者使用心得,以便更加有效的進行工作!
參考文獻
01, Vim使用者操作指南
02, 《鳥哥的 Linux 私房菜》
03, 《Vim使用者手冊中文版》
相關文章
- 編輯器之神:VIM 的基本操作
- 隨處可編輯的編輯器之神VIM
- 『學了就忘』vim編輯器基礎 — 94、vim編輯器介紹
- 使用 Vi/Vim 編輯器:基礎篇
- vim 讓人愛不釋手的編輯器之神
- 『學了就忘』vim編輯器基礎 — 97、vim使用技巧
- linux基礎命令——文字編輯vimLinux
- Linux基礎命令---vim文字編輯Linux
- vim編輯器
- LINUX VIM編輯器Linux
- CentOS vim編輯器CentOS
- vi/vim編輯器
- vim編輯器的使用
- 增強 Vim 編輯器,提高編輯效率
- VIM編輯器的巨集操作
- Linux編輯器Vim簡介Linux
- CSDN編輯器的使用總結
- 『學了就忘』vim編輯器基礎 — 96、末行模式中的相關命令模式
- 『學了就忘』vim編輯器基礎 — 95、命令模式中的相關命令模式
- 03_vim編輯器的使用
- Vim編輯器常用命令
- Vim 編輯器常用命令
- Git清空VIM編輯器內容Git
- Linux系統中的Vim編輯器Linux
- centos7安裝vim編輯器CentOS
- Linux– 檔案編輯器 vi/vim(1)Linux
- vim 列編輯模式模式
- Linux 筆記分享五:VIM 文字編輯器Linux筆記
- 機器學習基礎總結機器學習
- Linux編輯器Vim常用命令講解Linux
- 【總結】五款頂級Python程式碼編輯器!Python
- 富文字編輯器:UEditor與wangEditor 初使用總結
- vi和vim的編輯模式模式
- 如何安裝和使用純文字編輯器 vi/vim
- 在 Linux 上把 Vim 配置為預設編輯器Linux
- 火爆Github的這個編輯器能超越Vim麼?Github
- Linux系列開坑記(二)-神的編輯器VimLinux
- VIM 命令總結
- 【vim】常用總結