Vim 開啟篇
分類
說明
除了最基本的 $ 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!
強制離開。
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!