Vim

*** last update: 2010.11.22 ***
*** refer to: http://zx-1986.blogspot.com/p/vim-tips.html ***

bash~$:vimtutor

[ Insert 模式 ]

Ctrl-T:右縮排
Ctrl-D:左縮排

Ctrl-N:向下查找類似內容進行自動補全
Ctrl-P:向上查找類似內容進行自動補全

Ctrl-X:Omni 自動補全
(按下 Ctrl-X 會進入 Omni 補全模式,底下會出現 ^X mode 字樣)
(在 ^X mode 字樣後,會顯示可以執行的補全命令)
(即按完 Ctrl-X 後,接着壓對應的 Ctrl-? 執行)
(在補全字候選單中,壓 Ctrl-P 或 Ctrl-N 可以上下移動選項)
~ Ctrl-O:根據檔案類型,查找字典檔進行補全
~ Ctrl-F:當前目錄下的文件名稱補全
~ Ctrl-N:根據當前文件內關鍵字補全
~ Ctrl-]:根據標籤補全

>>:右縮排
<<:左縮排

gd:到局部變量的定義
gD:到全局變量的定義

[[:到當前塊起始的 { 處
]]:到當前塊結束的 } 處

x:向後刪除字元

15x:向後刪除 15 個字元

X:向前刪除字元

15X:向前刪除 15 個字元

u:復原上一個修改

U:復原對當前整列(row)的修改

Ctrl-R:取消復原

. :重複上一個動作

dw:刪除遊標所在位置後面的 1 個單字

3dw:刪除遊標所在位置後面的 3 個單字

d$:刪除遊標所在位置後面的整列內容

dd:刪除遊標所在的整列內容

3dd:刪除遊標所在後面 3 列內容(包括遊標所在列)

0:跳到遊標所在列的開頭

$:跳到遊標所在列的結尾

3 + Space:遊標向右移動 3 個字元

3 + Enter:遊標向下移動 3 列

w:從遊標所在往前 1 個單字(到該單字開始處)

2w:從遊標所在往前 2 個單字

e:從遊標所在往前 1 個單字(到該單字結尾處)

2e:從遊標所在往前 2 個單字

p:推出(put)上一次刪出的內容(字元,單字,列,etc.)

r:取代遊標所在字元,按一次 r,再輸入新的字元

R:Replace 模式,取代遊標所在的字元,直到按 ESC 跳回 View 模式

ce:刪除遊標後面的 1 個單字,並進入 Insert 模式

2ce:刪除遊標後面的 2 個單字,並進入 Insert 模式

c$:刪掉遊標後面的整列內容,並進入 Insert 模式

2c$:刪掉遊標後面的 2 列內容,並進入 Insert 模式

Ctrl-G:顯示目前所在檔案的位置

gg:跳至檔案最前端

G:跳至檔案最末端

3G:跳至檔案第 3 列

:3
# 跳至檔案第 3 列

Ctrl-O:跳躍至上一個遊標跳躍的位置

Ctrl-I:跳躍至下一個遊標跳躍的位置

/:搜尋模式,在最下方輸入要搜尋的字,壓 Enter

n:到下一個搜尋點

N:到上一個搜尋點

:set ic
# ignore case when searching

:set hls
# highlight search

:set is
# incremental search

:set no設定
# 關閉該項設定

%:當遊標在 ( [ { 等符號下時,找尋對應的 } ] )

:s/old/new
# 將遊標所在列的 old 取代成 new

:3,30s/old/new/g
# 將第 3 列到第 30 列間的 old 取代成 new

:%s/old/new/g
# 將整個檔案的 old 取代成 new

:1,$s/old/new/gc
# 從檔案第 1 列到最後一列搜尋 old 取代爲 new
# 並在每個取代執行前請使用者進確認

:w TEST
# 將目前編輯的檔案儲存成 TEST

:3,10 w TEST
# 將第 3 列到第 10 列的內容儲存成 TEST

:! ls
# 執行 shell 的 ls 指令

:! rm TEST
# 執行 shell 的 rm 指令,移除 TEST

Ctrl-V
# Visual 的區塊選擇模式,可以用長方形的方式選擇資料

# 在 Visual 模式選取部分內容之後,直接按 :
# 畫面底下會出現 :”
# 輸入 w TEST
# 畫面底下變成 :”w TEST
# 會將剛剛在 Visual 模式選取的內容另存成 TEST

:r TEST
# 讀入外部 TEST 檔案的內容

:r ! ls
# 讀入 ls 指令執行的內容

v
# 進入 Visual 模式,選取部分內容

y
# 將選取的內容複製(yank)

p
# 將複製的內容貼上(paste)

yy
# 複製遊標所在的整列

9yy
# 複製遊標所在向下 9 列

J
# 將游標所在列與下一列的資料結合成同一列

:split
# 水平分割編輯視窗,並在新分割視窗中開啓同一檔案

:split 檔案路徑
# 水平分割編輯視窗,並在新分割視窗中開啓指定檔案

:vsplit
# 垂直分割編輯視窗

Ctrl-W + j/k
# 按一次 Ctrl-W,再按一次 j/k,可以切換下/上編輯視窗

:q
# 離開當前編輯視窗

:vsp ./
# 顯示當前資料夾下的檔案列表

:tab
# Vim 的標籤分頁

# 輸入 :
# 然後按下 Ctrl-D
# 會顯示所有可以在 : 下輸入的 Vim 指令

# 輸入 :e
# 然後按下 Ctrl-D
# 會顯示所有可以在 : 下輸入的 e 開頭的 Vim 指令

# 使用 Tab 鍵可以進行指令補全(Command Line Completion)

:set foldmethod=syntax
# 依據程式語法開啓摺疊模式

zc
# 當遊標停在 { } 間時,摺疊該段程式碼

zo
# 當遊標停在摺疊時,打開該段程式碼

:help
# 在目前編輯的文件中開啓切割視窗,呈現說明文件

:help 命令
# 查詢該命令的說明文件

~/.vimnifo
# 個人 Vim 操作記錄檔

~/.vimrc
# 個人的 Vim 環境設定檔

cp $VIMRUNTIME/vimrc_example.vim ~/.vimrc
# 可以直接複製 Vim 附帶的 vimrc example

:syntax on
:set bg=dark
:set showmode
:set nobackup
:set autoindent
:set number
:set hlsearch

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s