使用 Vi 和 Vim 編輯器開啟特定行號的檔案
本教程演示了使用 Bash 命令列介面 (CLI) 使用 vi
或 vim
編輯器開啟具有特定行號的純文字檔案的方法。
首先,我們將簡要介紹 vi
編輯器及其後續 vim
編輯器。然後,我們將立即轉到它們在游標指向特定行號時開啟檔案的用途。
Linux 中的 vi
和 vim
編輯器簡介
vi
編輯器是幾乎所有 Linux 發行版中最經典的文字編輯器。因此,它不需要在使用前安裝任何額外的軟體包。
此外,vi
是一個易於使用的基於 CLI 的編輯器,可用於任何純文字檔案。因此,它重量輕且速度快。
vim
編輯器是 vi
編輯器的繼承者,代表 Vi IMproved
。它新增了新功能並改進了許多原始的 vi
編輯器。
它遵循 POSIX 1003.2-1 標準,這使得它幾乎相容所有 Unix 和 Linux 發行版,包括 MS-DOS、Macintosh、Amiga、VMS、BeOS、RISC OS、IBM OS/390、Atari MiNT、Windows 95 和 Windows NT。
此外,它與所有 vi
版本相容(即向上相容)。除了改進的相容性之外,經典的 vi
實現最有趣的補充是包含對多級撤消的支援,這是一個圖形使用者介面。
它還具有多個標籤頁、Shell 命令的模擬器終端視窗、語法突出顯示、拼寫檢查、改進的程式碼縮排和多語言支援。
可以使用以下步驟找到完整的差異或新增列表及其綜合指南。
- 開啟終端,輸入
vim
,然後回車。將出現以下螢幕。
- 現在,輸入
:help vi_diff.txt
。這將開啟vim_diff.txt
檔案,其中包含vi
和vim
之間的全面比較。vim_diff.txt
檔案的快照如下。
使用 vi
或 vim
編輯器建立新檔案
開啟終端並輸入以下內容。
vi [fileName]
如果 fileName
是現有檔案的有效名稱,vi
編輯器將開啟該檔案。如果在當前目錄中沒有具有 fileName
的檔案,則建立一個名稱與 fileName
相同的新檔案。
在檔案中插入文字並儲存修改
假設你要建立一個名為 sample.txt
的新檔案並將 Hello World
插入其中。按照以下步驟進行操作並儲存更改。
- 開啟檔案。
- 在
vim
編輯器中開啟檔案後,按i
進入插入模式。每行開頭的~
符號表示該行只是空的並且之前沒有使用過。
- 開始輸入所需的文字或內容。在我們的例子中,開始輸入
Hello World
。
- 可以通過按Esc按鈕進入命令模式儲存更改,輸入
-wq
(儲存檔案並退出編輯器),然後按Enter 鍵。
在 vi
或 vim
中開啟特定行號的檔案
上述方法可以以相同的方式開啟現有檔案並對其進行修改。
每當開啟現有檔案時,閃爍的游標始終指向第一行的開頭。但是,有時用游標指向檔案中的特定行號開啟檔案會很方便。
例如,編譯一個長程式碼檔案後,你可能會知道第 563 行存在語法錯誤。你開啟檔案並使用箭頭鍵轉到第 563 行。
這可能會花費一些時間並減慢你的除錯任務。因此,vi
和 vim
編輯器都提供了在特定行號開啟現有檔案的功能。
vim [+command OR +lineNumber] fileName
要查詢特定術語,請突出顯示並轉到該特定術語。請遵循以下語法。
vim [+/searchTerm] fileName
請確保上述所有命令都可以在 vi
編輯器中正常工作。我們需要在上面的命令中用 vi
替換 vim
。
示例:假設你想在第 56 行開啟一個名為 program.c
的檔案。只需在 bash 終端中鍵入以下內容即可。
vim +56 program.c
或者
vim +/56 program.c
上述命令應輸出為:
我們可以看到游標指向第 56 行的開頭。
vim
編輯器預設不顯示行號。我們可以使用 vim
介面中的 set
命令顯示行號。
:set number
vi
/vim
介面,按Esc鍵進入命令模式,輸入 lineNumber
,再按Shift +G 跳轉所需的行號。Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn