vim多文件操作

背景

在linux無界面操作時如何用vim進行多文件的操作如文件間拷貝操作等。

vim在linux上的安裝

本人用的centos,其命令如下:

sudo yum install vim

用vim同時編輯多個文件

方法1

新建兩個txt文件file1.txt和file2.txt,內容隨意。然後運行下面的命令:
vim file1.txt file2.txt

vim file1.txt file2.txt

多文件打開和切換

:n #切換到下一個文件
:N #切換到上一個文件

note:vim不允許存在未保存更改的情況下切換到下一個文件

ZZ #保存文件

瀏覽當前正在編輯的文件

:buffers

使用buffer命令切換到某一文件

buffer n (b n) #n爲使用buffers命令後文件的序號

例如切換到第一個文件可使用命令:

:buffer 1(b 1)

在buffer中常用一些命令簡單的實現文件切換

命令 含義
:bf 切換到第一個文件
:bl 切換到最後一個文件
:bn 切換到下一個文件
:bp 切換到上一個文件
:b n 切換到第n個文件
:bw 關閉當前文件

在已經當開文件的情況下,額外添加一個文件用於編輯可用命令:

:e file3.txt #file3.txt爲添加用於編輯的文件

用buffers命令可以看到file3文件已經被打開,這裏有一點需要注意一下,這種情況下不能用 :e 命令切換到file3,如果要切換文件可用 buffe n 命令

複製一個文件的內容到其他文件

單行復制

下面是將file1的內容複製到當前文件的步驟

  1. 切換到第一個文件

buffer 1

  1. 使用命令 yy 複製某一行
  2. 切換到第二個文件

buffer 2

  1. 光標定位到粘貼位置,使用 p 命令完成粘貼
  2. 保存更改到當前文件: ZZ
  3. 保存所有文件的更改並退出: wq

整個文件內容複製

上面的步驟完成了將單行內容複製到其他文件中。如果需要將一個文件的全部內容複製到其他文件中,應該怎麼辦?

將文件1的內容複製並粘貼到文件2的第二行:

  1. 打開文件2

vim file2.txt
若file2已經打開,可以使用 buffer n 切換到file2

  1. 將光標移動到第五行:

:5(:5G)

  1. 執行命令:

r file1.txt
此時可以看到內容拷貝成功

  1. 保存當前文件的修改

ZZ

  1. 保存所有打開文件並退出

:wq

方法2

在打開文件時加入 -o 選項,文件內容以垂直分佈在一個頁面中

vim -o file1.txt file2.txt

切換兩個文件使用命令 ctrl-w w
或者使用:
Ctrl-w k -頂層窗口
Ctrl-w j -底層窗口

文件內容以水平分佈在一個頁面中使用 -O選項
切換命令
Ctrl-w l -左窗口
Ctrl-w h -右窗口

其他操作同方法1

對比

方法2與方法1不同的是一旦使用 ZZ 來保存當前文件的改動時,會自動關閉該文件,同時需要一個文件一個文件的執行 :wq 命令;使用方法1時,執行一次 :wq 命令就可以保存所有文件的更改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章