vim 入門筆記

前言

本文的初衷shell

從知道 vim 開始我就有心學習並嘗試過幾回,每次都是暫時的心血來潮,最終所有不了了之,就連最基本的 vimtutor 我都是學個兩三節就半途而廢,因此此次乾脆寫篇文章,利用幾回學習把這篇文章完善起來。既方便本身堅持學習記錄,又方便在以後使用中查看和複習。vim

若是正在看這篇文章的你已是個老手,或者已經完整練過屢次 vimtutor ,那麼很遺憾本文並不會對你有更多的幫助。windows

安裝

Windows 安裝 Git Bashbash

Linux 和 MacOS 無需安裝app

單詞

Vim 中的快鍵鍵都是有語義的,若是瞭解下面這些單詞,相信你記住快捷鍵也不是什麼難事。編輯器

quit學習

write/readui

yank(複製)插件

paste命令行

delete

change

find

word

forward/backward

up/down

insert/append

do/undo/redo

replace

vim 中的模式與模式切換

Vim 有多種模式,分別是:

  • 正常模式 (normal)
  • 插入模式 (insert)
  • 冒號模式 (或者叫命令模式 command)
  • 可視模式 (visual)

啓動 Vim (在終端輸入 vim <回車>)後,並不能直接輸入字符,vim 默認處於「正常模式」。

  1. 正常模式

「正常模式」通常用於瀏覽文件,也包括一些複製、粘貼、刪除等操做。擊鍵時通常的鍵/鍵組合會被當成功能鍵,而不會鍵入對應的字符。

在此模式下,能夠經過鍵盤在文本中移動光標,移動範圍從小到大是字符、單詞、行、段落和屏幕。

提示:不論位於什麼模式,按下 <Esc> 鍵(有時須要按兩下)都會進入「正常模式」。

  1. 插入模式

「正常模式」下按i I a A鍵,會進入「插入模式」。

在「插入模式」下,擊鍵時會寫入相應的字符。

  1. 命令模式

「正常模式」下按 :(冒號)鍵,會進入「冒號模式」。

在「冒號模式」下能夠執行一些輸入並執行一些vim或插件提供的指令,就像在 shell 裏同樣。這些指令包括設置環境、文件操做、調用某個功能等等。

  1. 可視模式

「正常模式」下按 v V <Ctrl>+v,均可以進入「可視模式」。

在「可視模式」下,按方向鍵選擇內容。

vimtutor 學習整理

注意:

後文中帶尖括號的描述表示鍵盤按鍵,好比 <回車> 是指回車按鍵。

在終端(我這裏在 windows 下使用的 Gitbash)輸入 vim <回車> 便可進入 Vim 編輯器;

輸入 vimtutor <回車> 便可進入 vim 教程。

輸入 vim 文件名 <回車> 便可進入 Vim 編輯器編輯該文件。

此時編輯器處於「正常模式」,也叫「normal 模式」。

咱們稍後提到時再作介紹。

提示:按下 <Esc> 鍵,會回到「正常模式」或者撤消一個不想輸入的命令。

1

1.1 移動光標

h (左) j (下) k (上) l (右)

請隨意按下字母瞭解如何移動光標。

1.2 Vim 的退出

<Esc> :q! 丟棄修改並退出

<Esc> :wq 保存修改並退出

提示:<Esc> 鍵不是必須的,只是爲了確保當前處於「正常模式」。

1.3 文本編輯之刪除

x 鍵刪除一個字符

將光標移動至某個單詞的起始處,按 dw 刪除一個單詞(英文)

dd 刪除一整行

d$ 會從當前光標處刪除至行末

提示: 輸入 d 以後,字母 d 會出如今屏幕的右下角,等待接下來輸入的命令,此時能夠按 <Esc> 撤銷。

1.4 文本編輯之插入

i 鍵在光標所在處進入「插入模式」

此時左下角會出現「-- 插入 --」或者「-- INSERT --」的字樣,表示當前處於「插入模式」。

I 鍵進入「插入模式」,同時光標會跳到所在行的行首。

此時能夠輸入內容,也能夠選擇按 <Esc> 鍵返回到「正常模式」。

提示:注意大小寫,在 vim 中不少字母的大小寫有着不一樣但類似的功能。

1.5 文本編輯之添加

輸入 a 能夠在光標後進入「插入模式」

輸入 A 能夠在光標所在行的行末進入「插入模式」

提示:a i I A 都會帶您進入插入模式,唯一的區別在於字符插入的位置。

2

2.1 關於命令和對象

前文中咱們學習的命令都是 d 和某個動做一塊兒構成的。 好比 dw 表示刪除該單詞;d$ 表示刪除至行末。

格式以下: d motion

d - 刪除操做符

motion - 操做符的操做對象

介紹幾個簡單的動做:

w - 從當前光標當前位置直到下一個單詞起始處,不包括它的第一個字符。

e - 從當前光標當前位置直到單詞末尾,包括最後一個字符。

$ - 從當前光標當前位置直到當前行末。

提示:在「正常模式」下僅按表明相應動做的鍵而不使用操做符,會看到光標的移動正如上面的動做列表所描述的同樣。

2.2 使用計數指定動做

2w 使光標向前移動兩個單詞

3e 使光標移動到第三個單詞的末尾

0 使光標移動到行首(^ 符號也能夠作到這一點,只是按起來沒有 0 方便)

提示:如今你必定也能夠聯想到 2h 就表示光標向前移動兩個字符,3j 就表示光標向下移動三行等等;你能夠任意組合來練習。

提示:輸入數字時你會發現右下角也出現了相應的數字。

2.3 使用計數來刪除更多

格式以下: d number motion

d2w 或者 2dw 刪除兩個單詞

d2d 或者 2dd 刪除兩行

2.4 撤銷類命令

u 撤銷上一操做

U 撤銷對整行的操做

<Ctrl> r 反撤銷(windows)

3

3.1 置入類命令

p 粘貼

使用 dd 命令刪除一整行內容,而後將光標移動到想要粘貼的位置 上方,輸入 p 將該行粘貼置入

3.2 替換類命令

將光標移動到想要替換的字符前,輸入 r 回車,接着輸入想要的字符,就會把光標處的字符替換。

R 鍵回車進入「替換模式」能夠連續替換多個字符。

提示:「替換模式」與「插入模式」類似,不過每一個輸入的字符都會刪除一個已有的字符。

3.3 更改類命令

cw 改變文本直到一個單詞的末尾

拆開來看 cwc 表示修改,w 表示一個單詞

注意:cw 命令會刪除光標處至該單詞末尾的字符,並直接進入「插入模式」。

提示:修改好內容後記得按 <Esc> 鍵來返回「正常模式」。

3.4 使用 c 更改更多

更改類操做符的工做方式跟刪除類一致。操做格式是:

c [number] motion

c$ 表示從光標處開始刪除至行末並進入「插入模式」。

4

4.1 定位及文件狀態

<Ctrl> g (Mac)顯示狀態信息行,顯示的內容是當前編輯的文件名和文件中光標位置。

windows 下的 Gitbash 在編輯器下方一直顯示當前光標所在行的信息。

G 跳轉到當前文件最後一行

gg 跳轉到當前文件第一行

行號 G 跳轉到指定行

4.2 搜索類命令

/ 要搜索的字符串 <回車> 光標會跳轉到搜索的此字符串前

? 要搜索的字符串 <回車> 逆向查找

n 查看下一個搜索的匹配項

N 查看上一個搜索的匹配項

<Ctrl> o 回退到最近的一次搜索匹配項的位置

<Ctrl> i 回退到最新的一次搜索匹配項的位置

4.3 配對括號的查找

將光標移動到任意一個 ( { [ ] } ) 處,按下 % 光標會跳轉到另外一個對應的括號處

4.4 替換命令

下方几個命令中 old 表明替換前的詞,new 表示替換後的詞

:s/old/new <回車> 替換光標所在行的第一個匹配串

:s/old/new/g <回車> 替換全行的匹配串

:#,#s/old/new/g <回車> 其中兩個 # 號分別表示替換操做的起始行和結尾行,表示替換隻在這之間進行

:%s/old/new/g <回車> 替換整個文件中的每一個匹配串

:%s/old/new/gc <回車> 替換整個文件中的每一個匹配串以前會詢問是否替換

5

5.1 在 Vim 內執行外部命令

:!外部命令 <回車> 執行外部命令

:!ls 列出所在目錄的文件

提示:

全部的外部命令均可以以這種方式執行,包括帶命令行參數的那些。

全部的 : 命令都必須敲 <回車> 鍵結束。

5.2 保存文件

咱們知道了當前目錄以後,也能夠執行保存命令。

:w TEST 會將當前文件重名爲 TEST 並保存到當前目錄

:!rm TEST 刪除文件

5.3 一個具備選擇性的保存命令

v motion :w fileName

按下 v 鍵,進入「可視模式」,也叫「visual 模式」。

接着移動光標會發現會選中移動過的區域並高亮。

而後按 : 將會看到屏幕底部出現 :'<,'>

接着輸入 w TEST

此時整個命令爲::'<,'> w TEST ,表示將選中內容保存爲命爲 TEST 的文件

5.4 提取和合並文件

:r TEST 將 TEST 文件的內容置入當前文件的當前光標處

提示:還能夠讀取外部命令的輸出。例如, :r !ls 能夠讀取 ls 命令的輸出,並把它放置在光標下面。

6

6.1 打開類命令

o 在當前光標所在行的下方新起一行,並進入「插入模式」

O 在當前光標所在行的上方新起一行,並進入「插入模式」

6.2 附加類命令

輸入 e 可使在光標英文內容中以單詞爲單位跳轉

6.3 複製粘貼文本

使用操做符 y 複製文本,使用 p 粘貼文本

6.4 設置類命令的選項

輸入 :set xxx 能夠設置 xxx 選項。一些有用的選項以下:

'ic' 'ignorecase' 查找時忽略字母大小寫

'is' 'incsearch' 查找短語時顯示部分匹配

'hls' 'hlsearch' 高亮顯示全部的匹配短語

選項名能夠用完整版本,也能夠用縮略版本。

在選項前加上 no 能夠關閉選項: :set noic

7

7.1 獲取幫助信息

按下 <F1> 鍵或者 :help <回車>

連續輸入兩次 <Ctrl> w 能夠切換窗口

7.2 建立啓動腳本

.vimrc 文件

7.3 補全功能

使用 <Ctrl> d 能夠查看可能的補全結果

使用 <Tab> 能夠進行命令行補全(Mac)

請確保 Vim 不是在以兼容模式運行: :set nocp

一些 vimtutor 裏沒提到的命令組合

  • 打開文件,鍵入 gg 將光標移動到文件的第一行,而後鍵入 dG 以刪除其中的全部行或文本。
  • :1,$d 刪除全部行或文本

結語

vim 的使用就像編寫程序同樣,你總要在實踐中去掌握它。好了,如今神器在手,就看能不能熟練使用了。

(完)

相關文章
相關標籤/搜索