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:取消顯示行號
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/501031.html
標籤:其他
