VI編輯器之多檔案多屏操作
1、如何開啟多視窗:
(1)不同檔案在不同視窗開啟
開啟方法:
(1):e filename_path/filename
此時可以通過Tab鍵查詢目錄下的檔案,此時是重新開啟選定的檔案,前一個開啟的檔案將被關掉;不退出vi情況下開啟另一個檔案,一個視窗只顯示一個檔案。
(2):new filename_path/filename
開啟選定檔案,前一個開啟的檔案不退出;
(3):sp filename_path/filename或:split filename_path/filename
開啟選定檔案,前一個開啟的檔案不退出;
(2)和(3)均為在一個視窗中開啟兩個檔案。
視窗間切換:
ctrl+w,k:將游標移到上面視窗;
ctrl+w,j:將游標移到下面視窗;
ctrl+W/J:上下兩個視窗位置互換,但游標的位置仍在原來那個視窗;
(2)同一個檔案在兩個視窗開啟
1、分屏啟動Vim
使用小寫的o引數來上下分屏(橫向分屏)。
vim -on file1 file2 ...
使用大寫的O引數來左右分屏(縱向分屏)。
vim -On file1 file2 ...
註釋: n是數字,表示分成幾個屏。
2、關閉分屏
關閉當前視窗。
Ctrl+W c
關閉當前視窗,如果只剩最後一個了,則退出Vim。
Ctrl+W q
把游標移到下一個的屏中
Ctrl+W w
3、分屏
上下分割當前開啟的檔案。
Ctrl+W s
上下分割,並開啟一個新的檔案。
:sp filename
左右分割當前開啟的檔案。
Ctrl+W v
左右分割,並開啟一個新的檔案。
:vsp filename
4、移動游標
Vi中的游標鍵是h, j, k, l,要在各個屏間切換,只需要先按一下Ctrl+W
把游標移到右邊的屏。
Ctrl+W l
把游標移到左邊的屏中。
Ctrl+W h
把游標移到上邊的屏中。
Ctrl+W k
把游標移到下邊的屏中。
Ctrl+W j
把游標移到下一個的屏中。.
Ctrl+W w
5、移動分屏
這個功能還是使用了Vim的游標鍵,只不過都是大寫。當然了,如果你的分屏很亂很複雜的話,這個功能可能會出現一些非常奇怪的症狀。
向右移動。
Ctrl+W L
向左移動
Ctrl+W H
向上移動
Ctrl+W K
向下移動
Ctrl+W J
6、螢幕尺寸
下面是改變尺寸的一些操作,主要是高度,對於寬度你可以使用Ctrl+W <或是>,但這可能需要最新的版本才支援。
讓所有的屏都有一樣的高度。
Ctrl+W =
增加高度。
Ctrl+W +
減少高度。
Ctrl+W -
3、開啟多標籤頁(僅顯示檔案)
操作標籤頁的基本命令如下:
:tabnew : 開啟一個新的標籤頁。
eg:tabnew filename
:tabprevious : 回到上一個標籤頁。
:tabnext : 到下一個標籤頁。
:tabc:關閉當前標籤頁
標籤頁切換快捷方式組合鍵:gt
每次新建或者切換標籤,都要手動鍵入相關命令效率不是很高,於是我們可以設定快捷鍵,貼上我的配置:
CODE:
:map <F6> :tabprevious<CR>
:map <F7> :tabnext<CR>
:map <F5> :tabnew<CR>
:imap <F6> <ESC>:tabprevious<CR>i
:imap <F6> <ESC>:tabnext<CR>i
:imap <F5> <ESC>:tabnew<CR>i
注意:配置檔案一般在/etc/vimrc,或者~/.vimrc具體情況自己把握。
4、vi多檔案間的操作
1、已開啟vi情況下:
eg:利用vi已開啟a.txt
輸入:
(1):args b.txt //不需退出vi,會直接關閉a.txt,在開啟b.txt
(2):args b.txt c.txt ... //即同時打算開啟多個檔案,同樣不行退出vi,會先關閉 //a.txt,然後開啟b.txt
此時,就涉及到多檔案的操作了,此時輸入如下命令:
:next //會直接切換開啟c.txt,可以和數字結合使用,eg:2next,指向 //後跳過兩個檔案
:previous //又會切換開啟上一個檔案,此處即為b.txt。同next,也可以和數 //字組合使用
(注:此處next和previous兩個命令的作用可由快捷方式實現:Ctrl+^)
注:可以很方便實現不同檔案間的內容直接複製
2、vi同時開啟多個檔案
eg:
vi 1.log 2.log 3.log //同時開啟三個檔案
以下為多個檔案間的切換:
":bn":切換到下一個檔案。
":bp":切換到上一個檔案。
":bw":關閉當前檔案。
ctrl+^:在當前檔案和上一個檔案間切換。
5、由vi直接寫入其他檔案內容
弊端:只能寫在檔案的末尾
分為兩種情況:
(1)
eg1:
vi a.txt
利用複製內容的方法(有多種方法,見本文),選定內容
輸入如下命令:
:write >> filename //filename為待寫入內容的檔案,此種方法只能將內容追 //加在檔案的末尾
6、利用find命令開啟多個檔案
find –name *.txt |xargs vi //vi會開啟找到的所有txt文字