天天看點

VIM tutor學習小結

VIM tutor學習小結

以下指令均在Normal模式下執行,如不确定目前模式,按下

<ESC>

回到Normal模式。

使用

ESC

撤銷一個不想輸入或部分完整的指令。

VIM的進入和退出

進入Vim編輯器(從指令行提示符):

vim filename

退出Vim編輯器:

<ESC>

:q!

(放棄所有改動)

      或者:

<ESC>

:wq

(儲存改動)

移動光标

  ↑

  k

←h  l→(小寫L)

   j

   ↓

撤銷

u

:撤銷最後執行的指令

U

:撤銷對整行的修改

Ctrl

+

R

:撤銷之前的撤銷指令

删除類指令

删除光标所在位置字元:

x

d motion

d     – 删除操作符

motion   --操作符的操作對象

一個簡短的動作清單:

w    – 從目前光标位置至下一個單詞的起始處,不包括第一個字元

e    – 從目前光标位置至單詞末尾,包括最後一個字元

$    – 從目前光标位置至目前行末

dd

:删除目前行

使用計數指定動作

在動作前輸入數字n會使它重複n次

operator [number] motion

例如:

2w

:光标向前移動兩個單詞

3e

:光标向前移動到第三個單詞末尾

:光标移至目前行行首

2dd

:删除目前行開始的兩行

置入類指令

i

:在光标前插入文本

a

:在光标後插入文本

A

:在行末添加文本

y

:複制文本

yw

:複制光标處至詞末

p

:粘貼文本于光标之後。如果文本是一整行,則至于目前行的下一行

o

:在光标下方打開新的一行

O

:在光标上方打開新的一行

替換類指令

r char

:将光标所在位置字元替換為char

r    – 替換操作符

char   – 要替換的字元

R

:連續替換多個字元

更改類指令

c [number] motion

動作參數同删除類指令。

定位及檔案狀态

Ctrl

+

g

:顯示目前光标所在行位置和目前檔案狀态資訊

G

:跳轉到檔案最後一行

gg

:跳轉到檔案第一行

nG

:跳轉到第n行

:移動光标到行首

$

:移動光标到行末

e

:光标移動到單詞末尾

b

:光标移動到詞首

w

:光标移動到下一個單詞詞首

搜尋類指令

/string

:向前查找string字元串

/string\c

:僅在一次查找時忽略大小寫

?string

:向後查找string字元串

n

:同一方向上查找上一次的字元串

N

:相反方向查找上一次的字元串

Ctrl

+

O

:回退到之前位置,可通過重複按回退多步

Ctrl

+

I

:(大寫i)跳轉到較新的位置

:set ic

(or

:set ignorecase

):ignore case,搜尋時設定忽略大小寫

:set noic

(or

:set noignorecase

):禁用忽略大小寫

:set is

(or

:set incsearch

):查找字元串時顯示部分比對

:set nois

(or

:set noincsearch

):禁用顯示部分比對

set hls

(or

:set hlsearch

):highlight,比對項高亮顯示

:nohlsearch

(or

:nohls

):取消高亮

配對括号查找

%

:配對括号(用于查找不配對的括号),光标應停留在"("、"["、"{"、")"、"]"、"}"處

替換指令

:s/old/new

:替換目前行第一個出現的

old

字元串為

new

:s/old/new/g

:替換該行中所有的

old

字元串為

new

:#,#s/old/new/g

:替換若幹行中所有

old

字元串為

new

#

為首尾兩行的行号

:%s/old/new/g

:替換檔案中每一個比對串

%s/old/new/gc

:替換檔案中每一個比對串,并對每一個比對串提示是否進行替換

在VIM内部執行外部指令

:!cmd

:執行外部shell指令,

cmd

為指令名稱

:w newfile

: 儲存目前檔案到newfile檔案中

v

motion

operator

:按

v

進入可視模式,選擇若幹行進行操作

:r file

:在光标處插入file檔案中的内容,file也可以是外部指令的輸出(如:

:r !ls

?

?

?

?

?

拖延是病(つД`)ノ

上一篇: vim 筆記

繼續閱讀