一、vim編輯器簡介
文本:ASCII,Unicode
文本編輯種類:
行編輯器:sed
全屏編輯器:nano,vi
vim-Vi Improved
其他編輯器:
gedit:一個簡單的圖形編輯器
gvim:一個VIm編輯器的圖形版本
二、vim打開文件
vim option file…
+n:打開文件后,直接讓光標處于第n行的行首
+/pattern:打開文件后,直接讓光標處于第一個被pattern匹配到的行的行首
+:打開文件后,光標在最后一行
-b:二進制方式打開文件
-d file1 file…:比較多個文件
-m:只讀打開文件
-e或ex:直接進入ex模式
如果該文件存在,文件被打開并顯示內容
如果不存在,當編輯后第一次存盤時創建它
vim是一個模式編輯器
擊鍵行為是依賴vim的“模式”
三種主要模式
命令模式(默認):移動光標,查看文件,
插入(編輯)模式:修改文本
擴展命令模式(末行):保存,退出,執行命令
Esc退出當前模式
三、模式轉換
命令模式 → 插入模式
i:在光標所在處輸入
I:在當前光標所在行的行首輸入
a:在光標所在處后面輸入
A:在當前光標所在行的行尾輸入
o:在當前光標所在行的下方打開一個新行
O:在當前光標所在行的上方打開一個新行
插入模式 → 命令模式
Esc
命令模式 → 擴展模式
:
擴展模式 → 命令模式
Esc
鎖定:Ctrl+s
解鎖:Ctrl+q
五、關閉文件
擴展模式
q:退出
q?。簭娭仆顺?,丟棄做出的修改
wq:保存退出
x保存退出
命令模式
ZZ:保存退出
ZQ:不保存退出
六、擴展模式操作
按“:”進入ex模式
創建一個命令提示符:,處于底部的屏幕左側
w:寫(存)磁盤文件
wq:寫入并退出
x:寫入并退出
q:退出
q?。翰淮姹P退出,更改無效
r file1 :讀file1文件內容到當前文件中
w file1:將當前文件內容寫入另一個文件
!command:執行命令
r!command:
地址界定
start_pos,end_pos
n:第n行
n,m:從n行到m行
n,+m:從n行到n+m行
.:當前行
$:最后一行
.,$:當前行到倒數第二行
%:全文,相當于1,$
/pattern/
/pat1/,/pat2/:從第一次被pat1模式匹配到的行到第一次被pat2匹配到的行
n,/pat/:從n行到被pat模式匹配到的行
/pat/,$:從被pat模式匹配到的行到最后一行
使用方式:后面跟一個編輯命令
d:刪除
y:復制
w file:將范圍內的行另存至指定文件中
r file:在指定位置插入總置頂文件中的所有內容
查找
/pattern:從當前光標所在處向文件尾部查找
?pattern:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向
查找并替換
s:在擴展模式下完成查找替換操作
格式:s/要查找的內容/替換為的內容/修飾符
要查找的內容:可使用模式
替換為的內容:不能使用模式,但可以使用\1,\2…等后向引用符號,還可以使用&引用前面查找是查找到的整個內容
修飾符
i:忽略大小寫
g:全局替換,默認情況下,每一行只替換第一次出現
gc:全局替換,每次替換前詢問
查找替換中的分個符/可替換為其他字符s@@@,s###
編輯二進制文件
-b:以二進制方式打開文件
擴展命令模式下,利用xxd命令轉換為可讀的十六進制
%!xxd
編輯二進制文件
擴展命令模式下,利用xxd命令轉換回二進制
%!xxd -r
保存退出
七、命令模式操作
光標跳轉
字符間跳轉
h:向左
j:向下
k:向上
l:向右
n command:跳轉由n指定一次跳轉的單詞數
單詞間跳轉
w:下一個單詞的詞首
e:當前或下一個單詞的詞首
b:當前或前一個單詞的詞首
n command:跳轉由n指定一次跳轉的單詞數
當前頁跳轉
H:頁首
M:頁中間行
L:頁底
行首行尾跳轉
^:跳轉至行首的第一個非空白字符
0:跳轉至行首
&:跳轉至行尾
行間移動:
nG:跳轉至由n制定航
G:最后一行
1G或gg:第一行
句間移動:
(:下上一句
):下一句
段落間移動
{:上一段
}:下一段
翻屏
Ctrl+f或PgDn:向文件尾部翻一屏
Ctrl+b或PgUp:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
字符編輯
x:刪除光標處的字符
nx:刪除光標處起始的n個字符
xp:交換光標所在處的字符及其后面字符的位置
~:轉換大小寫
替換命令(r,replace)
r:替換光標所在處的字符
R:切換成replace模式
刪除命令;
d:刪除命令,可結合光標跳轉字符,實現范圍刪除
d$:刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
dw:刪除下一個單詞
de:刪除當前或下一個單詞
db:刪除當前或上一個單詞
dd:刪除光標所在的行
ndd:多行刪除
D:刪除光標到行尾,留空行。等同于d$
復制命令(y,yank)
y:復制,結合光標跳轉字符,實現范圍復制
y$:復制到行尾
y^:復制到非空行首
y0:復制到行首
yw:復制下一個單詞
ye:復制當前或下一個單詞
yb:復制當前或上一個單詞
yy:復制光標所在的行
nyy:多行復制
y:復制整行
粘貼命令(p,paste)
p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方,否則,則粘貼至當前光標所在處的后面
p:緩沖區存的如果為整行,則粘貼當前光標所在行的上方,否則,則粘貼至當前光標所在處的前面
改變命令(c,change)
c:修改后切換至插入模式
命令模式 → 插入模式
c$:刪除到行尾輸入新內容
c^:刪除到非空行首輸入新內容
c0:刪除到行首輸入新內容
cw:刪除下一個單詞輸入新內容
ce:刪除當前或下一個單詞輸入新內容
cb:刪除當前或上一個單詞輸入新內容
cc:刪除光標所在的行輸入新內容
ncc:多行刪除輸入新內容
C:刪除當前到行尾,并且換成插入模式
100wang Esc:粘貼“wang”100次
start position command end position
command
y:復制
d:刪除
gU:變大寫
gu:變小寫
例:0y$
0→先到行頭
y→從這里開始拷貝
$→拷貝到本行最后一個字符
ye從當前位置拷貝到本單詞的最后一個字符
撤銷更改
u:撤銷最近的更改
nu:撤銷之前n次更改
U:撤銷光標落在這行后所有此行的更改
Ctrl+r:重做最后的撤銷更改
.:重復前一個操作
n.:重復前一個操作n次
八、vim的寄存器
有26個命名寄存器和1個無名寄存器,常存放不同的剪貼板內容,可以不同會話間共享。
用a,b,c…z表示,用"寄存器表示,放在數字和命令之間
例:3"tyy表示復制3行到t寄存器中
"tp表示將t寄存器內容粘貼
未指定,將使用無名寄存器,有10個數字寄存器。
用0,1,2…9表示,0存放最近復制內容,1存放最近刪除內容。
當新的文本變更和刪除是,1轉存到2,2轉存到3,以此類推。
數字寄存器不能在不同會話間共享
九、可視化模式
v:面向字符
V:面向行
Ctrl+v:面向塊
可視化可用于與移動鍵結合使用
w,),},箭頭等
突出顯示的文字可以被刪除,復制,變更,過濾,搜索,替換等。
十、多文件模式
vim file1 file2 file3…
擴展命令模式下
next:下一個
prev:前一個
first:第一個
last:最后一個
wall:保存所有
qall:退出所有
wqall:所有文件保存退出
十一、多窗口模式
多個文件窗口分割
vim -o|-O file1 file2…
-o:水平分割
-O:垂直分割
在窗口間切換
Ctrl+w 上下
單個文件窗口分割
Ctrl+w,s:水平分割
Ctrl+w,v:垂直分割
Ctrl+w,q:取消相鄰窗口
Ctrl+w,o:取消全部窗口
:wqall退出
十二、定制vim的工作特性
全局:/etc/vimrc
個人:~/.vimrc
擴展模式:當前vim進程有效
行號
顯示:set number,簡寫set nu
取消顯示:set monumber
括號成對匹配
匹配:set showmatch,簡寫set sm
取消匹配:set nosm
自動縮進
啟用:set ai
禁用:set noai
高亮搜索
啟用:set hlsearch
禁用:set nohlsearch
語法高亮
啟用:syntax on
禁用:syntax off
忽略字符的大小寫
啟用:set ic
不忽略:set noic
文件格式
啟用:fileformat=unix
不忽略:fileformat=dos
設置文本寬度
set trxtwidth=65(vim only) 左面開始65個字符
set wrapmargin=15 右面開始15個字符
標準豎20字符,橫80字符
原創文章,作者:DYW,如若轉載,請注明出處:http://www.www58058.com/32816