vi編輯器的學習使用(二十一)

2021-08-22 01:30:15 字數 3858 閱讀 8317

我們在vim編輯器的學習使用(五)中曾結討論了一些基本的視窗使用命令.這些命令可以使得我們在不同的視窗內進行編輯工作,從而使得我們編輯多個檔案成為可能.而在這裡我們將會討論一些更多的與視窗相關的命令操作.

當我們使用多個視窗進行檔案編輯時,我們如何來進行視窗的切換操作呢?我們可以使用命令ctrl-wj回到下乙個視窗,而使用命令ctrl-wk回到上乙個視窗.我們還可以使用下面的命令來進行視窗的切換操作:

ctrl-wt 切換到頂部的視窗

ctrl-wb 切換到底部的視窗

ctrl-wp 切換到我們進行切換操作以前我們所在的視窗

countctrl-ww 向下切換乙個視窗.如果是在底部,則進行回環.如果指明了數字,則切換到 數字所指定的視窗.

countctrl-ww 向下切換乙個視窗,如果是在頂部,則進行回環,如果指蝗了數字,則切換到 數字所指定的視窗

我們在使用多個視窗進行文字編輯的時候,我們還可以進行視窗的移動,命令ctrl-wr命令可以使得視窗向下進行迴圈移動.這個命令可以帶乙個數字作為引數,可以指明向下迴圈移動所執行的次數.與其相類似的命令是ctrl-wr命令,這個命令可以使得視窗向上迴圈移動.

當我們在用多視窗進行多檔案的編輯時我們可以用命令對這些檔案進行共同的操作.:write命令可以儲存當前檔案.我們可以用下面的命令來實現對所有已經修改過的檔案,包括隱藏緩衝區中的檔案,進行儲存操作:

:wall

命令:quit可以退出當前檔案.如果這是乙個檔案的最後乙個視窗,那麼這個檔案將會被關閉.如果我們同時開啟了多個視窗進文字的編輯,我們可以用下面的命令來退出所有的檔案:

:qall

如果在這些檔案中有檔案進行了修改但是沒有儲存,在執行這個命令時會給出警告資訊,這樣我們就可以儲存那些我們沒有儲存的修改了,但是如果我們想要放棄我們所做修改工作而強行退出我們可以用下面的命令:

:qall!

我們還可以將這個兩個命令進行組合來實現對所有檔案的儲存退出的命令:

:wqall

命令ctrl-wo可以使得當前視窗成為螢幕上的唯一的乙個視窗,而其他的視窗全部關閉.系統會認為我們在其他的每乙個視窗中都執行了命令:quit.

如果我們通過命令:args file-list指定了乙個檔案列表或是在啟動vim時指定了乙個檔案列表,那麼:all命令就會為每乙個檔案開啟乙個視窗,這樣我們就可以進行多檔案的編輯工作了.

下面的命令由命令:all變化而來的,這個命令可以每乙個隱藏的緩衝區開啟乙個視窗:

:unhide

這個命令還可以帶乙個引數,用來指明一次開啟的視窗數.例如如果我們要開啟所有的緩衝區但是在螢幕上顯示不超過5個視窗,我們可以用下面的命令:

:unhide 5

我們還可以用ctrl-w ctrl-^命令來**視窗來編輯交替檔案.這個命令是新開啟一視窗,並在這個視窗中裝入交替文字並進編輯.而命令ctrl-^則是通過切換視窗來編輯交替檔案.

命令ctrl-w ctrl-i會**當前視窗,然在查詢當前游標下的單詞第一次出現的地方.這樣的查詢不不僅是在當前檔案中查詢,也會在由#include所包含進來的檔案中進行查詢.

在vim中還有許多縮寫的命令可以來快的完成工作,如下面的一些命令:

:countsnext :split與:countnext的組合

:countsprevious :split與:countprevious的組合

:countsnext :split與:countnext的組合

:srewind :split與:rewind的組合

:slast :split與:last的組合

:sargument :split與:argument的組合

ctrl-wctrl-d :split與]ctrl-d的組合

ctrl-wf :split與:find的組合

ctrl-wg] :split與ctrl-]的組合

在這些命令乙個算是優點的地方就是如果命令執行失敗那麼是不會開啟乙個新的視窗的.

我們在用vim編輯器進行檔案編輯的時候可以用不同的緩衝區裝入不同的檔案,我們可以在啟動vim時指定要編輯的檔案列表,我們也可以在編輯的過程中用下面的命令新增乙個緩衝區:

:badd filename

這樣這個指定的檔案就會被加到緩衝區的列表中.這個檔案的編輯過程只有我們切換到那個緩衝區時才會開始.這個命令還可以帶引數,來指明當我們為這個緩衝區開啟視窗時,游標所處的位置:

:badd +lnum filename

我們可以用下面的命令來刪除乙個緩衝區:

:bdelete filename

或者是也可以用下面的命令:

:bdelete 3

:3 bdelete

我們還可以用下面的命令來刪除指定範圍的緩衝區:

:1,3 bdelete

如果我們使用了!選項,那麼我們在緩衝區所有的所有的改動都會被放棄:

:bdelete! filename

命令:bunload會解除安裝乙個緩衝區,這樣這個緩衝區就會從記憶體中解除安裝,所有為這個緩衝區開啟的視窗也會關閉.但是這個檔名檔名仍然會存在於這個緩衝區列表中.:bunload命令與:bdelete命令的用法相類似.

我們可以用下面的命令來為每乙個緩衝區開啟乙個視窗:

:ball

我們可以用laststatus選項來控制最後乙個視窗是否顯示狀態行,這個選項的值如下:

0 最後乙個視窗從不顯示狀態行

1如果在螢幕上只有乙個視窗,那麼不顯示狀態行.如果有兩個或更多個,則要在最後乙個視窗顯示狀態行.

2 在視窗上總是顯示狀態行,哪怕螢幕中只有乙個視窗.

我們可以用winheight選項來控制乙個視窗最小的行數.但是這個並沒有乙個硬性的限制,如果視窗顯得太擁擠了,vim會減少視窗的尺寸.

當我們開啟equalalways選項後,vim會以相同的尺寸來**視窗,而這也正是vim編輯器預設的情況,但是如果我們設定了noeqaulalways選項後我們就可以用不同的尺寸來**乙個視窗.

winheight選項用來控制當前視窗的最小高度.而winminheight選項則用來控制其他視窗顯示的高度.

在通常的情況下,:split命令是在當前視窗的上方開啟乙個新視窗.而splitbelow選項可以使得vim在當前視窗的下方開啟一新視窗.

假如我們正在編輯乙個很長的檔案,而現在天已經晚了,我們想著退出工作並在第二天接著做.這時我們可以將我們正在編輯的檔案資訊存成乙個檔案,在我們要第二天要接著編輯這個檔案時只要讀入這個檔案就可以了.這樣的乙個檔案包含了所有我們正在編輯的檔案資訊,例如檔案列表,視窗,標記,暫存器以及其他的一些資訊等等.

我們可以用下面的命令來產生乙個程式檔案:

:mksession filename

例如我們儲存的檔案是:

:mksession vimbook.vim

如果我們要接著工作,想要裝入這個程式檔案時只要用下面的命令:

:source vimbook.vim

我們也可以在啟動vim時指明要讀入的程式資訊檔案:

$ vim -c ":source vimbook.vim"

我們可以使用sessionoption選項來控制我們在這樣的檔案存入什麼樣的內容.他是由逗號分開的一系列的關鍵的字串組成的.例如預設的設定是這樣的:

:set sessionoptions=buffers,winsize,options,help,blank

可能的關鍵字的值如下:

buffers 儲存所有的緩衝區.包括在螢幕上顯示的以及隱藏的和解除安裝的緩衝區.

globals 儲存全域性變數.這些全域性變數是由大寫和至少乙個小寫字母組成的.

help 幫助視窗

blank 螢幕上的空視窗

options 所有的選項和鍵盤對映

winpos gui視窗的位置

resize 螢幕的尺寸

winsize 視窗的尺寸

slash 在檔名中用斜線來代替空格.

unix 用unix的行結尾格式來儲存程式資訊檔案.

vi編輯器的學習使用(二十二)

我們在vi編輯器的學習使用 六 學習了基本的視覺化模式,這時我們可以執行簡單的視覺化命令.在這裡我們將會討論更多的與視覺化相關的命令.這些命令中的許多只有很少的觀眾,如果我們可以看這一次的學習,也許這很少的觀眾中就會包括我們.我們在vi編輯器的學習使用 四 知道了如何來用暫存器實現複製,貼上和刪除的...

vi編輯器的學習使用(二十二)

我們在vi編輯器的學習使用 六 學習了基本的視覺化模式,這時我們可以執行簡單的視覺化命令.在這裡我們將會討論更多的與視覺化相關的命令.這些命令中的許多只有很少的觀眾,如果我們可以看這一次的學習,也許這很少的觀眾中就會包括我們.我們在vi編輯器的學習使用 四 知道了如何來用暫存器實現複製,貼上和刪除的...

vi編輯器學習

vi有三種模式,命令模式 插入模式 鍵 末行模式 鍵 退出儲存命令 wq 強制退出 quit 刪除空行的命令 g d 等。需要注意的是在 vi 環境下鍵盤相關操作與windows系統不一樣,第一次使用不太習慣,所以你如果第一次使用,需要記一下相關上下左右鍵 空格 退回鍵等在vi下的意義。首先進入vi...