Vim用法小結

來源:互聯網
上載者:User

這是我總結的一些基本用法,可能對初用者會有協助,獨樂樂不如眾樂樂,是吧!

說明:以下黑色為vi和vim均有的一般功能,而紅色為Vim(Vi Improved)所特有功能。Vim一般的Unix和Linux下均有安裝。
三種狀態
Command: 任何輸入都會作為編輯命令,而不會出現在螢幕上,任何輸入都引起立即反映
Insert: 任何輸入的資料都置於編輯寄存器,按ESC,可跳回command方式
Escape: 以“:”或者“/”為前置的指令,出現在螢幕的最下一行,任何輸入都被當成特別指令。
離開vi
:q! 離開vi,並放棄剛在緩衝區內編輯的內容。
:wq 將緩衝區內的資料寫入磁碟中,並離開vi。
同wq。
(注意—— :X 是檔案加密,一定要與:x存檔退出相區別)
進入輸入模式
a (append) 由遊標之後加入資料。
A 由該行之末加入資料。
i (insert) 由遊標之前加入資料。
I 由該行之首加入資料。
o (open) 新增一行於該行之下供輸入資料之用。
O 新增一行於該行之上供輸入資料之用。
刪除與修改
x 刪除遊標所在該字元。
X 刪除遊標所在之前一字元。
r 用接於此指令之後的字元取代(replace)遊標所在字元。如:ra將遊標所在字元以 a 取代之。
R 進入取代狀態,直到《ESC》為止。
s 刪除遊標所在之字元,並進入輸入模式直到《ESC》。
S 刪除遊標所在之該行資料,並進入輸入模式直到《ESC》。
游標的移動
m<a-z> 設定書籤<a-z>
‘<a-z> 移至書籤<a-z>處
0 移至該行之首
$ 移至該行之末。
e 移動到下個字的最後一個字母
w 移動到下個字的第一個字母。
b 移動到上個字的第一個字母。
^ 移至該行的第一個字元處。
H 移至視窗的第一行。
M 移至視窗的中間那行。
L 移至視窗的最後一行。
G 移至該檔案的最後一行。
+ 移至下一列的第一個字元處。
- 移至上一列的第一個字元處。
:n 移至該檔案的第 n 列。
n+ 移至遊標所在位置之後的第 n 列。
n- 移至遊標所在位置之前的第 n 列。
<Ctrl><g> 顯示該行之行號、檔案名稱、檔案中最末行之行號、遊標所在行號佔總行號之百分比。

(Vim) 游標移動基本用法小解:
(這隻要組合上邊的功能就可以明白了,不用再一一講解了吧!)
ge b w e
← ← ---→ --→
This is-a line, with special/separated/words (and some more).
←- ←-- -----------------→ ---→
GE B W E

視窗的移動
<Ctrl><f> 視窗往下卷一頁。
<Ctrl><b> 視窗往上卷一頁。
<Ctrl><d> 視窗往下卷半頁。
<Ctrl><u> 視窗往上卷半頁。
<Ctrl><e> 視窗往下卷一行。
<Ctrl><y> 視窗往上卷一行。
剪下、複製、刪除
Operator + Scope = command
Operator
d 剪下
y 複製。
p 粘帖,與 d 和 y 配和使用。可將最後d或y的資料放置於遊標所在位置之行列下。
c 修改,類似delete與insert的組和。刪除一個字組、句子等之資料,並插入建立資料。
Scope
e 由遊標所在位置至該字串的最後一個字元。
w 由遊標所在位置至下一個字串的第一個字元。
b 由遊標所在位置至前一個字串的第一個字元。
$ 由遊標所在位置至該行的最後一個字元。
0 由遊標所在位置至該行的第一個字元。
整行動作
dd 刪除整行。
D 以行為單位,刪除遊標後之所有字元。
cc 修改整行的內容。
yy 使遊標所在該行複製到記憶體緩衝區。
取消前一動作(Undo)
u 恢複最後一個指令之前的結果。
U 恢複遊標該行之所有改變。
(vim) u 可以多次撤消指令,一次撤消一個操作,直至本次操作開始為止。
(vim) Ctrl+r 可以恢複撤消前內容,按多次可恢複多次。
尋找與替換
/字串 往遊標之後尋找該字串。
?字串 往遊標之前尋找該字串。
n 往下繼續尋找下一個相同的字串。
N 往上繼續尋找下一個相同的字串。
% 尋找“(”,“)”,“{”,“}”的配對符。
s 搜尋某行列範圍。
g 搜尋整個編輯緩衝區的資料。
:1,$s/old/new/g 將檔案中所有的『old』改成『new』。
:10,20s/^/ / 將第10行至第20行資料的最前面插入5個空白。
(vim)
/字串 後邊輸入查詢內容可儲存至緩衝區中,可用↑↓進行以往內容選擇。
另外:將游標移動在選定單詞下方按*,則可以選中此單詞作為查詢字元,可以避免輸入一長串字元的麻煩。
(vim) 大小寫替換
首先用按v開啟選擇功能,然後用↑↓←→鍵來選定所要替換的字元,若是小寫變大寫,則按U;反之按u;
如果是選擇單詞,則可以在按v後,按w,最後按U/u,這樣就可以將字元隨意的改變大小寫了,而不用刪除後重新敲入。

資料的串連
J 句子的串連。將遊標所在之下一行串連至遊標該行的後面。
環境的設定
:set all 可設定的環境變數列表
:set 環境變數的當前值
:set nu 設定資料的行號。
:set nonu 取消行號設定。
:set ai 自動內縮。
:set noai 取消自動內縮。
(vim)
:set ruler 會在螢幕右下角顯示當前游標所處位置,並隨光移動而改變,佔用螢幕空間較小,使用也比較方便,推薦使用。
:set hlsearch 在使用尋找功能時,會高亮顯示所有匹配的內容。
:set nohlsearch 關閉此功能。
:set incsearch 使Vim在輸入字串的過程中,游標就可定位顯示匹配點。
:set nowrapscan 關閉尋找自動迴環功能,即尋找到檔案結尾處,結束尋找;預設狀態是自動迴環

ex指令
讀寫資料
:10,20w test 將第10行至第20行的資料寫入test檔案。
:10,20w>>test 將第10行至第20行的資料加在test檔案之後。
:r test 將test檔案的資料讀入編輯緩衝區的最後。
:e [filename] 編輯新的檔案。
:e! [filename] 放棄當前修改的檔案,編輯新的檔案。
:sh 進入shell環境,使用exit退出,回到編輯器中。

:!cmd 運行命令cmd後,返回到編輯器中。
刪除、複製及搬移
:10,20d 刪除第10行至第20行的資料。
:10d 刪除第10行的資料。
:%d 刪除整個編輯緩衝區。
:10,20co30 將第10行至第20行的資料複製至第30行之後。
:10,20mo30 將第10行至第20行的資料搬移至第30行之後。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.