Linux vim 編輯器 1、vi/vim介紹 Linux下常見的文本編輯器有: emacs pico nano joe jed vi 諸如此類,但我們只需要掌握vi/vim即可 vi編輯器是linux和unix上最基本的文本編輯器,工作在字元模式下。由於不需要圖形界面,vi是效率很高的文本編輯器 ...
Linux vim 編輯器
1、vi/vim介紹
Linux下常見的文本編輯器有:
- emacs
- pico
- nano
- joe
- jed
- vi
諸如此類,但我們只需要掌握vi/vim即可
vi編輯器是linux和unix上最基本的文本編輯器,工作在字元模式下。由於不需要圖形界面,vi是效率很高的文本編輯器。儘管在linux上也有很多圖形界面的編輯器可用,但vi在系統和伺服器管理中的功能是那些圖形編輯器所無法比擬的。
vi編輯器可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定製,這是其他編輯程式所沒有的。
vim是vi的增強版,比vi更容易使用。vi的命令幾乎都可以在vim上使用。
2、vi/vim使用詳解
2.1 vi/vim的特點
•vi/vim是一種純文本編輯器,它不像word可以排版,可以調整字體大小,可以改變字體等等。
•vi/vim只是一個文本編輯工具,只能對文本的內容進行操作,比如新增內容、修改內容、刪除內容等等
•全屏幕顯示
2.2 vi/vim三種編輯模式
vi/vim編輯器有三種編輯模式,分別是:
命令模式
輸入模式
末行模式
編輯模式 | 作用 |
---|---|
命令模式 | 用戶執行命令,比如複製行、粘貼行等 |
輸入模式 | 用於輸入文本、修改文本等 |
末行模式 | 用於查找文本、保存修改等 |
vi/vim三種編輯模式之間的轉換的方式:
-
命令模式—>輸入模式
i:insert,在當前游標所在字元的前面,轉為輸入模式
I:大寫的i,在當前游標所在行的行首轉換為輸入模式
a:append,在當前游標所在字元的後面轉換為輸入模式
A:在當前游標所在行的行尾轉換為輸入模式
o:open,在當前游標所在行的下方新建一行並轉為輸入模式
O:大寫的o,不是數字0,在當前游標所在行的上方新建一行並轉換為輸入模式 -
輸入模式—>命令模式
ESC
-
命令模式—>末行模式
Shift+:
-
末行模式—>命令模式
ESC
2.3文本編輯方式
打開文件方式:文件打開後預設處於命令模式下
vim filename //打開文件
vim +n filename //打開文件並定位到第n行
vim +/pattern filename //打開文件並定位到第一次被/pattern匹配到的內容行首
關閉文件方式:末行模式關閉文件
命令 | 意義 |
---|---|
q | 退出 |
q! | 不保存退出 |
w | 保存但不退出 |
w! | 強行保存 |
wq | 保存並退出 |
wq! | 強行保存並退出 |
x | 強行保存並退出 |
命令模式關閉文件
ZZ //保存退出
命令模式下移動游標的方式
h:向左移動一個字元
l:向右移動一個字元
j:向下移動一個字元
k:向上移動一個字元
#h:向左移動#個字元
#l:向右移動#個字元
#j:向下移動#個字元
#k:向上移動#個字元
以單詞為單位移動
w:移動到下一個單詞的詞首
e:跳至當前或下一個單詞的詞尾
b:跳至當前或上一個單詞的詞首
#w:以當前游標為起點跳至第#個單詞的詞首
#e:以當前游標為起點跳至第#個單詞的詞尾
#b:以當前游標為起點跳至第#個單詞的詞首
行內跳轉
0:數字0,跳轉到絕對行首
^:跳轉到行首的第一個非空白字元
$:跳轉到絕對行尾
行間跳轉
gg:跳轉到第一行
G:跳轉到最後一行
#gg:跳轉到第#行
#G:跳轉到第#行
翻屏
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏
命令模式下字元編輯:
編輯命令 | 意義 |
---|---|
x | 刪除游標所在處的單個字元 |
#x | 刪除游標所在處及其向後共#個字元 |
xp | 交換游標所在處的字元及其後面字元的位置 |
命令模式下刪除字元:d
命令模式下d命令與其它命令組合使用:
d$:表示刪除當前游標所在位置到行尾的內容
d^:表示刪除當前游標所在位置到第一個行首非空白字元位置的內容
d0:表示刪除當前游標所在位置到絕對行首的內容
dd:刪除當前游標所在行整行
#dd:刪除包括當前游標所在行在內的#行
D:刪除當前游標所在行的內容,保留空行
dG:從游標所在行刪除到文件尾
末行模式下d命令的使用:
語法:“:StartADD,EndADDd”
這裡的StartADD與EndADD是指一個範圍,例如:
:1,5d //表示刪除第1到第5行
末行模式下範圍表示方法:
表示方法 | |
---|---|
. | 游標所在當前行 |
$ | 最後一行 |
+# | 游標所在行往後#行 |
$-# | 倒數第#行 |
% | 全文 |
命令模式下複製命令:yy
命令模式下粘貼命令:p
p:小寫p
若刪除或複製的為整行內容,則粘貼至游標所在行的下方
若刪除或複製的為非整行,則粘貼至游標所在字元的後面
P:大寫p
若刪除或複製的為整行內容,則粘貼至游標所在行的上方
若刪除或複製的為非整行,則粘貼至游標所在字元的前面
命令模式下替換:r
R:替換模式,替換多個字元
r#:將當前游標的字元替換為#,這裡的#可以是任何字元
命令模式下撤銷編輯:u
u:撤銷前一次的編輯操作,連接u命令可以撤銷此前的n次編輯操作
#u:直接撤銷此前的#次編輯操作
ctrl+r:還原最近一次的撤銷操作
.(點):重覆前一次編輯操作
可視化模式:
可視化模式下可以對選取的內容進行前面講的所有編輯操作
v:按字元選取內容
V:按矩形塊(行)選取內容
末行模式下文本查找:
/pattern:從上往下查找匹配的內容
?pattern:從下往上查找匹配的內容
n:從上往下查找匹配到的內容的下一條
N:從下往上查找匹配到的內容的下一條
末行模式下查找並替換:s
s命令只能在末行模式下使用
語法:ADDR1,ADDR2 s/pattern/string/gi
1,5 s/user/name/g //表示把第一行到第五行的所有user替換為name
末行模式下顯示或取消顯示行號:
set nu:顯示行號
set nonu:取消顯示行號