Vim 開啟篇


建立時間: 2023年9月13日 13:56
更新時間: 2024年11月26日 08:37

說明

除了最基本的 $ vim file 打開檔案之外,我將分享幾個 vim 指令參數,掌握更多種開啟檔案的方式。

開啟方式

在終端下指令

$ vim [option | filename] ..

打開 file,沒有寫 file 則打開空白檔案。

範例

$ vim
開啟 vim 不包含檔案

$ vim file
開啟 file 檔案

$ vim file1 file2
開啟 file1, file2 檔案

Vim 參數

幫助文件: :help vim-arguments


+[num]

游標在編輯第一個文件時會定位在第 “num” 行。如果不給出 “num”,游標會定位在最後一行。

範例

$ vim + file

$ vim +5 file

幫助文件: :help -+


+/{pat}

游標在編輯第一個文件時會定位在第一個包含 “pat” 模式的行。

範例

$ vim +1 +/pat file
強制從第一行開始搜索。

$ vim +/public file

幫助文件: :help -+/


-M

不可修改文字,關閉 modifiable 選項。


-O[N]

打開 N 個視窗,垂直分割。

範例

$ vim -O file1 file2 ...
垂直分割打開 file1 file2 等等。


-R

唯讀模式。為所有編輯的檔案置位 'readonly' 選項。 你仍然可以編輯緩衝區,但你不能實際覆蓋檔案。

可以用 :w!:wq!,但必須有修改檔案權限。

範例

$ vim -R file


-S {file}

在第一個檔案讀入之後,執行腳本 {file}

這是這條等價的命令的一個簡單方式: -c "source {file}"


-Z

限制模式。使用外部外殼(shell) 的任何命令都被禁止。這包括使用 CTRL-Z 暫停、:sh、過濾程序,system() 函式,反引號擴展和 libcall()

範例

$ vim -Z file


--cmd {command}

在處理任何 vimrc 檔案之前執行命令 {command}

範例

$ vim --cmd "let g:myvar = 'Hello, Vim!'"
打開 vim 設置一個全域變數 g:myvar,其值為 Hello, Vim!


--version

顯示版本資訊並退出。

範例

$ vim --version
顯示版本資訊並退出


-b

二進制模式。


+{command}
-c {command}

$ vim -c {command} file

在讀入第一個文件後執行命令 {command}。”command” 按 Ex 命令來解釋。如果 “command” 包含空格,應該用雙引號括起該命令。

範例

$ vim -c N file
開啟檔案並前往第N行。

$ vim -c /pattern file
開啟檔案並前往第一個匹配 pattern 搜尋的位置。

$ vim -c /"this is" file
有空白字元或特殊字元,可用單引號'或雙引號"字串。

$ vim -c /this\ is file
使用反斜線解譯空白字元。

$ vim "+set si" main.c
開啟檔案後執行 set si。

幫助文件: :help -c


-e

啟動 Vim 進入 Ex 模式,同普通模式下按 Q

Ex 模式幫助文件: :help Q


-h
--help

印出 vim 打開的指令說明。


-m

可修改文字,但不可寫入檔案,關閉 write 選項。


-n

不使用暫存檔 (swap),只使用記憶體。


-o[N]

開啟 N 個視窗,水平分割。如果沒有給予 [N],為每個檔案參數開啟一個視窗。如果沒有足夠的空間,只打開前面數項。如果給定的視窗數超過參數的數目,後面的視窗會編輯空檔。

範例

$ vim -o file1 file2 ...
水平分割打開 file1 file2 等等。


$ vim -p file1 file2 ...

標籤頁方式打開 file1 file2 等等。


-r
-L

列出暫存檔後離開


-r (加檔名)

修復上次損毀的資料(Recover crashed session)


$ vim -t {tag}

跳轉到 tag 標籤上。


-u {vimrc}

讀入檔案 {vimrc} 執行初始化。

這裡有一個特別之處,見範例。

範例

$ vim -u NONE
跳過所有檔案和環境變數的初始化,這包括 GUI 開始時候 gvimrc 檔案的讀入。也跳過外掛的載入。


暫停

CTRL-Z

暫停 Vim,和 :stop 類似。適用於普通和可視模式。在插入和命令列模式裡,CTRL-Z 作為普通的字元插入。在可視模式下,Vim 回到普通模式。


:sus[pend][!]
:st[op][!]

暫停 Vim。

如果沒有給予 ! 並且置位 autowrite,那麼每個修改過且有文件名稱的緩衝區都被寫回。如果給予 !autowrite 沒有置位,修改過的緩衝區不會寫回。遲些時候,不要忘記把 Vim 帶回前台!


儲存設定

多數情況下,你會手動編輯你的 vimrc 文件。這給你最大程度的彈性。有一些命令可以自動產生 vimrc 文件。你可以直接使用產生的文件,也可以複製/貼上其中的一些行到其它的 vimrc 文件裡。


:mk[exrc] [file]

寫入目前的鍵盤映射和修改過的選項到 [file] 裡 (預設是目前目錄下的 “.exrc”),若它已經存在則無法寫入。


:mk[exrc]! [file]

總是寫入目前的鍵盤映射和修改過的選項到 [file] 裡 (預設是目前目錄下的 “.exrc”)。


啟動模式

$ gvim
$ vim -g
以 GUI 啟動。意思為 gvim 編輯器會多出一些圖形使用者介面,方便使用者操作。

比較檔案差異

$ vimdiff file1 file2 [file3 [file4]]
$ vim -d file1 file2 [file3 [file4]]
查看輸入參數所指定的檔案間的差異,按照慣例檔案由舊到新依序輸入。

將輸出內容使用 vim 閱讀

方法1

vim <(ls -la)
使用 Process Substitution 將內容寫在臨時文件,再用 vim 讀取,這是唯讀的檔案。

方法2

ls -la | vim -
vim 讀取標準輸入的內容,可以編輯,不儲存離開需要用 :q! 強制離開。

觀看次數: 1178
commandterminalvim終端指令
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!