79
vim超基礎入門 Bruce @ CloudOnline 2012/12/14 12年12月14日星期五

008 vim超基礎入門

Embed Size (px)

DESCRIPTION

* 70頁的「在command mode」是筆誤,應該是normal mode才對~ 補充一個不錯的教學:http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html 目標程度與對象: • 只有偶爾ssh到遠端server改東西時才會用 • 把vim當陽春notepad來用的程度 • 目標對象:
1. vim完全新手、linux新手
2. 只是想稍微用順手一點、不會到太進階的人 • 更高級的技巧就請自行研究了,附錄有連結

Citation preview

Page 1: 008 vim超基礎入門

vim超基礎入門Bruce @ CloudOnline2012/12/14

12年12月14日星期五

Page 2: 008 vim超基礎入門

目標程度與對象

12年12月14日星期五

Page 3: 008 vim超基礎入門

目標程度與對象

只有偶爾ssh到遠端server改東西時才會用

12年12月14日星期五

Page 4: 008 vim超基礎入門

目標程度與對象

只有偶爾ssh到遠端server改東西時才會用

把vim當陽春notepad來用的程度

12年12月14日星期五

Page 5: 008 vim超基礎入門

目標程度與對象

只有偶爾ssh到遠端server改東西時才會用

把vim當陽春notepad來用的程度

目標對象:

1. vim完全新手、linux新手2. 只是想稍微用順手一點、不會到太進階的人

12年12月14日星期五

Page 6: 008 vim超基礎入門

目標程度與對象

只有偶爾ssh到遠端server改東西時才會用

把vim當陽春notepad來用的程度

目標對象:

1. vim完全新手、linux新手2. 只是想稍微用順手一點、不會到太進階的人

更高級的技巧就請自行研究了,附錄有連結

12年12月14日星期五

Page 7: 008 vim超基礎入門

超級新手會有的問題

12年12月14日星期五

Page 8: 008 vim超基礎入門

超級新手會有的問題

打開vim了,怎麼不能輸入文字?

可以打字了,要怎麼存檔離開?

怎麼搜尋

耐心看完這份教學,就能學會基礎vim技巧了

12年12月14日星期五

Page 9: 008 vim超基礎入門

分成三篇

土法煉鋼

快速移動

加強技巧

12年12月14日星期五

Page 10: 008 vim超基礎入門

土法煉鋼篇很土,但是你可以編輯、存檔文件了,編輯config檔沒問題

12年12月14日星期五

Page 11: 008 vim超基礎入門

3種常用mode

normal mode

用來下d、dd、^、$等指令

12年12月14日星期五

Page 12: 008 vim超基礎入門

3種常用mode

normal mode

用來下d、dd、^、$等指令

insert mode

在文件內打字

i、a、c等插入指令

12年12月14日星期五

Page 13: 008 vim超基礎入門

3種常用mode

normal mode

用來下d、dd、^、$等指令

insert mode

在文件內打字

i、a、c等插入指令

esc

12年12月14日星期五

Page 14: 008 vim超基礎入門

3種常用mode

command line mode

用來下wq、q!等指令存檔就要靠這個mode

normal mode

用來下d、dd、^、$等指令

insert mode

在文件內打字

i、a、c等插入指令

esc

( ) :別懷疑,就是按下shift+;打一個半型冒號

12年12月14日星期五

Page 15: 008 vim超基礎入門

3種常用mode

command line mode

用來下wq、q!等指令存檔就要靠這個mode

normal mode

用來下d、dd、^、$等指令

insert mode

在文件內打字

i、a、c等插入指令

esc

( ) :別懷疑,就是按下shift+;打一個半型冒號

esc

12年12月14日星期五

Page 16: 008 vim超基礎入門

如何在文件內打字

(關於模式間的切換 可以回頭看看第四張投影片)

就算一直按2也不會鳥你

按下i或a後其實還有很多按鍵會進入insert mode,但這裡就不詳述了

12年12月14日星期五

Page 17: 008 vim超基礎入門

a跟i的差別

記憶法:i=insert    a=append 

12年12月14日星期五

Page 18: 008 vim超基礎入門

a跟i的差別

h e l l o w o r l d

記憶法:i=insert    a=append 

12年12月14日星期五

Page 19: 008 vim超基礎入門

a跟i的差別

← 按下i後h e l l o w o r l d

記憶法:i=insert    a=append 

12年12月14日星期五

Page 20: 008 vim超基礎入門

a跟i的差別

← 按下i後h e l l o w o r l d

h e l l o w o r l d

記憶法:i=insert    a=append 

12年12月14日星期五

Page 21: 008 vim超基礎入門

a跟i的差別

← 按下i後

按下a後 →

h e l l o w o r l d

h e l l o w o r l d

記憶法:i=insert    a=append 

12年12月14日星期五

Page 22: 008 vim超基礎入門

加Shift = 跳到行首/尾插入

h e l l o w o r l d

12年12月14日星期五

Page 23: 008 vim超基礎入門

加Shift = 跳到行首/尾插入

← 按下I後h e l l o w o r l d

12年12月14日星期五

Page 24: 008 vim超基礎入門

加Shift = 跳到行首/尾插入

← 按下I後

按下A後 →

h e l l o w o r l d

h e l l o w o r l d

12年12月14日星期五

Page 25: 008 vim超基礎入門

如何存檔跟離開

(關於模式間的切換 可以回頭看看第四張投影片)12年12月14日星期五

Page 26: 008 vim超基礎入門

如何存檔跟離開

(在normal mode下) 打一個冒號,進入

command line mode

(關於模式間的切換 可以回頭看看第四張投影片)12年12月14日星期五

Page 27: 008 vim超基礎入門

如何存檔跟離開

(在normal mode下) 打一個冒號,進入

command line mode

enter↵

(關於模式間的切換 可以回頭看看第四張投影片)

存檔或離開的指令

下一頁有說明

輸入指令

12年12月14日星期五

Page 28: 008 vim超基礎入門

如何存檔跟離開

(關於模式間的切換 可以回頭看看第四張投影片)

按鍵 功能

w 只存檔 不離開

q 離開 (如果有變更,會無法離開)

wq 存檔並離開

q! 不存檔 強制離開

常用的組合

12年12月14日星期五

Page 29: 008 vim超基礎入門

方向鍵或退位鍵無效

← ↓

(在normal mode下)

12年12月14日星期五

Page 30: 008 vim超基礎入門

方向鍵或退位鍵無效

← ↓ ↑ →

h j k l

= = = =

(在normal mode下)

12年12月14日星期五

Page 31: 008 vim超基礎入門

方向鍵或退位鍵無效

del x

=

= X (大寫)

(在normal mode下)

記憶法:x → 打叉捨棄 → del    Shift 本來就常有「反向」的意思

12年12月14日星期五

Page 32: 008 vim超基礎入門

快速移動篇一格一格游標移動太麻煩了,快速跳到指定的地方

12年12月14日星期五

Page 33: 008 vim超基礎入門

搜尋

12年12月14日星期五

Page 34: 008 vim超基礎入門

搜尋

(在normal mode下) 打一個斜線/

12年12月14日星期五

Page 35: 008 vim超基礎入門

搜尋

(在normal mode下) 打一個斜線/

enter↵

搜尋下一個符合的方法

在下一頁有說明

輸入關鍵字

12年12月14日星期五

Page 36: 008 vim超基礎入門

搜尋

(在normal mode下) 打一個斜線/

enter↵

搜尋下一個符合的方法

在下一頁有說明

輸入關鍵字

(想像/是Windows的notepad的Ctrl+F)

12年12月14日星期五

Page 37: 008 vim超基礎入門

搜尋

(在normal mode下) 打一個斜線/

enter↵

搜尋下一個符合的方法

在下一頁有說明

輸入關鍵字

(想像/是Windows的notepad的Ctrl+F)

(叫出搜尋框了,填入關鍵字按enter)

12年12月14日星期五

Page 38: 008 vim超基礎入門

搜尋

n尋找下一個符合

記憶法:n=next

12年12月14日星期五

Page 39: 008 vim超基礎入門

搜尋

n尋找下一個符合

記憶法:n=next

12年12月14日星期五

Page 40: 008 vim超基礎入門

搜尋

n尋找下一個符合

記憶法:n=next

N尋找上一個符合

記憶法:shift + n

12年12月14日星期五

Page 41: 008 vim超基礎入門

跳到行首/行尾

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

記憶法:^跟$類似Regular Expression的用法

12年12月14日星期五

Page 42: 008 vim超基礎入門

跳到行首/行尾

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

^軟性行首

記憶法:^跟$類似Regular Expression的用法

12年12月14日星期五

Page 43: 008 vim超基礎入門

跳到行首/行尾

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

$^軟性行首 行尾

記憶法:^跟$類似Regular Expression的用法

12年12月14日星期五

Page 44: 008 vim超基礎入門

跳到行首/行尾

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

記憶法:第0個字元

^軟性行首

$行尾

12年12月14日星期五

Page 45: 008 vim超基礎入門

跳到行首/行尾

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

記憶法:第0個字元0硬性行首 (數字0)

^軟性行首

$行尾

12年12月14日星期五

Page 46: 008 vim超基礎入門

跳到畫面的上/中/下

l i n e 1l i n e 2l i n e 3l i n e 4 . . . . . . . .l i n e 5l i n e 6l i n e 7l i n e 8l i n e 9

12年12月14日星期五

Page 47: 008 vim超基礎入門

跳到畫面的上/中/下

l i n e 1l i n e 2l i n e 3l i n e 4 . . . . . . . .l i n e 5l i n e 6l i n e 7l i n e 8l i n e 9

H

M

L

記憶法:High, Middle, Low12年12月14日星期五

Page 48: 008 vim超基礎入門

跳到第一行/最後一行

記憶法:0跟$分別是跳到行首跟行尾的鍵12年12月14日星期五

Page 49: 008 vim超基礎入門

跳到第一行/最後一行

(在normal mode下) 打一個冒號,進入

command line mode

記憶法:0跟$分別是跳到行首跟行尾的鍵12年12月14日星期五

Page 50: 008 vim超基礎入門

跳到第一行/最後一行

(在normal mode下) 打一個冒號,進入

command line mode

enter↵

輸入$則會跳到最後一行

輸入0

記憶法:0跟$分別是跳到行首跟行尾的鍵12年12月14日星期五

Page 51: 008 vim超基礎入門

跳到第一行/最後一行

l i n e 1l i n e 2l i n e 3l i n e 4 . . . . . . . .l i n e 5l i n e 6l i n e 7l i n e 8l i n e 9

12年12月14日星期五

Page 52: 008 vim超基礎入門

跳到第一行/最後一行

l i n e 1l i n e 2l i n e 3l i n e 4 . . . . . . . .l i n e 5l i n e 6l i n e 7l i n e 8l i n e 9

:0↩

:$↩

12年12月14日星期五

Page 53: 008 vim超基礎入門

跳到第N行

l i n e 1l i n e 2l i n e 3l i n e 4 . . . . . . . .l i n e 5l i n e 6l i n e 7l i n e 8l i n e 9

12年12月14日星期五

Page 54: 008 vim超基礎入門

跳到第N行

l i n e 1l i n e 2l i n e 3l i n e 4 . . . . . . . .l i n e 5l i n e 6l i n e 7l i n e 8l i n e 9

:n↩

操作方式同前

n就是你要跳去的行數12年12月14日星期五

Page 55: 008 vim超基礎入門

開檔案時直接跳到某行

如果開檔案的時候就預想到要跳到最後一行,或

跳到第N行,可以這樣開檔:

12年12月14日星期五

Page 56: 008 vim超基礎入門

$ vim filename #平常是這樣開檔$ vim + filename #一打開就在最後一行$ vim +276 filename #一打開就在276行

開檔案時直接跳到某行

如果開檔案的時候就預想到要跳到最後一行,或

跳到第N行,可以這樣開檔:

12年12月14日星期五

Page 57: 008 vim超基礎入門

加強技巧篇稍微再加強一點點的程度

12年12月14日星期五

Page 58: 008 vim超基礎入門

加強技巧篇

其實以上的進度對輕度使用者來說可以用了

加強技巧篇還會有一些寫code或設定檔會用到的方便功能

但想要到把vim當主要程式編輯器的程度,這篇教學是辦不到的

12年12月14日星期五

Page 59: 008 vim超基礎入門

刪除一行

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

12年12月14日星期五

Page 60: 008 vim超基礎入門

刪除一行

d x 2

d e f h e l l o ( n a m e ) p u t s " h e l l o w o r l d # { n a m e } "e n d

12年12月14日星期五

Page 61: 008 vim超基礎入門

刪除一行

d e f h e l l o ( n a m e )e n d

d x 2

12年12月14日星期五

Page 62: 008 vim超基礎入門

刪除到行尾

d e f h e l l o ( n a m e ) @ n a m e =e n d

“ H e l l o # { n a m e } ”

12年12月14日星期五

Page 63: 008 vim超基礎入門

刪除到行尾

D

d e f h e l l o ( n a m e ) @ n a m e =e n d

“ H e l l o # { n a m e } ”

12年12月14日星期五

Page 64: 008 vim超基礎入門

刪除到行尾

d e f h e l l o ( n a m e ) @ n a m e =e n d

D

12年12月14日星期五

Page 65: 008 vim超基礎入門

縮排

記憶法:>>的形狀註:縮排預設是tab字元

12年12月14日星期五

Page 66: 008 vim超基礎入門

縮排

> x 2

記憶法:>>的形狀註:縮排預設是tab字元

12年12月14日星期五

Page 67: 008 vim超基礎入門

自動補齊可能關鍵字

(在insert mode下) 在想自動完成的關鍵

字後面

記憶法:Next/Previous Match12年12月14日星期五

Page 68: 008 vim超基礎入門

自動補齊可能關鍵字

(在insert mode下) 在想自動完成的關鍵

字後面

再按一次

他會找下個Match

Ctrl+N或Ctrl+P

記憶法:Next/Previous Match12年12月14日星期五

Page 69: 008 vim超基礎入門

多行註解

在command mode

12年12月14日星期五

Page 70: 008 vim超基礎入門

多行註解

在command mode 按下Ctrl+V並要註解的行反白起來

12年12月14日星期五

Page 71: 008 vim超基礎入門

多行註解

按下Ctrl+V並要註解的行反白起來

12年12月14日星期五

Page 72: 008 vim超基礎入門

多行註解

按下Ctrl+V並要註解的行反白起來

按大寫I進入i-mode然後輸入註解符號

12年12月14日星期五

Page 73: 008 vim超基礎入門

多行註解

按大寫I進入i-mode然後輸入註解符號

12年12月14日星期五

Page 74: 008 vim超基礎入門

多行註解

按大寫I進入i-mode然後輸入註解符號

按esc,並等待1秒就會全部套用了

12年12月14日星期五

Page 75: 008 vim超基礎入門

刪除多行

道理同註解多行

到在這個步驟的時候,按

12年12月14日星期五

Page 76: 008 vim超基礎入門

刪除多行

d x 2道理同註解多行

到在這個步驟的時候,按

12年12月14日星期五

Page 77: 008 vim超基礎入門

簡單教學到此進階內容請另外練功

12年12月14日星期五

Page 79: 008 vim超基礎入門

廣告時間

歡迎follow我的SlideSharewww.slideshare.net/BruceLi2/

我的部落格 (技術+私人+拉哩拉雜的東西)littlebmix.blogspot.tw/

我開發的小玩具:博客來優化電子報

bruce.non.tw/books66

12年12月14日星期五