vi是Linux命令行界面下的文字編輯器,vim是vi的增強版(Vi IMproved),完全相容 可以理解成普通的txt文本與word文檔之間的差距。 註:還有一款全屏編輯器是nano,可以瞭解下 【vim的三種模式】 普通模式,編輯模式,命令模式 1.普通模式 使用vim命令打開文件,只能使用上 ...
vi是Linux命令行界面下的文字編輯器,vim是vi的增強版(Vi IMproved),完全相容
可以理解成普通的txt文本與word文檔之間的差距。
註:還有一款全屏編輯器是nano,可以瞭解下
【vim的三種模式】
普通模式,編輯模式,命令模式
1.普通模式
使用vim命令打開文件,只能使用上下左右鍵移動游標,並且操作複製,粘貼,刪除等之類的工作
2.編輯模式
普通模式下不能對文件內容進行編輯,只有按下“i,I,o,O,a,A,r,R,s,S”,等字母,進入編輯模式之後才可以執行錄入文字
編輯模式有一個插入的標記在屏幕的最下方
3.命令模式
在普通模式下,輸入“:/ ?”時,游標會自動定位在那一行,此模式中可以執行保存,退出,搜索,替換,顯示行號等相關操作
vim [OPTION]...FILE...
如果文件存在,則打開它,如果不存在,則打開一個新的文件,如果存檔則創建文件,不存檔則不創建文件
【vim打開文件進行快速定位】
+#:打開文件後,直接讓游標處魚第#行的行首
+/PATTERN:打開文件後,直接讓游標處於第一個被PATTERN匹配當的行的行首
vim +11 /etc/passwd
-b:二進位方式打開文件
-d:比較多個文件的差異
-m:只讀打開文件
ex file 或 vim -e:直接進入ex模式
【模式轉換】
普通模式 ----> 插入模式
i:insert,在游標所在處輸入
I:在游標所在行的行首輸入
a:在游標所在處的後一個字元輸入
A:在游標所在行的行尾輸入
o:在當前游標所在行的下一行新開一行 open
O:在當前游標所在行的上一行新開一行
字元間跳轉:
h:左
j:下
k:上
l:右 #[hljk]:指定一次跳轉多少的字元數
單詞間跳轉:
w:跳到下一個單詞的詞首
e:當前或下一個單詞的詞尾
b:當前或上一個單詞的詞首
#[web]:指定一次跳轉多少個單詞數
當前頁跳轉:
H:頁首
M:頁中
L:頁底
翻屏:
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
行首行尾跳轉:
^:調到行首非第一個非空白字元處
0:調到行首
$:跳轉至行尾
行間移動:
#G:跳到第#行
G:最後一行 例如:1G或gg:第一行
字元編輯:
x:刪除游標處的字元
#x:刪除游標處起始的#個字元
xp:交換游標所在處及其後面字元的位置 原理是:先刪除游標所在位置,然後使用p粘貼
~:轉換大小寫
替換命令:
r:替換個游標所在處的字元 7rv 游標後7為替換成v
R:切換成replace模式
刪除命令:
d:刪除命令,可結合游標跳轉命令實現範圍刪除
d$:刪除游標至行尾的字元
d^:刪除游標至行首非空白字元處
d0:刪除游標至行首
dw:刪除游標當標至下一個單詞的詞首
de:刪除游標至當前或下一個單詞的詞尾
db:刪除游標至上一個單詞的詞首
dd:刪除游標所在行
#dd:刪除#游標後的#行
複製命令:
y:複製
y$:從游標所在處複製到行尾
y0:從游標所在處複製到行首
y^:從游標所在處複製到行首的非空白字元處
ye:從游標所在處複製至當前或下一個單詞的詞尾
yw:從游標所在處複製至下一個單詞的詞首
yb:從游標所在處複製至上一個單詞的詞首
yy:複製游標所在行
#yy:複製多行
粘貼命令:
p:粘貼,如果緩衝區為整行,則粘貼在游標所在行的下一行,否則,粘貼在游標所在處的後面
P:粘貼,如果緩衝區為整行,則粘貼在游標所在行的上一行,否則,粘貼在游標所在處的前面
可視化模式:
v 按字元選定
V 按航選定,經常結合編輯命令,d,c,y
撤銷此前的編輯
u(undo)撤銷此前的操作
#u 撤銷指定次數的操作
撤銷此前的撤銷
vim中的末行模式:
按“:”進入末行模式
(1)地址定界
:start_pos,end_pos
# 具體第#行,例如2表示第2行
#,# 從左側#表示行起始,到右側#表示行結束
#,+# 從左側#表示行起始,加上右側#表示的行數
. 表示當前行
$ 表示最後一行
% 全文,相當於1,$
/part1/,/part2/
從第一次被part1模式匹配到的行開始,一直到第一次被part2匹配到的行結束
使用方式:
後跟一個編輯命令
d
y
w /PATH/TO/SOMEWHERE
:1,20w /tmp/.txt
r filename:讀取文件內容到當前文件中
:r /etc/fstab
q:退出
q!:強制退出
wq:保存並退出
wall 保存所有
x:保存並退出
ZZ:保存退出
ZQ:不保存退出
(2)查找
/PATTERN 從當前游標所在處尾部查找
?PATTERN 從當前游標所在處首部查找
n 與命令同方向
N 與命令反方向
(3)替換
s 在末行模式下完成查找替換操作
s/要查找的內容/替換為的內容/修飾符
替換的內容可以使用反向引用\1,\2,可以使用&引用前面查找時查到的內容
修飾符號:
i 忽略大小寫
g 全局替換,預設情況下,每一行只替換第一次出現
【定製vim的工作特性】
配置文件:永久有效
全局 :/etc/vimrc
個人:~/.vimrc 需要自己創建
末行:當前vim進程有效
(1)顯示行號:
set nu 顯示;
set nonu 取消顯示;
(2)括弧成對匹配:括弧高亮
set sm:設置;
set nosm:取消;
(3)自動縮進:
set ai
set noai
(4)高亮搜索:
set hlsearch high light search
set nohlsearch nohls
(5)語法高亮:
syntax on
syntax off
(6)忽略字元的大小寫:
set ic
set noic
(7)文本格式:
set fileformat=dos :啟用windows格式;
set fileformat=unix:啟用unix格式;
(8)設置文本寬度:
set textwidth=65 (vim only)
set wrapmargin=16
(9)設置tab鍵的縮進長度:
set tabstop=4
set softtabstop=4:設置一個退格鍵退回來的長度;
set shiftwidth=#:設置每一級縮進的長度;
set authindent:表示自動縮進;
(10)幫助信息:
:help option-list
:set or :set alal