vim 文字編輯器

vim 文字編輯器

vim 文字編輯器

vim是vi的升級版,最常見的區別是能用多種顏色顯示顯示系統檔案的一些特殊資訊。

vi: Visual Interface 文字編輯器,視覺化介面

vim:vi iMproved的縮寫,即vi的增強版

vim編輯器分為三種主要模式:

命令模式(編輯模式):預設模式,移動游標,剪下/貼上文字(介面表現:左下角顯示檔名或為空)

插入模式(輸入模式):修改文字(介面表現:左下角顯示—INSERT–)插入模式下,按ESC按鍵返回命令模式

末行模式(擴充套件模式):儲存、退出等(介面表現:左下角顯示—VISUAL–)末行模式下連續按兩次ESC按鍵返回末行模式

Esc建:退出當前模式

Esc建Esc建:總是返回到命令模式

vim 文字編輯器

用vim開啟檔案用法:

例如:【vim abc。txt】作用:開啟abc。txt檔案

例如:【vim +# abc。txt】作用:開啟abc。txt檔案,游標定位在abc。txt檔案的第#行

例如:【vim + abc。txt】作用:開啟abc。txt檔案,游標定位在最後一行

例如:【vim +/PATTERN abc。txt】作用:開啟abc。txt檔案,定位第一次被PATTERN(模式)匹配到的行的行首

模式之間的切換

注意:vim開啟檔案後,預設進入的模式為:命令模式:

命令模式下進入插入模式(輸入模式)輸入:【i】或者【o】或者【a】等

命令模式下進入末行模式(擴充套件模式)輸入:【:】

使用vim編輯多個檔案

【vim FILE1 FILE2 FILE3】可以同時編輯FILE1 FILE2 FILE3這三個檔案

【:next】切換至下一個檔案

【:prev】切換至前一個檔案

【:last】切換至最後一個檔案

【:first】切換至第一個檔案

vim 文字編輯器

vim的命令模式(編輯模式)常用快捷鍵

1) 模式轉換

a) 【i】:在當前游標所在字元的前面,轉為輸入模式

b) 【a】:在當前游標所在字元的後面,轉換為輸入模式

c) 【o】:在當前游標所在行的下方,新建一行,並轉換為輸入模式:

d) 【I】:在當前游標所在行的行首,轉換為輸入模式

e) 【A】:在當前游標所在行的行尾,轉換為輸入模式

f) 【O】:在當前游標所在行的上方,新建一行,並轉換為輸入模式;

g) 【cc】刪除當前行並輸入新內容,相當於S。擴充套件【#cc】

h) 【C】刪除當前游標到行尾,並切換成插入模式

改變命令

【c】修改後切換成插入模式

命令模式–>插入模式

【c^】刪除游標處到行首的字元,並進入插入模式

【c$】刪除游標處到行尾的字元,並進入插入模式

【c0】(c零)刪除游標處到當前行首的第一非空字元,並進入插入模式

【cb】刪除當前第一個單詞,並進入插入模式

【ce】刪除下一個單詞,並進入插入模式

【cw】刪除游標處到單詞詞尾,並進入插入模式

2) 逐字元移動

a) 【h】向左

b) 【l】向右(小寫的L)

c) 【j】向上

d) 【k】向下

e) 【#COMMAND】移動#個字元

例如: 【#h】向左移動#個字元

【#l】向右移動#個字元

【#j】向上移動#個字元(相當於向上移動#行)

【#k】向下移動#個字元(相當於向下移動#行)

3) 當前頁跳轉

a) 【H】:當前頁的頁首

b) 【M】:當前頁的中間行

c) 【L】當前頁的頁底

4) 以單詞為單位移動

a) 【w】移動至下一個單詞的詞首

b) 【e】跳至當前或下一個單詞的詞尾

c) 【b】跳至當前或前一個單詞的詞首

d) 【#COMMAND】跳到第#個單詞

例如: 【#w】跳轉到第#個單詞的詞首

【#e】向下跳轉到第#個單詞的詞尾

【#b】向上跳轉到第#個單詞的詞首

5) 行內跳轉

a) 【0】(零) :絕對行首,游標移動到當前行的行首

b) 【^】游標移動到當前行首的第一個非空白字元

c) 【&】游標移動到當前行的行尾

6) 行間跳轉(相當於上下跳轉)

a) 【G】跳轉到最後一行(整個文件的最後一行)

b) 【gg或者1G】跳轉到文件的第一行

c) 【#G】跳轉到第#行(文件最上為第一行)

注意:想要跳轉到最後一行可以輸入【0G】也是最後一行

7) 句間移動

a) 【)】下一句

b) 【(】上一句

8) 段落間移動

a) 【}】下一段

b) 【{】上一段

9) 常用快捷鍵滾動

a) 【Ctrl + e】向下滾動一行

b) 【Ctrl + y】向上滾動一行

c) 【Ctrl + d】向下滾動半屏

d) 【Ctrl + u】向上滾動半屏

e) 【Ctrl + f】向下滾動一屏

f) 【Ctrl + b】向上滾動一屏

10) 字元編輯

【x】刪除游標處的字元

【#x】刪除從游標處開始向後#個字元

【xp】游標所在處的字元和游標後面的字元對調位置

【~】轉換大小寫

【J】刪除當前行後的換行符

11) 替換命令(r,replace)

【r】替換游標所在字元

【R】切換成REPLACE模式

12) 刪除命令(剪下命令)

注意:d命令刪除的字元會預設複製到剪貼簿

a) 【d】刪除命令,可以結合游標跳轉字元,實現範圍刪除

b) 【d$】刪除到行尾

c) 【d^】刪除到非空行首

d) 【d0】刪除到行首

e) 【dd】刪除游標所在行

f) 【#dd】多行刪除

g) 【D】從當前游標位置一直刪除到行尾,留空行,等同於【d$】

h) 【de】

i) 【dw】

j) 【db】

k) 【#COMMAND】

l) 【Shift + j】刪除兩行質檢的空行,實際上是合併兩行

插入模式(輸入模式下的剪下)

正常模式(預設模式)下按v(逐字)或V(逐行)進入可視模式,然後用【j】【k】【l】【h】命令移動即可選擇某些行或字元,再按d即可剪下

13) 複製命令(y,yank)

a) 【y】複製,可以結合游標跳轉字元,實現範圍複製(行為與d有類似之處)

b) 【y$】複製到行尾

c) 【y^】複製到非空行首

d) 【y0】複製到行首

e) 【yy】複製當前行

f) 【#yy】複製多行

g) 【Y】整行復制

h) 【ye】

i) 【yw】

j) 【yb】

k) 【#COMMAND】

14) 貼上命令(p,paste)

a) 【p】緩衝區存的如果為整行,則貼上當前游標所在行的下方,否則貼上至當前游標所在處的後面

b) 【P】緩衝區存的如果為整行,則貼上當前游標所在行的上方,否則貼上至當前游標所在處的前面

15) 撤銷更改

a) 【u】撤銷最近的更改

b) 【#u】撤銷之前多次更改

c) 【U】撤銷游標落在這行後所有此行的更改

d) 【按Ctrl + r】重做最後的“撤銷”更改(相當於取消撤銷)

e) 【。】重做前一個操作

f) 【#】重複前一個操作#次

vim的末行模式(擴充套件模式)

命令模式下進入末行模式(擴充套件模式)輸入:【:】

退出命令

【:q】退出

【:x】儲存退出

【:wq】儲存並退出

【:q!】強制退出並或略所有更改

【:e!】放棄所有修改,並開啟原始檔

注意:在預設模式的退出方法

【ZZ】儲存並退出

【ZQ】不儲存退出

附加:

【:!COMMAND】執行COMMAND命令,和shell互動

【r!COMMAND】讀入命令的輸出

【r filename】讀取filename檔案內容到當前檔案中

【w filename】將當前檔案內容下入filename檔案中

地址定界(可以用於查詢和替換等)

語法:【:start_pos,end_pos】

例如:

【:#】具體第#行,例如2表示第2行

【#,#】從左側#表示起始行,到右側#表示結尾行

【#,+#】從左側#表示的起始行,加上右側#表示的行數

例如【:2,+3】表示2到5行

【。】表示當前行

【$】最後一行

【%】全文,相當於【1,$】

例如:【:。,$-1】表示當前行到倒數第二行

擴充套件命令模式:地址定界

注意:地址界定預設是從游標位置開始(即在預設模式進入命令模式時的游標位置)向下搜尋匹配(如果查到到檔案結尾,依舊沒找到,會從頭開始查詢)

【:/pat1/,/pat2/】從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束

【:#,/pat/】從第#行開始,一直到第一次被pat匹配到的行結束

【:/pat/,$】從第一次被pat匹配到的行開始,一直到最後一行

地址界定後面可跟隨的編輯命令

【d】例如:【:/pat1/,/pat2/d】

表示,從游標位置開始向下匹配,第一次匹配到“pat1”的位置開始到第一次匹配到pat2結束是的末行,刪除末行。(注意:如果匹配結果是多行,只會刪除最後一行)

【y】例如:【:/pat1/,/pat2/y】

表示,從游標位置開始向下匹配,第一次匹配到“pat1”的位置到第一次匹配到“pat2”的位置直接,複製內容到剪貼簿。

【w file】將範圍內的行另存至指定檔案中。

例如:【:/pat1/,/pat2/w 。/abc。txt】

表示從游標位置開始向下匹配,第一次匹配到pat1的位置到第一次匹配到pat2的位置內容寫到當前目錄下的abc。txt檔案中。

【r file】在指定位置插入指定檔案中的所有內容。

例如:【:/pat1/,/pat2/r 。/abc。txt】

表示從游標位置開始向下匹配,第一次匹配到“pat1”的位置到第一次匹配到“pat2”的位置的行末插入abc。txt檔案內容

查詢並替換

【:/PATTERN】從當前游標所在處向檔案尾部查詢匹配“PATTERN”相同的內容。

【:?PATTERN】從當前游標所在處向檔案首部查詢匹配“PATTERN”相同內容

【n】與命令同方向

【N】與命令反方向

擴充套件命令模型:查詢並替換

【s】在擴充套件模式下完成查詢替換操作

格式:【s/要查詢的內容/替換為的內容/修飾符】

要查詢的內容:可以使用模式

替換為的內容:不能使用模式,單可以使用\1,\2等後向引用符號;還可以使用“&”引用前面查詢時查詢的整個內容

修飾符:

【i】忽略大小寫

【g】管局替換;預設情況下,每行只替換第一次出現

【gc】全域性替換,每次替換前詢問

注意:查詢替換中的分隔符【/】可用其他符號替代,例如【@】【#】等

如果需要對全文替換可以使用如下命令

:1,$s/^。*\(你好\)。*/\1/ig

】其中【1,$】為地址界定。

地址定界與查詢替換擴充套件模式結合使用

【:4,8s/^。*\(你好\)。*/\1/ig】這種為只替換第4行到第8行之間的內容,其中【4,8】表示4行到8行之間的內容

【:/par1/,/par2/s/^。*\(你好\)。*/\1/ig】這種為從第一次匹配到par1到第一次匹配par2之間的內容中間,

按照【s/^。*\(你好\)。*/\1/ig】命令進行匹配替換

幫助命令

【:help or F1】顯示整個幫助

【:help xxx】顯示xxx的幫助,比如:【:help I】【:help CTRL-[】即Ctrl+[的幫助

【:help ‘number’】Vim選項的幫助用單引號颳起

【:help 】特殊建的幫助用<>擴起

【:help –t】Vim啟動引數的幫助用-

【:help –i_】插入模式下Esc的幫助,某個模式下的幫助用(模式_主題)的模式

幫助檔案中位於||之間的內容是超連結,可以用Ctrl+]進入連結,Ctrl+o(Ctrl + t)返回

其他非編輯命令

【:。】重複前一次命令

【:set ruler?】檢視是否設定了ruler,在。vimrc中,使用set命令設定的選項都可以透過這個命令檢視

【:scriptnames】檢視vim指令碼檔案的位置,比如。vimrc檔案,語法檔案及plugin等

顯示非列印字元

【:set list】顯示非列印字元,比如tab,空格,行尾等。如果tab無法顯示,請確定用set lcs=tab:>-命令設定了。vimrc檔案,並確保你的檔案中的確有tab,如果開啟了expendtab,那麼tab將被擴充套件為空格。

【:set nolist】關閉非列印字元

行號:

【:set number】顯示行號或者【:set nu】

【:set nu】關閉行號顯示

大小寫

【:set ignorecase】忽略區分大小寫或者【:set ic】

【:set noignorecase】不忽略大小寫或者【:set noic】

設定自動縮排

【:set autoindent】設定自動縮排或者【:set ai】

【:set noai】取消制動縮排

查詢文字高亮顯示或取消

【:set hlsearch】設定高亮顯示

【:set nohlsearch】取消高亮顯示

語法高亮顯示

【:syntax on】開啟語法高亮顯示

【:synatx off】關閉語法高亮顯示

輔助保留格式

【:set paste】啟用複製保留格式

【:set noPaste】關閉複製保留格式

檔案格式

【:set fileforma=doc】啟用windows格式。或者【:set ff=doc】

【:set fileforma=unix】啟用unix格式。或者【:set ff=nuix】

設定文字寬度

【:set textwidth=65】啟用

【:set wrapmargin=15】禁用

設定游標所在行的標識線

【:set cursorline】或者【:set cul】啟用標識線

【:set no cursorline】或者【:set not cul】禁用標識線

【:set or】檢視set幫助或者【:set all】

vim視覺化模式

預設模式下輸入:

【v】按照字元選取,或者【ctrl + v】

【V】按矩形快選取

視覺化建可用於與移動建結合使用

【w】【)】【}】箭頭燈

突出顯示的文字可被刪除,複製,變更,過濾,搜尋,替換等

vim多視窗

語法:【vim –o|-O FILE1 FILE2 …】

【-o】水平分割顯示

【-O】垂直分割顯示

命令模式下輸入【:qa】關閉所有視窗

視窗間切換:Ctrl+w,Arrow

單檔案視窗分割:

【Ctrl+w,s】split,水平分割

【Ctrl+w,v】vertical,垂直分割

【Ctrl+w,q】取消相鄰視窗

【Ctrl+w,o】取消全部視窗

【:wqall】退出

vim配置檔案

【/etc/vimrc】vim的全域性配置檔案

【~/。vimrc】使用者的vim配置檔案

相關編輯器

文字:ASCII,Unicode

文字編輯器種類:

行編輯器:sed

全屏編輯器:nano,vi

vim-Vi Improved

其他編輯器:

gedit 一個簡單的圖形編輯器

gvim 一個Vim編輯器的圖形版本

幫助(vim ——help)

[root@gdy103 ~]# vim ——help

VIM - Vi IMproved 7。2 (2008 Aug 9, compiled Apr 5 2012 10:17:30)

用法: vim [引數] [檔案 。。] 編輯指定的檔案

或: vim [引數] - 從標準輸入(stdin)讀取文字

或: vim [引數] -t tag 編輯 tag 定義處的檔案

或: vim [引數] -q [errorfile] 編輯第一個出錯處的檔案

引數:

—— 在這以後只有檔名

-v Vi 模式 (同 “vi”)

-e Ex 模式 (同 “ex”)

-s 安靜(批處理)模式 (只能與 “ex” 一起使用)

-d Diff 模式 (同 “vimdiff”)

-y 容易模式 (同 “evim”,無模式)

-R 只讀模式 (同 “view”)

-Z 限制模式 (同 “rvim”)

-m 不可修改(寫入檔案)

-M 文字不可修改

-b 二進位制模式

-l Lisp 模式

-C 相容傳統的 Vi: ‘compatible’

-N 不完全相容傳統的 Vi: ‘nocompatible’

-V[N][fname] Be verbose [level N] [log messages to fname]

-D 除錯模式

-n 不使用交換檔案,只使用記憶體

-r 列出交換檔案並退出

-r (跟檔名) 恢復崩潰的會話

-L 同 -r

-A 以 Arabic 模式啟動

-H 以 Hebrew 模式啟動

-F 以 Farsi 模式啟動

-T 設定終端型別為

-u 使用 替代任何 。vimrc

——noplugin 不載入 plugin 指令碼

-P[N] 開啟 N 個標籤頁 (預設值: 每個檔案一個)

-o[N] 開啟 N 個視窗 (預設值: 每個檔案一個)

-O[N] 同 -o 但垂直分割

+ 啟動後跳到檔案末尾

+ 啟動後跳到第

——cmd 載入任何 vimrc 檔案前執行

-c 載入第一個檔案後執行

-S 載入第一個檔案後執行檔案

-s 從檔案 讀入正常模式的命令

-w 將所有輸入的命令追加到檔案

-W 將所有輸入的命令寫入到檔案

-x 編輯加密的檔案

——startuptime Write startup timing messages to

-i 使用 取代 。viminfo

-h 或 ——help 列印幫助(本資訊)並退出

——version 列印版本資訊並退出

[root@gdy103 ~]#

vim 文字編輯器

vim 文字編輯器