vim編輯器的用法
1、vi的基本概念
vi可以分為三種模式,分別是命令模式(command mode)、輸入模式(Insert mode)和末行模式(last line mode),各模式的功能如下:
1) 命令行模式command mode)
控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入輸入或末行模式
2) 輸入模式(Insert mode)
只有在輸入模式下,才可以做文字輸入,按ESC鍵可回到命令模式。
3) 末行模式(last line mode)
將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等。
2、模式間切換
1)編輯模式–>輸入模式
i: 在光標所在處的前方轉換為輸入模式
a: 在光標所在的后方轉換為輸入模式
o: 在光標所在行的下方新建一個空行并轉換為輸入模式
I: 在光標所在行前方第一個非空白字符出之前轉為輸入模式
A:在光標所在行后方最后一個非空白字符之后轉為輸入模式
O: 光標所在行的上方新建一個空白行并轉為輸入模式
2)輸入模式–>編輯模式
按ESC鍵進行切換
3)編輯模式–>末行模式
按:進行切換
4)末行模式–>編輯模式
按ESC鍵稍等或按兩次ESC鍵進行切換
5)末行模式<–>輸入模式
必須先返回到編輯模式后,再進入到末行模式或輸入模式
如:輸入–>編輯–>末行
末行–>編輯–>輸入
3、打開及退出文件
1)打開文件
vim [option]… [FILE]…
2)退出文件
進入末行模式后,輸入相應的命令退出,具體如下:
:q! 不保存退出
:wq 保存退出
: x 保存退出
:wq! 強制保存退出
4、光標移動
1)字符間移動
h:向前移動
j:向下移動
k:向上移動
l:向后移動
2)單詞間移動
w: 下一個單詞詞首
e: 當前單詞或下一個單詞詞尾
b: 當前單詞或前一個單詞詞首
3) 行內移動
^: 移動到行首第一個非空白字符
0:移動到絕對行首
$: 移動到絕對行尾
4)句子間移動
)移動到句末
( 移動到句首
5)段落間移動
} 移動到段尾
{ 移動到段首
6)行間移動
#G:移動到第#行行首
G:移動到末行行首
gg:移動到第一行
G$: 移動到末行的行尾
#+: 當前光標所在位置向下移動#行
#-: 當前光標所在位置向上移動#行
H:移動到文本的行首
M:移動到文本的中間行
L:移動到文本的末行
5、刪除命令
x:刪除光標所在處的字符
#x: 刪除從光標所在處開始向后的#個字符
X: 刪除光標所在處前面一個字符
#X:刪除光標處前面#個字符
dd: 刪除光標所在行
#dd: 刪除光標所在行向下的#行
dgg:刪除光標所在行到第一行的所有字符
dG: 刪除光標所在行到最后一行的所有字符
d0: 刪除光標所在處到行首的所有字符
d$: 刪除光標所在處到行尾的所有字符
dw: 刪除光標處向后的一個單詞
d#w: 刪除光標處向后的#w單詞
6、修改命令
cw:刪除光標處向后的一個單詞,并進入輸入模式
c$: 刪除光標處到行尾的所有字符,并進入輸入模式
cc: 刪除光標所在上的所有字符,并進入輸入模式
7、復制
yy: 復制光標所在行
#yy: 復制光標光標所在行向下的#行
與w,b,e,$,^,0,G組合使用
復制任意長度的字符:
a.在當前光標處輸入"ma",再將光標移到指定的地方,輸入“y`a”即可。
b.輸入ymfn,其中n表示當前光標開始到復制內容結束的最后一個字符,m表示n在復制內容中出現的次數。如:文本內容為abcderfgwerrgssdd,需要復制的內容為derfgwerr,光標在"d"處,輸入y3fr即可完成復制。
8、粘貼
行級別:
p: 粘貼于當前行下方
P: 粘貼于當前行上方
小于行級別:
p: 粘貼于當前光標所在處的后方
P:粘貼于當前光標所在處的前方
9、撤銷編輯
按u鍵
10、撤銷此前的撤銷
按ctrl+r鍵
11、重復前一條命令
.重復執行上一條命令
12、查找
/something: 在后面的文本中查找something。
?something: 在前面的文本中查找something。
/pattern/+number: 將光標停在包含pattern的行后面第number行上。
/pattern/-number: 將光標停在包含pattern的行前面第number行上。
n: 向后查找下一個。
N: 向前查找下一個。
13、替換
如果不指定range,則表示當前行。
m,n: 從m行到n行。
0: 最開始一行(可能是這樣)。
$: 最后一行
.: 當前行
%: 所有行
例如:
:s/old/new – 用new替換當前行第一個old。
:s/old/new/g – 用new替換當前行所有的old。
:n1,n2s/old/new/g – 用new替換文件n1行到n2行所有的old。
:%s/old/new/g – 用new替換文件中所有的old。
:%s/^/xxx/g – 在每一行的行首插入xxx,^表示行首。
:%s/$/xxx/g – 在每一行的行尾插入xxx,$表示行尾。
所有替換命令末尾加上c,每個替換都將需要用戶確認。 如:%s/old/new/gc,加上i則忽略大小寫(ignore)。
14、可視化
v:光標走過的字符
V:光標走過的行
ctrl+v: 區塊選擇
用y復制選中的內容,用d刪除選中的內容
15、翻屏
Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
16、編輯多文件
vim a.txt b.txt c.txt
在末行模式下輸入如下命令進行文件間切換:
:next 下一個
:previous 前一個
:last 最后一個
:first 第一個
:wqall 關閉所有
17、分屏顯示
多文件分屏
vim -o file1 file2:水平分割窗口,同時打開file1和file2
vim -O file1 file2:垂直分割窗口,同時打開file1和file2
單文件分屏
Ctrl+w, s: 水平分割
Ctrl+w, v: 垂直分割
18、窗口屬性設置
顯示行號
:set nu
:set nonu
自動縮進
:set ai (auto indent)
:set noai
忽略大小寫
:set ic (ignore case)
:set noic
自動匹配的括號
:set sm show match
:set nosm
語法高亮:
:syntax on|off
搜索高亮:
:set hlsearch
:set nohlsearch
配置文件:
全局:/etc/vimrc
用戶:~/.vimrc 默認該文件沒有,需手動添加。
原創文章,作者:浪跡天涯,如若轉載,請注明出處:http://www.www58058.com/7979