文件編輯器類別:
1)全屏文本編輯器:
nano
vi,vim
emacs
2)行文本編輯器:
sed
vi--->vim
模式化的編輯器:多種不同模式
編輯模式(命令模式)
輸入模式
末行模式:vim有許多內置命令,此模式即爲其命令的接口
1、打開VIM
vim
vim [OPTIONS] [FILE]...
+#: 快速定位至第#行
+:快速定位至最後一行
+/PATTERN: 快速定位至被模式第一次匹配的行
2、模式間轉換:
默認爲編輯模式--->輸入模式:
i:insert,在當前光標處,轉換爲輸入模式
I:在當前光標所在行行首,轉換爲輸入模式
a:append,在當前光標所在出字符後方,轉爲爲輸入模式
A:在當前光標所在行行尾,轉換爲輸入模式
o:在當前光標所在行的下方新建一個空白行,並轉換爲輸入模式
O:在當前光標所在行的上方新建一個空白行,並轉換爲輸入模式
輸入模式--->編輯模式:按ESC鍵
編輯模式--->末行模式: :
末行模式--->編輯模式:按ESC鍵
(注:輸入模式無法直接切換至末行模式)
3、退出vim
末行模式:
q 退出
w 另存爲 w /tmp/test
q! 強制退出,不保存編輯的內容直接退出
wq 保存退出
x 保存退出
wq!,x! 強制保存退出
編輯模式(命令模式):
ZZ:保存退出
4、編輯命令
①、光標移動:
字符間移動:h,j,k,l 左,下,上,右 #[h,j,k,l]:一次移動N個字符間距
單詞間移動:w 下一個單詞的詞首
e 當前或下一個單詞的詞尾
b 當前或前一個單詞的詞首 #[w,e,b]
行首行尾間跳轉:
0:跳轉至絕對行首
^: 行首的第一個非空白字符
$: 跳轉絕對行尾
行間快速跳轉:#G 第#行 末行模式:# 跳轉至第#行
G 文尾
gg 文首
句間移動:
)
(
段落間移動:
}
{
②、編輯操作:
x:刪除光標所在出字符 #x: 刪除光標所在處及向後的公#個字符
d:刪除命令
dd:刪除光標所在行 相當於D
#dd:刪除光標所在行及下的共#行
與跳轉命令一同使用:
d$:刪除光標所在處至行尾的內容
d0,d^
dw,db,de
r:替換命令 R
p:粘貼,
行級別:
p:粘貼在光標所在行下方
P:粘貼在光標所在行上方
小於行級別:
p:粘貼在光標所在出的後方
P:粘貼在光標所在出的前方
y:複製命令
yy:刪除光標所在行 相當於Y
#yy:刪除光標所在行及下的共#行
與跳轉命令一同使用:
y$:刪除光標所在處至行尾的內容
y0,y^
yw,yb,ye
c:修改 刪除後進入輸入模式
C cc c$ c^ c0
u:撤銷 #u 一次撤銷最近的#次操作
ctrl+r 撤銷此前的撤銷
. 重複前一條命令
附:
VimTutor中文版
5、可試化模式
v:選擇光標所在行的光標左側的內容
V:光標所在行整行都被選定
6、編輯模式下的翻屏命令
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
末行模式:
7、文本查找
支持正則表達式
/PATTERN 向尾部進行 n,N
?PATTERN 向首部進行 n,N
8、文本替換
有部分內置命令用於編輯操作,此時可使用地址定界法進行
地址定界:startline[,endline]
#:第#行
.:當前行
$:最後一行
%:全文
相對定界:
+#:從指定位置向下#個行 10,+5
-#:從指定位置向上#個行 10,-5
文本替換:“s”
s/要查找的內容/替換爲的內容/修飾符
/:用作分隔符,用於分割“要查找的內容”和“替換爲的內容”此分隔符可使用其他符號如:@,#。
要查找的內容,可使用正則表達式,可以在後面“替換爲的內容”部分使用“&”全部引用
替換爲的內容,不可使用正則表達式,一般爲正常文本但可以使用正則表達式中\1,\2...保存的內容
修飾符:
i:查找時不區分字符大小寫
g:全局替換
9、多文件模式
打開文件:vim [OPTIN]...[FILE]...
多文件:
末行模式:
next,prev,first,last
保存並退出所有文件:
wqall,,wall,qall
多窗口:
-o:上下分割窗口
-O:左右分割窗口
Ctrl+w,ARROW
注意:單個文件也可以分割爲多個窗口進行查看
Ctrl+w,放開再按s 上下分割
Ctrl+w,v 左右分割
10、界面顯示特性
末行模式:
顯示行號:默認沒開啓
set number,set nu
set nonumber,set nonu
語法高亮:
syntax on
syntax off
搜索高亮
set hlsearch
set nohlsearch
自動縮進:默認沒開啓
set autoindent,set ai
set noauntoindent,set noai
區分字符大小寫的開啓和關閉
set ignorecase,set ic
set noignorecase,set noic
高亮顯示匹配的符號對兒:默認開啓
set showmatch,set sm
set noshowmatch,set nosm
忽略字符大小寫
set ic
set noic
11、vim的配置文件
全局:/etc/vimrc
個人:~/.vimrc
12、在vi中執行命令和導入文件
在末行模式下:
導入文件: r FILENAME
執行命令: !COMMAND
導入執行命令的結果: r!COMMAND
13、定義快捷鍵和替換
在末行模式下:
替換:ab mymail [email protected] #文中後面所寫的所有mymail將被替換爲[email protected]
快捷鍵: map CRTL+p I#<ESC> #按Ctrl+p鍵就會在光標所在行行首插入#並返回編輯模式