1.vi (virtual interface)文本編輯器
文本編輯種類:
行編輯器:sed
全屏編輯器:nano vi
vim vi-improved
其他編輯器:
gedit:簡單的圖形編輯器
gvim:vim編輯器的圖形版本
2.vim用法詳解
(1)vim [option]..[file]..
vim +# file 打開文件時光標在第#行行首
vim +/pattern 打開文件后,光標在第一次匹配pattern行的行首
vim + file 打開文件后,光標在最后一行行首
vim -b file 二進制格式打開文件
vim -m file 只讀方式打開文件
vim -d file1 file2…比較不同文件
vim -e 直接進入ex模式
文件存在,打開并顯示其內容
文件不存在,第一次編輯存盤后創建
實例:以root身份以只讀方式打開/etc/shadow文件,且進入后,光標在第一行行首
3.vim的三種模式:
命令模式(默認):移動光標,剪切粘貼文本
插入模式:修改文本
拓展命令模式:保存,退出等
esc退出當前模式
esc esc返回命令模式
4.模式的轉換
命令模式——>插入模式
i:在光標所在處輸入
I:在光標所在行行首輸入
a:在光標所在處后邊輸入
A:在光標所在行行尾輸入
o:在光標所在行的下方打開一個新行
O:在光標所在行上方打開一個新行
插入模式——>命令模式
esc
命令模式——>拓展命令行模式
:
拓展命令行模式——>命令行模式
esc
鎖定和解鎖 ctrl+s ctrl+q
5.關閉文件的方法
命令行模式下:
ZZ:保存退出
ZQ:不保存退出
末行模式下:
:q不保存,直接退出
:q!強制退出,丟掉做出的修改
:wq保存退出
:x 保存退出
6.拓展模式下可做操作
:q不保存,直接退出
:q!強制退出,丟掉做出的修改
:wq保存退出
:x 保存退出
:w寫入磁盤
:r file讀取指定文件到當前文件中
:w file把當前文件內容保存到指定文件中
:!command在該模式下執行命令
:r!command 把命令執行結果讀入當前文件
實例:在末行模式下執行w命令,并把執行結果讀進光標所在行下一行
7.命令行模式下操作說明
(1)光標移動
字符間跳轉:
h:左 j:下 k:上 l:上
#command 指定一次跳轉的字符數
單詞間跳轉
w:移動到下一個單詞詞首
e:移動到當前詞尾或下一個單詞詞尾
b:移動到當前詞首或上一個單詞詞首
#command一次跳轉單詞數
行首行尾跳轉
^:跳轉到非空行首
0:跳轉到行首
$:跳轉到行尾
行間移動
#G:移動到第#行 末行模式下:# 移動到#行
G:移動到最后一行
gg、G:移動到第一行
句間移動
):下一句
(:上一句
段間移動
}:下一段
{:上一段
當前頁跳轉
H:當前頁頁首
M:當前頁中部
L:當前頁尾部
翻屏操作
ctrl+b :向上翻一頁
ctrl+f :向下翻一頁
ctrl+d:向下翻半頁
ctrl+u:向上翻半頁
(2)文件內容編輯
字符編輯
x:刪除光標處字符
#x:刪除光標處開始的第#個字符
xp:交換光標所在字符與其后邊字符的位置
~:轉換大小寫
替換命令
r:替換光標所在字符
R:切換成REPLACE模式
刪除命令
d:刪除命令,可結合光標跳轉字符,實現范圍刪除
d$:刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
dw:刪除到下一個單詞詞首
de:刪除到本單詞或下一個單詞詞尾
db:刪除到本單詞或上一個單詞詞首
dd:刪除光標所在行
#dd:從光標所在行開始連續刪除#行
復制命令(用法類似于d)
y
粘貼命令
p:如果粘貼內容為一整行,粘貼到光標所在行的下一行,否則在光標后邊(和復制內容容量沒關系)
P(大寫):如果粘貼內容為一整行,粘貼到光標所在行的上一行,否則在光標前邊
改變命令
c:修改后切換成插入模式
c$:光標所在到行尾刪除重新編輯
c^:光標所在到非空行首刪除重新編輯
c0:光標到行首刪除重新編輯
cw:光標所在到下一個單詞詞首刪除重新編輯
ce:光標所在到本單詞詞尾或下一個單詞詞尾刪除重新編輯
cb:光標所在到本單詞詞首或上一個單詞詞首內容刪除重新編輯
#command
cc:刪除當前行,并輸入新內容
#cc實現多行刪除添加新內容(多行刪除為一個空行,但可以添加多行內容)
(3) 100iwang[esc] 粘貼wang100次
<start position><command><end position>
command:
d 刪除 ;y 復制; gU變大寫; gu變小寫
例如
0y$:從行頭拷貝到行尾
實例:一文件內容如下所示,把第八行小寫字母變為大寫
發現黃色區域變為大寫
(4)撤銷更改
u:撤銷最近的更改
#u:撤銷之前的#次修改
U:撤銷光標落在這一行后所作的全部更改
ctrl+r:取消最近的撤銷更改
.:重復前邊的操作
#.:重復上一個操作#次
8.末行模式下操作說明 (地址界定編輯命令)
(1)地址界定:start-position,end-position
#:第#行
#1,#2:從#1行到#2行
#1,+#2:從#1行開始,再往后數#2個行
如:2,+3表示2到5行
.:當前行
$:最后一行
$-1:倒數第二行
%:全文,相當于“1,$”
/pat1/,/pat2/:從pat1第一次被匹配的行開始,到pat2第一次被匹配的行結束
#,/pat/:從#行開始,到pat第一次被匹配的行結束
/pat/,$:從pat第一次被匹配的行開始,到最后一行
(2)編輯命令
d:刪除選定內容
y:復制
w file:保存到指定文件
r file:讀入指定文件
(3)查找
/pattern 向文件末尾查找
?pattern 向文件首部查找
n:與命令同方向查找
N:與命令反方向查找
實例:查找文件中的關鍵字“root”
(4)查找并替換
格式:s/要查找的內容/替換位的內容/修飾符
要查找的內容:可使用模式
替換位的內容:不可使用模式,但可以使用后向引用符\1,\2…;還可以使 用‘&’引用前邊查到的整個內容
修飾符:
i:忽略大小寫
g:全局替換,默認情況下,僅僅替換第一次出現內容
gc:每次替換前詢問
查找替換分隔符可用@、#替換
9.vim的寄存器
有26個有名寄存器和一個無名寄存器,不同會話間共享
用a…z表示有名寄存器,用”“寄存器“表示使用哪個寄存器,放在數字和命令之間
如3"tyy表示復制三行到t寄存器中
未指定,使用無名寄存器
10.以二進制方式打開文件
vim -b binaryfile
末行模式下,利用xxd轉換為可讀的16進制
:%!xxd
末行模式下,:%!xxd -r轉換為2進制
實例:把/bin/cat換為16進制的
11.可視化模塊
v :面向字符
V:面向行
ctrl+v面向塊
可視化可以與移動鍵結合使用
突出顯示的內容可以被刪除,復制,變更,過濾,搜索,替換。。。
12.多文件模式
vim file1 file2 file3…
:next
:prev
:first
:last
:wall
:qall
:wqall
13.使用多窗口
(1)多文件分割
vim -o|-O file1 file2…
-o 水平分割
-O垂直分割
窗口切換:ctrl+w
(2)單文件分割
ctrl+w+s 水平分割
ctrl+w+v 垂直分割
ctrl+w+q 取消相鄰窗口
ctrl+w+o 取消去不窗口
:wqall 全部退出
14.(1)配置文件:
/etc/vimrc 全局配置文件
~.vimrc 用戶個人配置文件
(2)在vim末行模式下
行號:
set number(顯示行號)
set nonumeber(不顯示行號)
括號成對匹配
set showmatch 簡寫set sm
set nosm
高亮搜索
set hlsearch
set nohlsearch
語法高亮
syntax on
syntax off
自動縮進
set ai
set noai
忽略大小寫
set ic
set noic
文件格式
fileformat=unix
fileformat=dos
:set 顯示當前vim設置參數
:set all: 顯示全部配置參數
15.課后作業
(1).復制/etc/profile文件到/tmp下,用查找替換方式刪掉/tmp/profile行首的空白字符
圖中黃色部分即為刪掉部分
(2)復制/etc/rc.d/init.d/functions到/tmp下,用查找替換方式在/tmp/functons文件中以空格為行首的行添加#號
(3)如何設置tab縮進4個字符
修改配置文件.vimrc如下
原創文章,作者:mengzhiqian,如若轉載,請注明出處:http://www.www58058.com/32846