1. 安裝
sudo apt-get install vim
或者
yum install -y vim-enhanced
2. 具體使用技巧如下
命令/操作 |
說明 |
vim + filename |
打開文件並定位到最后一行 |
vim +5 filename |
打開文件並定位到第5行 |
:edit /path/to/file |
在vim中打開文件(支持Tab補全) |
命令/操作 |
說明 |
j |
向下移動一個實際行 |
gj |
向下移動一個屏幕行 |
k |
向上移動一個實際行 |
gk |
向上移動一個屏幕行 |
0 |
移動到實際行的行首 |
g0 |
移動到屏幕行的行首 |
^ |
移動到實際行的第一個非空白字符 |
g^ |
移動到屏幕行的第一個非空白字符 |
$ |
移動到實際行的行尾 |
g$ |
移動到屏幕行的行尾 |
f+ |
查找下一個+(;下一個,上一個) |
w |
正向移動到下一單詞的開頭 |
b |
反向移動到當前單詞/上一單詞的開頭 |
e |
正向移動到當前單詞/下一單詞的結尾 |
ge |
反向移動到上一單詞的結尾 |
0 |
移動到行首 |
$ |
當前行的末尾 |
gg/1G |
文件第一行 |
G |
文件最后一行 |
:7 |
定位到第7行 |
行號+G |
指定行 |
ctrl + o |
跳轉回之前的位置 |
ctrl + i |
返回跳轉之前的位置 |
ctrl + U |
上翻頁 |
ctrl + D |
下翻頁 |
命令/操作 |
說明 |
ESC |
進入正常模式 |
:q! |
不保存退出 |
:wq |
保存后退出 |
:w |
僅保存 |
:saveas file |
將文件另存為file,但不退出 |
ZZ |
保存后退出 |
ZQ |
不保存退出,Q表示放棄 |
命令/操作 |
說明 |
x |
刪除光標處的字符 |
nx |
刪除光標所在處后的n個字符 |
dw |
刪除光標之后單詞的剩余部分(含光標處字符) |
cw |
同上,但最后進入插入模式 |
daw |
刪除光標所在處的一個單詞 |
caw |
同上,但最后進入插入模式 |
d$ |
刪除至當前行尾 |
dd |
刪除整行 |
dG |
刪除光標所在行到末尾行的所有內容 |
D |
刪除光標所在處到行尾的內容 |
: 5,7d |
刪除第5到第7行 |
2dd |
刪除兩行 |
ggdG |
刪除所有內容 |
:%d |
清空文檔(%表示所有行) |
命令/操作 |
說明 |
i |
左邊插入文本 |
a |
有變插入文本 |
A |
當前行末尾添加 |
r |
替換當前字符(rc,將光標處字符替換為c) |
R |
進入替換REPLACE模式,可以連續完成替換 |
o |
打開新的一行並進入插入模式 |
Ctrl + a |
數字加一 |
Ctrl + x |
數字減一 |
vit |
可視模式下高亮選中標簽內部的內容(visually select inside the tag):U變大寫/u變小寫 |
~ 刪除列
1) 光標定位到要操作的地方。
2) CTRL+v 進入“可視 塊”模式,選取這一列操作多少行。
3) d或x 刪除。
~ 插入列
插入操作稍有區別。例如我們在每一行前都插入"() ":
1) 光標定位到要操作的地方。
2) CTRL+v 進入“可視 塊”模式,選取這一列操作多少行。
3) SHIFT+i 輸入要插入的內容。
4) ESC 按兩次,會在每行的選定的區域出現插入的內容。
1) CTRL+v,進入列塊模式,選中需要復制的內容。
2) “y” 復制內容,4line yanked 說明復制了四行。
3) 然后移動光標到行首,“p”在光標的后面一列輸出內容,按“P”在光標前面一列輸出內容。
4) 大小p的區別是黏貼內容的區域是所選擇光標的前面還是后面一列。
命令/操作 |
說明 |
u |
undo |
ctrl +r |
redo |
. |
重復上一次操作 |
命令/操作 |
說明 |
v |
進入可視模式(字符) |
V |
進入可視模式(行) |
y |
復制 |
p/P |
粘貼 |
yy |
復制當前行 |
dd |
剪切當前行 |
yG |
復制當前行直到最后一行 |
命令/操作 |
說明 |
ctrl + g |
顯示當前行以及文件信息 |
命令/操作 |
說明 |
/ |
正向查找(n:繼續查找,N:相反方向繼續查找,/\c忽略大小寫。注意,不使用/\v時,必須轉義 (、 )、│ 、+、?、{、} 字符 |
? |
逆向查找(?\c忽略大小寫) |
% |
查找配對的 {,[,( |
* |
高亮顯示光標處單詞在文件中的所有匹配(n下一個匹配,N上一個匹配) |
:set ic |
忽略大小寫 |
:set noic |
取消忽略大小寫 |
:set hls |
匹配項高亮顯示 |
:set nohl |
取消搜索關鍵字的高亮(或者:noh) |
:set is |
顯示部分匹配 |
:set nu |
顯示行號 |
:set nonu |
取消行號的顯示 |
:set list |
顯示不可視字符 |
:set nolist |
取消顯示不可視字符 |
:set background=dark |
設置深色背景 |
:set background=light |
設置亮色背景 |
:set all |
查看vim的全部設置 |
:h magic |
通過關鍵字magic查詢幫助 |
注意:在查找命令" / "和“ ? ”后邊可以使用如下記號實現整字匹配的查找。
/\<word\>
或者
?\<word\>
命令/操作 |
說明 |
😒/old/new |
替換該行第一個匹配串 |
😒/old/new/g |
替換全行的匹配串 |
:%s/old/new/g |
替換整個文件的匹配串(%表示所有行g表示所有列。注:\r是回車換行) |
:%s/old/new/gci |
(選項:g global; i ignorecase; c confirmation; 次序無要求) |
命令/操作 |
說明 |
zc |
折疊 |
zC |
折疊所有嵌套 |
zo |
展開折疊 |
zO |
展開所有折疊嵌套 |
:set paste
粘貼
:set nopaste
快捷鍵設置vim ~/.vimrc
set pastetoggle=<F12>
命令/操作 |
說明 |
:!cmd |
執行外部命令 |
:.!date |
vim中當前光標位置插入命令date的輸出結果 |
:r!date |
vim中當前光標的下一行插入date的結果 |
:!python3 % |
(%在命令模式中指當前文件名) |
:shell |
開啟一個bash shell |
:2,$!sort -t, -k2nr |
把csv文件內容從第二行到最后一行按第二列進行排序,且以,分割字段(-k2nr中n是數字排序,默認字符序,r是倒序) |
:1,$!cut -d, -f 2 │ sort -u |
把csv文件中的第二列取出,排序,去重(1指第一行,$指最后一行,.指當前行) |
:1,$!sort -t, -k2 -u |
把csv文件中的第二列排序並依據第二列的內容去重,行保留完整列(!G給出:.,$!) |
:.,$!sort -t. -k1n,1 -k2n,2 -k3n,3 -k4n,4 -u |
從當前行到最后一行對IPv4地址排序並去重 |
:1,$!cut -d. -f4 -s |
從第一行到最后一行,以.為字段分割符,投影第4列,且不輸出不包含分隔符的行 |
:1,$!sed -n 'n;p' |
輸出偶數行 |
:1,$!sed -n 'p;n' |
輸出奇數行 |
:1,$!awk '1; { print "" }' |
兩行間插入一個空行 |
注:
awk 'NR%2==0{print a"="$0}{a=$0}' test6.txt 讓“奇數行=偶數行”
seq 10 產生1~10的序列(每行)
paste test7.txt test8.txt | tr "\t" "\n" 將兩個文件的所有行交錯合並(paste為coreutils軟件包,用於文件的列合並)
命令/操作 |
說明 |
〈C-w〉w |
在窗口間循環切換 |
〈C-w〉h |
切換到左邊的窗口 |
〈C-w〉j |
切換到下邊的窗口 |
〈C-w〉k |
切換到上邊的窗口 |
〈C-w〉l |
切換到右邊的窗口 |
:q |
關閉當前窗口 |
:close |
關閉當前窗口,但不能關閉最后一個窗口 |
命令/操作 |
說明 |
:tabedit test.csv |
打開文件到一個標簽頁 |
gt |
切換到下一標簽頁 |
gT |
切換到上一標簽頁 |
:close |
關閉當前標簽頁 |
命令/操作 |
說明 |
:pwd |
顯示當前路徑 |
:e. |
打開當前目錄 |
- Tab設置
在~/.vimrc中添加以下代碼后,重啟vim即可實現按TAB產生4個空格:
set ts=4
set expandtab
對於已經保存的文件,將Tab替換為空格,執行如下命令:
:set ts=4
:set expandtab
:%retab!
加!是用於處理非空白字符之后的TAB,即所有的TAB,若不加!,則只處理行首的TAB。
:l
在命令顯示區將顯示當前行的所有不可顯字符。
在插入模式下“-- INSERT --”
Ctrl + v + 【功能鍵】
可以產生不可顯字符。
- 文件加密
必須在新建文件的時候就進行密碼設置,加密才起效。
查詢加密方式
:help 'cm'
設置加密方法
:setlocal cm=blowfish2
設置密碼
:X
在命令行中打開文件並設置密碼
$ vim -x file.txt