VI編輯器使用總結

日期: 20150830

 

文本編輯器主要分爲兩類:

全屏編輯器:vivimnano

逐行讀取編輯器:sed

 

VI—Visual Interface (可視化接口)

VIM—Visual Interface Improved(VI的增強版)

 

vi提供三種模式

編輯模式:鍵盤操作通常被解析爲編輯命令;

輸入模式:編輯文本,輸入文字的模式;

末行模式:vim的內置的命令行接口,執行vim內置命令

 

模式間切換:

輸入模式 --> 編輯模式:

ESC

編輯模式 --> 末行模式:

:

末行模式 --> 編輯模式:

ESC

 

打開文件:

vim  /PATH/FileName

vim +Num /PATH/FileName:打開後處於指定行的行首

vim + /PATH/FileName:打開文件後讓光標直接處於文件末行的行首

 

 

從編輯模式進入輸入模式:

i  #光標在當前位置進入文本編輯模式

I  #光標跳至行首並進入文本編輯模式

a  #光標後退一格並進入文本編輯模式

A  #光標退到行尾並進入文本編輯模式

o #在光標所在行的上一行下新起一行並進入文本編輯模式

O #在光標所在行的上一行新起一行並進入文本編輯模式

s  #刪除光標所在字符並進入文本編輯模式

S/cc #刪除光標所在行並進入文本編輯模式(對空白行不起作用)

 

 

光標控制:

0      #光標跳至行頭

^      #光標跳至第一個非空白字符

$      #光標跳至行末

w      #光標跳至下一個詞首

b      #光標跳至當前或上一個詞首

e      #光標跳至當前或下一個詞尾

W      #光標跳至以空格分割的下一個詞首

B      #光標跳至以空格分割的上一個詞首

E      #光標跳至以空格分割的下一個詞尾

k      #光標跳至上行

j      #光標跳至下行

h      #光標向左移動

l      #光標向右移動

H      #光標移動到當頁頂部行首

L      #光標跳至當頁底部行首

Num+h     #光標向左移動N個字符

Num+l     #光標向右移動N個字符

Num+k     #光標向上移動N行

Num+j     #光標向下移動N行

gg        #光標跳至文件的首行

Num+gg    #光標跳至指定行

G        #光標跳至文件的末行(前面加數字則跳至指定行,例如 10G 跳至第10行)

Ctrl+g    #顯示當前行

句子間移動:(     )

段落間移動:{     }

 

 

翻屏:

Ctrl+f: 向文件尾部翻一屏

Ctrl+b: 向文件首部翻一屏

Ctrl+d: 向文件尾部翻半屏

Ctrl+u: 向文件首部翻半屏

Enter:  向下翻一行

 

 

刪除or剪切:

x         #刪除/剪切一個字符

Num+x     #刪除/剪切下n個字符

dd        #刪除/剪切當前行

Num+dd    #刪除/剪切後n行

db       #刪除/剪切光標至上一個詞首

dw       #刪除/剪切光標至下一個詞首(單個詞)

Num+dw    #刪除/剪切後n個詞

dW       #刪除/剪切至以空格分割的詞尾

d0        #刪除/剪切光標至行首

d$/D      #刪除/剪切光標至行尾

d+h      #往光標左側刪除/剪切一個字符

d+l      #往光標右側刪除/剪切一個字符

 

 

複製or粘貼:

yy           #選定光標所在行復制

yw           #選定光標所在詞複製

Num+yw #選定光標所在位置之後n個單詞複製

y0     #選定光標所在位置到行首的部分複製

y$     #選定光標所在位置到行尾的部分複製

P      #粘貼在光標所在位置的左邊,如複製整行則粘貼在光標的上方

p      #粘貼在光標所在位置的右邊,如複製整行則粘貼在光標的下方

 

 

選擇與替換:

v    #進入選擇模式

V    #選擇光標所在行

r    #替換一個字符

R    #連續替換字符

c    #刪除後並進入編輯模式

 

 

取消操作:

u       #撤銷上一個編輯操作

Ctrl+r  #重新返回操作

.       #重複此前的命令

 

 

窗口屬性的定義:

set nu       #列出行號

set nonu     #去掉行號

set ai       #設定自動縮進

set noai     #關閉自動縮進

set ic       #查找時不區分大小寫

set noic    #關閉查找時不區分大小寫

 

顯示對應的括號

set sm (show match)

set nosm

 

語法高亮:

syntax on

syntax off

 

搜索高亮:

set hlsearch

set nohlsearch

 

 

在末行模式命令:

w      #保存當前文件

q      #如果未對文件做改動則退出

q!     #放棄存儲並退出

wq/x/ZZ(大寫)  #保存當前文件並退出

e filename   #打開另一個文件並開始編輯

r filename   #讀取另一個文件,把文件插入到光標處

r ! <命令>  #把命令的輸出結果插入到當前文本中

e!    #撤銷所有改動,重新編輯

sh    #打開一個shell

so   #讀取<文件>,再執行<文件>裏的命令

!     #執行某個命令

 

 

範圍定界:

start,end:   起始行

10,20  從第10行到第20行

10,+9  從第10行向後走9行

.              #表示當前行

.,+Num   #表示當前行往後N行

.,$         #表示當前行至最後一行(文件尾部)

.,$-2       #表示當前行至倒數第3行

/PATTERN1/,/PATTERN12/: 匹配模式起始處爲光標所在行,

%             #表示全文

 

 

查找替換:

/KEYWORD #搜索(n #搜索下一個;N  #搜索上一個)

 

/和@用意一樣:

地址定界s/查找模式/替換爲的內容/gi

地址定界s@查找模式@替換爲的內容@gi

g: global  全局替換

i: ignore-case  忽略大小寫

%s/xxx #全文搜索

 

 

同時打開多個文件:

vim -o FILE1 FILE2 #橫屏編輯兩個文件,按Ctrl+w 鬆開後按上或下跳轉

vim -O FILE1 FILE2 #豎屏編輯兩個文件,按Ctrl+w 鬆開後按上或下跳轉

vim FILE1..FILE2...FILE3

多文件跳轉:

:next

:prev

:first

:last

 

 

分割當前窗口:

ctrl+w->s 橫屏

ctrl+w->v 豎屏

 

 

vim的配置文件:

全局:/etc/vimrc

個人:~/.vimrc  #如果沒有此文件,需手動創建

 

 

實例1

搜索前20行,把非#開頭的行加上#號

1,30s/^[^#]/#&/g

wKiom1XkdIaycQhPAAG4a8AXojI861.jpg


//替換後結果可看到1-20行前非#開頭的行已經加上#:

wKioL1XkdqXxTg39AAHU_XzE0uI643.jpg



實例2

//搜索全文中/bin替換爲/sbin

wKiom1XkdIbytGcGAAG5hNFv4-0858.jpg

 

//替換後的結果:

wKioL1XkdqaiHT1MAAHHoJZuzPQ978.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章