轉自:http://blog.csdn.net/lcj_cjfykx/article/details/18805721shell
經過vim打開的每一個文件都對應着一個buffer(buffer是系統爲打開的文件分配的內存空間),每一個buffer都有一個id。vim
1.在同一窗口下顯示多個文件.net
命令:vim filename1 filename2插件
說明:上述命令同時打開了filename1,filename2兩個文件,不過文件filename1的內容將佔據整個vim窗口,要想在各個文件之間進行切換,咱們可經過以下命令blog
:n 切換到下一個文件內存
:N 切換到上一個文件it
:n filename2 切換到文件filename2class
咱們提到每一個打開的文件都對應着一個buffer,故可經過切換buffer來達到切換文件的目的,以下後臺
:ls 列出vim打開的全部文件的信息,包括文件名,buffer id等file
:b2 切換到buffer id爲2的buffer
:bn 切換到當前buffer的下一個buffer
:bp 切換當前buffer的前一個buffer
:bd 關閉當前buffer,對應文件也隨之關閉
:bd2 關閉buffer id爲2的buffer,對應文件也隨之關閉
咱們可經過安裝miniBufExplorer插件來簡化buffer的切換。不過該插件有時會致使語法高亮顯示失效,咱們可經過命令:syntax on來恢復高亮。
2.分割窗口,顯示多個文件
對於在同一個窗口下打開多個文件,對於各文件之間內容的複製,剪切操做終究不方便,咱們可以使用命令對窗口進行分割,每一個子窗口顯示一個文件
命令:vim -o filename1 filename2 水平分割窗口
vim -O filename1 filename2 垂直分割窗口
咱們可按ctrl ww在各窗口之間進行切換。
經過該種方式可很是方便各文件內容之間的複製與剪切操做,這裏順便簡單提一下複製,剪切與粘貼操做命令
yy 複製光標所在行
dd 剪切光標所在行
5yy 複製從光標所在行開始計數的下五行文本
5dd 剪切從光標所在行開始計數的下五行文本
v(小寫) visual模式,經過上下左右鍵選擇光標「掃過」的全部字符
V (大寫) visual line 模式,經過上下鍵選擇光標「掃過」的全部行
ctrl + v visual block 模式,經過上下左右鍵選擇一個矩形文本
y 複製在visual模式, visual line模式和visual block 模式下選擇的文本
d 剪切在visual模式, visual line模式和visual block 模式下 選擇的文本
p(小寫) 粘貼, 粘貼位置爲光標所在行的下一行
P(大寫) 粘貼, 粘貼位置爲光標所在行的上一行
u: 撤銷操做
r: 重作操做
提示:
a.倘若咱們經過vim打開了多個文件後,想在不關閉vim的狀況下繼續打開其餘文件,如文件file,可在vim中使用以下命令:
:e file 不會分割窗口
:sp file 將會水平分割窗口
:vsp file 將會垂直分割窗口
b. vim和shell之間切換
:shell 切換到shell,此時vim在後臺運行,在shell中輸入命令exit,切換回vim
c. 在vim中執行shell命令(不切換到shell)
:!command 在執行的命令前加上!,如!ls ,!ls -a
: r !command 將command命令的執行結果插入到文本當前行的下一行
: 3 !command 將文本中第三行的內容輸入到命令command中進行處理,並將第三行的內容替換爲命令的執行結果
:1,3 !command 將文本中第一行到第三行的內容輸入到命令command中進行處理,並將第一行到第三行的內容替換爲命令的執行結果
: 3 w !command 將文本中第三行的內容輸入到命令command中進行處理,不改變當前編輯文件的內容.
:1,3 w !command 將文本中第一行到第三行的內容輸入到命令command中進行處理,不改變當前編輯文件的內容