簡單介紹vim文字編輯器
一、文字編輯器VIM:
vim和vi的區別
vim介紹:
vim是unix作業系統中的文字編輯器
vim=vi+IMproved:加入了多級撤銷、語法高亮和自動補全、
支援多種外掛、可通過網路協議(HTTP/SSH)編輯檔案、支援多檔案編輯、可編輯壓縮格式的檔案
vimrc配置
rc=run+command:每一行作為一個命令進行執行
分系統級別的vimrc和使用者級別的vimrc
快捷鍵
eg:
1、終端輸入vim test
表示已vim文字編輯器開啟test.txt,這時為普通模式
2、進入之後輸入
:
進入編輯模式
3、當輸入
3.1
:h vimrc
表示幫助顯示vimrc的資訊,這時可以檢視什麼時vimrc的定義,如果要退出幫助介面回到編輯介面,輸入
3.2
:q
直接enter鍵即可
3.3
:q!
表示不儲存當前修改,直接退出
3.4
/××××
表示高亮顯示內容為××××的內容
3.5
××××?
表示查詢內容為××××的位置
3.6
點選
i
表示進入插入模式,這時開始可以修改檔案
3.7
點選
Esc
表示退出編輯模式
4、若開啟之後輸入
:version
可得到vim的版本資訊,同樣以3的退出方式退出vim編輯器
5、可在終端輸入
vim ~/.vimrc
開啟vimrc檔案
6、vimrc中的註釋方式為單引號
"
開始
7、終端可輸入clear
清除歷史命令
vim四種不同模式
普通模式:開啟檔案之後的預設模式,可以進行移動查詢刪除修改等操作
可視模式:可對一整區操作
開啟檔案之後,輸入
v
即可進入可視模式,這個時候移動游標即可選中一整塊區域,如果想刪除,直接點選
d
即可刪除這塊內容
插入模式:可新增文字
開啟檔案之後,輸入
i
即可進入插入模式,這個時候就可以在檔案中新增內容
命令模式:和普通模式類似
即先輸入
:
再輸入其他命令
如上面的
:version
可檢視版本
在學習下面的操作之前,可vim一個檔案,再輸入
:h operator
檢視支援的操作指令
二、移動、跳轉與縮排
游標的移動 h左移;l右移;j下移;k上移;$移動到行尾;0(包含縮排)或shift+6(不包括縮排)移動到行首 單詞和字串移動 w/W正向移動到下一個單詞開頭 b/B反向移動 e/E正向移動下一單詞結尾 ge反向 跳轉 ctrl+f/F下一頁 ctrl+b/B上一頁 ctrl+d/u向下/上翻半頁 G跳轉至檔案的最後一行 {g}+ctrl+g/G檢視檔案資訊/{g}更加詳細 <line_number>gg/G跳轉到指定行 縮排 >>表示當前行右縮排 <<表示當前行左縮排 :m,n>表示進入命令模式,m到n行縮排 :m>n等同於:m,m+n-1表示命令模式m行開始共n行縮排一次
三、剪下、複製、粘帖、撤銷和恢復重做(vim當中對應的單詞為delete、yank、put、undo和redo(ctrl+r))
首先
:reg
進入暫存器
剪下:
dd表示刪除整行
複製:
yy表示複製整行
yw表示複製當前游標單詞
y2w表示複製正向兩個單詞(可以為n個)
p/P表示粘帖到游標後/游標前
四、調換字元:
vim開啟檔案之後,查詢某個字元可直接點選
f+
需要查詢的字元(eg:空格或其他字元)+x
就會跳到最近查詢字元的位置,並且刪除該字元,這時再按下p即可進行貼上
五、組合刪除:
格式為:[count]operation([count]{motion})
eg:2d3w表示正向刪除三個單詞;5dw表示正向移動5次刪除單詞
x/X表示刪除游標下/前單個字元
dw表示刪除一個單詞
d{hljk}表示刪除上下左右一個操作前的字元
d$表示刪除游標到行尾的字元
d^或d0表示刪除游標到行首的字元
六、修改、查詢和替換
插入:
shift+i/A表示插入模式並移動到行首/尾
a/i表示游標後/前插入
[n]+O/o:表示行前/後插入n次
[n]+i:表示插入模式重複n次,即寫入要插入的內容之後,按下Esc,會自動填充n遍到文本當中
轉換:
~表示單個大小寫的轉換
g~w表示單詞大小寫轉換
g~$/g~~表示整行大小寫轉換
gU/uw表示單詞轉換為大/小寫
查詢:
F/f+字元:表示反向/正向查詢單個字元
t+字元:表示查詢字元前一個字元
dt+字元:刪除游標到查詢字元間的字元
/+字元:命令列查詢,再跳過n進行next的切換
替換(substitute):
[range]s[ubstitute]/{pattern}/{string}/[flags]
s/going/rolling/g:表示當前行所有going替換為rolling
%s/going/rolling/g:表示%匹配所有範圍,所有範圍都進行替換
shift+r/R:表示進入替換模式,可以直接替換
r:單個字元的替換,可直接修改
cw:修改單個單詞,就會刪除當前單詞,再進行替換(change word)
c$:修改游標之後行內容,就會刪除從當前位置到行尾的內容
七、vim暫存器/贈查刪改等常規操作/vim組合規律
暫存器:
有多種,且每種功能也不一樣
無名暫存器:預設暫存器
數字暫存器:0用於複製專用暫存器,1-9對應不同的暫存器
有名暫存器:26個英文字母
黑洞暫存器:只想刪除,想當於刪除
八、緩衝區與多檔案編輯/多視窗與標籤分組/文字物件和巨集/visual模式
緩衝區和多檔案編輯
緩衝區:buffer是記憶體中的緩衝區域,用於臨時存放vim開啟過的檔案
緩衝區列表:
命令檢視緩衝區列表
:files
:buffers
:ls
緩衝區列表指示狀態:
a表示啟用緩衝區,緩衝區被載入且顯示
h表示隱藏緩衝區,緩衝區被載入但不顯示
%表示當前緩衝區
#表示交換緩衝區
=表示只讀緩衝區
+表示已經更改緩衝區
-表示不可更改緩衝區
緩衝區列表的操作:
:bp表示上一個緩衝區(previous)
:bn表示下一個緩衝區(next)
:bf表示第一個緩衝區(first)
:bl表示最後一個緩衝區(last)
:buffer Nmuber或File_name表示指定緩衝區
:ball表示編輯所有緩衝區
ctrl+^/b#表示切換到前一個buffer
:bd + ×××.txt表示刪除名字為×××的緩衝區(delete)
:%bd表示刪除所有緩衝區
多視窗操作(分屏)及標籤分組
標籤包括多個視窗,相當於容納一系列視窗的容器,每個視窗包括一個buffer
分屏操作:(w可表示為window)
eg:vim -o4 buf-*表示垂直方向開啟四個已buf開頭的檔案
vim -O/on表示水平/垂直分屏
ctrl+w c/q表示關閉當前視窗/最後視窗時退(close,quit)
ctrl+w s表示上下分割當前開啟的檔案(split)
:sp filename表示上下分割,並開啟一個新的檔案
ctrl+w v表示左右分割當前開啟的檔案(vsp)
:vsp filename表示左右分螢幕,並開啟一個新的檔案
移動分屏和尺寸變換:
ctrl+w K表示向上移動
ctrl+w J表示向下移動
ctrl+w H表示向左移動
ctrl+w L表示向右移動
ctrl+w +表示增加高度
ctrl+w -表示減少高度
ctrl+w =表示所有屏高度一致
標籤操作:
:tabnew表示新建標籤
:tabfind+×××.txt表示查詢並在新標籤中開啟檔案
:tabs顯示已開啟標籤頁的列表
:tabclose表示關閉當前頁的標籤
:tabonly表示僅保留當前標籤頁開啟
:tabn/p/first/last表示移動到下/上/第一/最後一個標籤頁(next/previous/first/last)
:tabm表示將當前頁放置到指定位置
標籤操作和命令鍵:
gt/T表示移動到下/上一個標籤
{i}gt表示移動到i位置的標籤
:tabe編輯標籤中的某個檔案
tabm 0/tabm表示移動當前tab到第一個/最後一個(m表示move)
tabm{i}表示移動當前tab到i+1位置
檔案物件和巨集:
文字物件是在視覺化模式下的表現,一般包括
w:word s:sentence p:paragrapg 塊物件
視覺化模式下的指令
viw表示選中單詞
vis表示選中句子
vip表示選中段落
vi(表示選中圓括號中的內容
vi[表示選中中括號中的內容
vit表示選中標籤中的內容
同時可以帶上數字,進行組合操作
eg:v3aw表示選中三個單詞,包括中間的兩個間隔空格
v3iw表示選中三個單詞,指兩個單詞和一個空格,總共三個
巨集的簡單操作(類似於函式,將你的操作進行儲存,再進行批量操作):
qa開始錄製巨集存到暫存器a中
qA追加巨集在a暫存器中追加
[email protected]執行n遍a暫存器中的操作(@表示呼叫暫存器,執行完畢之後直接點選q即可退出暫存器)
@@再執行一遍上一次操作
:let @a= '編輯巨集a暫存器
:n,mnormal @a表示n到m行執行暫存器a巨集操作
visual模式
在視覺化模式下,可以對一個文字塊進行整體操作
三種子模式:
v表示啟用面向字元的可視模式 V/shift+v表示啟用面向行的可視模式 Ctrl+v表示啟用面向列塊的可視模式
視覺化操作:
gv表示重新選擇上一次的選中區域
o表示切換選取邊界,即在選中區域的兩端進行切換
具體實踐:
eg:進行整行的替換
先V選中整行,再r+&即將整行變成&