vim的簡單應用
之前我們學習過Linux的思想,其中有一條就是一切皆文本,所以在這里大部分配置文件都是文本模式存在的,那么使用簡單的文字編輯器就可以修改配置了,之前我們學習過nano文本編輯器,但是Vim會比nano使用的更為方便,也更強大。
-
基本現在所有的Linux系統都會內置vim,但是其他的文本編輯器就不一定會有了。
-
vim具有程序編輯的能力,還可以使用字體顏色標明語法,方便程序設計。
-
程序簡單,如果上手了之后會更加快速的編輯文本。
-
很多軟件的編輯接口都會主動調用vim。
文本編輯器分為很多種類:
-
行編輯器:sed
-
全屏編輯器:nano , vi
-
gedit 圖形編輯器
-
gvim vim的圖形版本
vi的基本概念 基本上vim可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和擴展模式(last line mode),各模式的功能區分如下:
-
命令模式:默認的模式,控制光標的移動、字符、字或行的刪除/剪切/粘貼,或者進入插入模式和擴展模式,相當于一個中轉站,你無論進入那個模式都需要在命令模式里切換。
-
插入或者編輯模式:在這個模式里可以進行編輯,修改文本,按ESC退出到命令模式,在命令模式按i進入到編輯模式(后面會講很多方法進入插入模式)。
-
擴展命令模式:將文件保存或者退出,也可以設置編輯環境,比如輸入命令尋找字符串,列出行號等。
模式轉換
命令模式切換至編輯模式
-
i 進入編輯模式光標原地不動
-
a 進入編輯模式光標向后移動一位
-
o 進入編輯模式光標向下插入一行
-
I 進入編輯模式光標跳至行首
-
A 進入編輯模式光標跳至行尾
-
O 進入編輯模式光標向上插入一行
模式轉換
-
編輯模式按(Esc)切換至命令模式
-
命令模式按(:)切換至擴展命令模式
-
擴展命令模式按(Esc,enter回車)切換至命令模式
-
鎖定和解鎖:Ctrl+s,ctrl+q
擴展模式如何退出:
-
:q 退出
-
:q! 強制退出,不保存退出。
-
wq 保存退出
-
x 保存退出
命令模式如何退出:
-
ZZ 保存退出
-
ZQ 不保存退出
擴展模式(Ex模式)
-
按(:)進入編輯模式
-
創建一個命令提示符(:)在屏幕底部顯示
-
命令:
-
r+文件名 讀文件內容到當前光標處
-
w+文件名 將當前文件內容寫入到另一個文件(另存為)
-
!+命令 執行命令
-
r!+命令 將執行命令的輸出讀入進來
命令模式
- 字符間移動:
-
h 向左移動(87鍵盤) ← (全鍵盤)
-
l 向右移動(87鍵盤) → (全鍵盤)
-
j 向下移動(87鍵盤) ↓ (全鍵盤)
-
k 向上移動(87鍵盤) ↑ (全鍵盤)
-
w 下一個單詞的詞首
-
e 當前或下一個單詞的詞尾
-
b 當前或前一個單詞的詞首
-
H 頁首
-
M 頁中間行
-
L 頁底
-
G 最后一行行首
-
^ 跳至行首的第一個非空白字符
-
0 跳至行首
-
$ 跳至行尾
-
gg 第一行行首
-
Ctrl+f 向文件尾部翻一屏
-
Ctrl+b 向文件首部翻一屏
-
Ctrl+d 向文件尾部翻半屏
-
Ctrl+u 向文件首部翻半屏
- 刪除,替換:
-
x 刪除光標處字符
-
3x 刪除光標處起始3個字符(數字可以隨意換)
-
xp 交換光標所在處前后的字符位置
-
~ 轉換大小寫
-
J 刪除當前行后的換行符
-
r 替換光標所在處的字符
-
R 切換成REPLACE模式(替換模式)
- 刪除,復制,粘貼:
-
d$ 刪除到行尾
-
d^ 刪除到非空白行
-
d0 刪除到行首
-
dw 刪除一個單詞
-
dd 刪除一行 (刪除命令d可以結合其他命令一起使用,我就不全部寫下去了)
-
D 從當前光標位置一直刪除到行尾,留空行(d$一樣)
-
y 復制 (跟d一樣,可以結合其他命令一起使用,我就不全部寫了)
-
yy 復制行
-
p 粘貼
- 撤銷
-
u 撤銷最近的更改
-
#u 撤銷之前多次更改 (#次)
-
U 撤銷光標在這此行前后所有操作(光標不可離開這行,離開則無效)
-
(.) 重復前一個動作
-
n(.) 重復前一次操作n次
(注意在vim里面一定要注意大小寫,大小寫一定要分清楚)
沒事可以多看看圖片,當然自己多敲敲最好:
擴展命令模式
-
按(:)進入擴展命令模式
-
位置定界
-
# 具體第#行,如果是3就是第3行。
-
#,# 從左側#表示起始行,到右側#表示結尾行
-
#,+# 從左側#表示起始行,加上右側#表示結尾行,如果2,+3就是2到5行
-
(.) 當前行
-
$ 最后一行
-
% 全文
-
/PATTERN 從當前光標所在處向文件尾部查找
(例如:/^a 搜索a開頭)
- ?PATTERN 從當前光標所在處向文件首部查找
-
s 在擴展模式下完成查找替換的操作
-
:%s /文件1/文件2/修飾符/ 搜索文件1替換為文件2
-
修飾符
-
i 忽略大小寫
-
g 全局替換;默認情況下,每一行只替換第一次出現的
-
gc 全局替換,替換時會詢問
編輯二進制文件
-
以二進制方式打開文件:vim -b 文件
-
擴展命令模式下,利用xxd命令轉換為易讀的十六進制:%!xxd
-
編輯二進制文件
-
擴展命令模式下,利用xxd轉換回二進制:%!xxd -r
-
保存退出
vim 可以同時打開多個文件,簡稱多文件模式
- vim 文件1 文件2 文件3
-
:next 下一個
-
:prev 前一個
-
:first 第一個
-
:last 最后一個
-
:wall 保存所有
-
:qall 退出所有
-
wqall 保存退出所有
vim 可以使用多個窗口
- 多文件分割
-
vim -o 水平分割
-
vim -O 垂直分割
-
在窗口里面切換:Ctrl+w,Arrow
- 單文件窗口分割
-
Ctrl+w,s:split 水平分割
-
Ctrl+w,v:vertical 垂直分割
-
Ctrl+w,q 取消相鄰窗口
-
Ctrl+w,o 取消全部窗口
-
wqall 退出
寄存器
-
寄存器就是粘貼,復制的意思,在Linux里一共有26個寄存器和一個無名寄存器,意思就可以復制26個不同的內容,然后進行粘貼,相當方便。
-
從a-z,一共26個字符,就相當于26個寄存器,它的時候方法是:
-
復制粘貼的時候加上a,就是復制到a的寄存器中
-
“ayy” 復制 (a可以隨時更改一共26個字符,可以存26個)
-
“ap” 粘貼 (a可以隨時更改一共26個字符,可以存26個)
vim的功能相當強大,這些都只是其中的一部分,這么多功能還要你自己去熟練運用,當你熟悉之后,你可以查看幫助了解更多。
-
type vim 查看是內部或外部命令
-
help 查看內部命令幫助
-
man 查看外部命令幫助
原創文章,作者:Az2h1丶,如若轉載,請注明出處:http://www.www58058.com/78154