vim使用:
使用vi和vim的三種主要模式 : 命令模式,插入模式,擴展模式
擴展模式:
w:寫入磁盤文件
wq:寫入并退出
x:寫入并退出
q:退出
q!不存盤退出,即使更改都將丟失
r filename:讀文件內容到當前文件中
w filenane: 將當前文件內容寫入到另一個文件中
!command:在當前界面執行命令
r!command:讀取命令執行結果到文件中來。
v
移動光標,進入插入模式 v
i:當前位置插入
I:當前光標所在行行首輸入
a:在當前光標所在處后面輸入
A:在當前光標所在行的行尾輸入
o:當前光標所在行的下方打開一個新的行
O:當前光標所在行的上方打開一個新的行
光標在單詞間跳轉:
w:跳轉到下一個單詞的詞首
e:跳轉到當前單詞的詞尾或下一個單詞的詞尾
b:跳轉到當前單詞的詞首或前一個單詞的詞首
當前頁面跳轉:
H:頁首的行首
M:頁面中間行首
L:頁面尾部行首
當前行跳轉
0:跳轉至當前行的行首
^:跳轉至當前行的非空字符行首
$:跳轉至行尾
行間移動:
數字+G:跳轉至數字指定行
G:跳轉至最后一行的行首
1G或者gg:跳轉至第一行行首
句間移動:
):下一句
(:上一句
段落間移動:
}:下一段
{:上一段
翻屏:
ctrl f:向前翻一屏
ctrl+b:向之前翻一屏
crtl+d:向下翻半屏
ctrl+u:向上翻半屏
關閉文件:
ZZ:命令模式下下保存退出
ZQ:不保存退出
命令模式下的字符編輯:
x:刪除字符
#x:刪除光標所在處的#個字符,包括他本身
xp:交換光標所在處的字符及其后面字符的位置
~:在當前光標所在處轉換大小寫
替換字符:
r:替換光標所在處的字符
-R:進入替換模式,一個個的替換
刪除操作:
d:刪除命令,結合光標跳轉字符實現范圍刪除
d$:刪除至行尾(不包括光標所在處的字母)
d^:刪除至非空行首(不包括光標所在處的字母)
d0:刪除至行首(不包括光標所在處的字母)
dw:刪除至下一個單詞的詞首(都包括光標所在位置的字母)
de:刪除至下一個單詞的詞尾
db:刪除至前一個單詞的詞首或者當前單詞的詞首
dd刪除光標所在行
D:從當前光標刪除至行尾。(不包括光標所在處的字母)
:wq:保存退出
:q 不保存退出
x:保存退出
復制文本
y:復制,與命令d類似(都包括復制光標所在位置的字母)
y0:復制到行首(不包括光標所在處)
y^:復制到非空行首(不包括光標所在處的字母)
y$:復制到行尾(不包括光標所在處的行尾)
yy:復制當前行
yw:復制當前位置到下一個單詞詞首(復制包括光標當前所在處的字母)
ye:復制當前位置到下一個單詞詞尾 (復制包括光標當前所在處的字母)
yb:復制當前位置到當前單詞詞首或上一個單詞的詞首(復制包括光標當前所在處的字母)
粘貼:
p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方,否則粘貼至當前光標所在處的前面。
P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方,否則粘貼至當前光標所在處的前面。
c與d的區別在于c可以刪除后立刻進入插入模式。
地址定界 :用于確定搜索范圍或者替換范圍
start_pos,end_pos #: 具體第#行,例如2表示第2行;
#,#: 從左側#表示行起始,到右側#表示行結尾
#,+#: 從左側#表示的行起始,加上右側#表示的行數
:2,+3 表示2到5行
.: 當前行
$: 最后一行
.,$-1 當前行到倒數第二行
%:全文, 相當于1,$
/pat1/,/pat2/ 從第一次被pat1模式匹配到的行開始,一直到第一次被 pat2匹配到的行結束 #,/pat/ /pat/,$ v 使用方式:后跟一個編輯命令
d 刪除
y 復制
w file: 將范圍內的行另存至指定文件中
r file:在指定位置插入指定文件中的所有內容
例如:1,/^U/dv
撤銷改變 v
vu撤銷最近的更改 v
#u撤銷之前多次更改 v
U 撤消光標落在這行后所有此行的更改 v
按Ctrl – r重做最后的“撤消”更改 v
. 重復前一個操作 v
n.重復前一個操作n次
搜索文檔
查找 /PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向v
替換:
s: 在擴展模式下完成查找替換操作
格式:
s/要查找的內容/替換為的內容/修飾符 要查找的內容:可使用模式 替換為的內容:不能使用模式,但可以使用\1, \2, … 等后向引用符號;還可以使用“&”引用前面查找時查找到的整個內容
修飾符:
i: 忽略大小寫
g: 全局替換;默認情況下,每一行只替換第一次出現
gc:全局替換,每次替換前詢問 v
查找替換中的分隔符/可替換為其它字符,例如
%s@/etc@/var@g
%s#/boot#/#i
第一步:定邊界
第二步:s功能替換
第三步:查找的內容用正則匹配,分隔符為@,#
第四步:替換的內容可以引用,不能用正則
第五步:參數,g或者i,c詢問是否覆蓋
vim寄存器
有26個命名寄存器和1個無命名寄存器,常存放不同的 剪貼版內容,可以不同會話間共享。 v
用a,b,…,z表示,用“寄存器表示,放在數字和命令之間
如:
3"tyy 表示復制3行到t寄存器中
"tp 表示將t寄存器內容粘貼 v
未指定,將使用無命名寄存器 v
有10個數字寄存器,用0,1,…,9表示,0存放最近復 制內容,1存放最近刪除內容。當新的文本變更和刪除 時,1轉存到2,2轉存到3,以此類推。數字寄存器不能 在不同會話間共享。 v
可視化和多窗口 v
允許選擇的文本塊
v 面向字符
V 面向行 ctrl-v 面向塊 v
可視化鍵可用于與移動鍵結合使用:
w, ) , } ,箭頭等 v
突出顯示的文字可以被刪除,復制,變更,過濾,搜索/替換等。這就是可視化存在的最大意義。
vim FILE1 FILE2 FILE3 …
:next 下一個
:prev 前一個
:first 第一個
:last 最后一個
:wall 保存所有
:qall 退出所有
:wqall
定制vim的工作特性:
配置文件:永久有效
全局:/etc/vimrc
個人:~/.vimrc
擴展模式:當前vim進程有效 v
(1) 行號 顯示:set number, 簡寫為set nu 取消顯示:set nonumber, 簡寫為set nonu v
(2) 括號成對匹配 匹配:set showmatch, 簡寫為set sm 取消:set nosm
(3) 自動縮進 啟用:set ai 禁用:set noai v
(4) 高亮搜索 啟用:set hlsearch 禁用:set nohlsearch v
(5) 語法高亮 啟用:syntax on 禁用:syntax off v
(6) 忽略字符的大小寫 啟用:set ic 不忽略:set noic
(7) 文件格式 啟用:fileformat=unix 不忽略: fileformat=dos v
(8) 設置文本寬度 :set textwidth=65 (vim only) :set wrapmargin=15
20160808作業:
4、如何設置tab縮進為4個字符?
在家目錄下創建~/vimrc文件,添加參數tabstop=4.
5、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;
cp -a /etc/rc.d/init.d/functions /tmp
vim /tmp/functions
%s@/etc/sysconfig@/var/log@g
6、刪除/tmp/functions文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號;
vim /tmp/functions
:%s@^#\([[:space:]]\+\)@\1@
原創文章,作者:liuzhuo,如若轉載,請注明出處:http://www.www58058.com/33709