Vim編輯器的詳細用法

2021-10-21 17:59:21 字數 4647 閱讀 7463

vim編輯器是linux系統自帶的編輯器,其操作較一般的編輯器要複雜許多,但熟練運用vim會極大地提公升linux系統下編輯文字的速度。看完本文趕緊去試下吧!

vim有三種模式,分別為命令模式(command mode),編輯模式(insert mode)及末行模式(last line mode)。我們在剛進入vim編輯器時為命令模式,在按下a時會進入編輯模式,同時螢幕的左下角會顯示insert,此時就可以輸入你想要的文字。在完成輸入操作後,按下esc鍵會退回到命令模式,此時按下:就會進入末行模式,其實就是vim的命令列模式,在此模式按下wq就可以儲存檔案並退出了。

:下文中命令前出現:均表示在末行模式中執行

開啟檔案

開啟單個檔案或者新建單個檔案:

vim filename
:e!
編輯檔案1時不儲存退出編輯檔案2:

:open filename2
多檔案
:sp file      新建視窗開啟 filename 並水平分割視窗

:vsp file 新緩視窗開啟 filename 並垂直分割視窗

ctrl + ws 水平分割視窗

ctrl + wv 垂直分割視窗

ctrl + ww 在視窗間切換

ctrl + wq 關閉視窗

ctrl + wh 切換到右側視窗

ctrl + wl 切換到左側視窗

ctrl + wj 切換到下側視窗

ctrl + wk 切換到上側視窗

:qall! 不儲存退出所有視窗

插入
i       在當前位置的前插入新的字元  

i 在當前行的行首插入新的字元

a 在當前位置的後面插入新的字元

a 在當前行的行尾插入新的字元

o 在當前行的下面插入乙個新行

o 在當前行的上面插入乙個新行

查詢
/pattern          向下搜尋pattern

?pattern 向上搜尋pattern

vim中搜尋特殊字元需要進行轉義包括 . \ * / ? ~ $ % ^ *等

游標選擇某個單詞,按住shift+3,即可把所有的單詞標註出來

n 切換下乙個搜尋結果

n 切換上乙個搜尋結果

:noh 取消搜尋結果的高亮顯示

替換命令
:s/old/new         用new去替換當前行匹配到的第乙個old

:%s/old/new 用new去替換全文各行的第乙個old

:s/old/new/g 用new替換當前行的所有old

:s/old/new/g 將全文中的old用new替換

此外還可以指定行數進行替換:

如要替換11-23行所有的old,可以鍵入如下指令:

:11,23 s/old/new/g
若要在23-35行所有行前加4個空格以示縮排,可以鍵入如下指令:

:23,35 s/^/    /g
撤銷與重做
u        撤銷上一步操作  

ctrl+r 重做,即對撤銷的撤銷

刪除
x        刪除當前字元,即游標在哪個位置就刪除那個位置的字元  

5x 從當前游標開始往後刪除5個字元

x 刪除當前字元前的乙個字元

5x 從當前游標往前刪除5個字元(不包括當前字元)

d$ 刪除當前字元至行尾所有單詞

d^ 刪除當前字元至行首前的所有字元(不包括當前字元)

dw 刪除當前字元至單詞尾部

daw 刪除游標所在的單詞

dd 刪除游標所在行的整行

ndd 刪除游標所在行及其下共5行

s 刪除當前行並進入編輯模式

dgg 刪除當前行至文件首部的所有行 效果等同於末行模式下的:1,.d

dg 刪除當前行至文件尾部的所有行 效果等同於末行模式下的:.,$d($表示最後一行)

末行模式下還可以進行更加複雜的操作而不需要考慮游標的位置

如刪除第11行至34行的操作就可以這樣

:11,34d
複製貼上
yy       複製游標所在的當前行

5yy 複製游標及下面共5行

yg 複製當前行至文件開始的所有行

ygg 複製當前行至文件結束的所有行

yw 複製當前游標所在處的乙個單詞

j 將下一行內容移動到本行的末尾

同樣的在末行模式下也可以跨行複製,如複製11至34行

:11,34y
把10至23行的內容移動到56行之後,可以使用

:10,23 m 56
使用p把dd刪除或yy複製的內容貼上出來

p        在當前行的下面貼上  

p 在當前行的上面貼上

快速操作

ddp      快速交換當前行及下一行  

yyp 快速複製當前行並貼上

儲存及退出
:wq      儲存並退出  

:x 儲存並退出

:q 直接退出

:q! 強制退出不做更改

zz 儲存並退出

移動

移動操作並不常用,畢竟↑↓←→鍵就可以完成而且無需記憶

h   游標向←移動1個字元     10h   游標向←移動10個字元  

l 游標向→移動1個字元 10l 游標向→移動10個字元

j 游標向↑移動1個字元 10j 游標向↑移動10個字元

k 游標向↓移動1個字元 10k 游標向↓移動10個字元

gg 移動到文件頭部,等同於:1

g 移動到文件尾部,等同於:$

當然你也可以在開啟檔案時就指定行數,比如想開啟檔案時直接到最後一行,可以使用

vim + filename
開啟檔案直接到哪一行

vim +n filename #開啟檔案直接到第n行,而不用開啟檔案後在移動游標
視覺化
v              進入視覺化,左下角顯示視覺化或者visual

v 進入可視行,左下角顯示可視行或者visual line

ctrl+v 進入可視塊,左下角顯示可視塊或者visual block

上述選擇使用上下左右鍵,非滑鼠

d 刪除選中文字

y 複製選中文字

gu 選中區域轉為小寫

gu 選中區域轉為大寫

g~ 大小寫互調

> 向右縮排乙個單位

< 向左縮排乙個單位

其他操作
:!command執行命令,如:!ls會列出本文件當前目錄的所有檔案而不用退出文件

:suspend或crtl-z掛起vim,回到shell,可以使用fg返回vim編輯器

:set nu 設定行號,可將此命令寫入vim的配置檔案/etc/vimrc或者~/.vimrc,就可以保證每次開啟都顯示行數

:set ff=unix 設定文件的dos編碼為unix風格,在vim開啟亂碼時可以嘗試使用該命令修正

:set syntax=? 設定文件的語言為?,如c,python,sh

:set syntax獲得目前的文件語言

:set paste 解決複製文字來時縮排亂的問題

複雜注釋

:3,10 s/^/#/g       注釋3至5行

:3,10 s/^#//g 取消注釋3至10行

:1,$ s/^/#/g 注釋整個文件

:1,$ s/^#//g 取消注釋整個文件 #全選整篇文件也可使用%來替換

vim編輯器的用法

命令模式 控制游標移動,可對文字進行刪除 複製 貼上 一 將其他內容匯入到現在的游標所在處r root readme二 不退出的情況下,執行一些命令 直接在末行模式下輸入 並在後面加命令即可 三 匯入命令執行結果r 命令四 使用map自定義快捷鍵map ctrl v 自定義使用的乙個鍵 你想要的操作...

vim 編輯器基本用法

一 開啟檔案 vim path to somefile vim 開啟檔案,定位至第 行 vim 開啟檔案至最後一行 vim pattern 開啟檔案,定位至第一次被pattern匹配到的行首 二 模式轉換 vim模式 編輯模式 命令模式 輸入模式 末行模式 模式轉換 i 在當前游標所在字元的前面,轉...

vim編輯器的常見用法

1.儲存退出 未修改退出 不儲存退出 命令 命令模式下使用wq命令表示儲存退出 使用q命令表示未修改退出 使用q 表示不儲存修改內容退出。注 使用vim命令開啟乙個文字時,預設進入到一般模式,在一般模式下按i會進入編輯模式,按 會進入命令模式 在編輯模式或者命令模式下都可以通過按esc鍵回到一般模式...