嗨,大家好!今天我們要來聊聊 Linux 上的編輯器,特別是兩個廣受歡迎的編輯器:vi 和 vim。或許你已經聽說過它們,但你知道它們有什麼不同嗎?而且,我們還會深入探討 vim 的一項強大功能:批次的檔案處理。準備好了嗎?讓我們一起來探索這個有趣的主題!
認識 vi 與 vim 兩者的異同
首先,讓我們來談談 vi 和 vim 的基本概念。vi 是一個老牌的文本編輯器,存在已久,甚至可以在許多 Unix-like 系統中找到它的蹤影。vim 則是 vi 的進化版,全名為 “Vi IMproved”。vim 在 vi 的基礎上新增了許多強大的功能和快捷鍵,讓編輯變得更加高效和方便。
vim 的特點
- 模式切換:這是 vi 和 vim 都有的操作方式。它們有不同的模式,包括正常模式、插入模式和命令模式。在正常模式下,你可以進行游標移動、刪除等操作;插入模式是編輯文字的模式;而命令模式則是執行各種命令的模式。
- 快捷鍵:vim 強調快捷鍵的使用,讓你可以在短時間內完成各種操作。例如,你可以使用 “dd” 快速刪除一行文字,或者使用 “:wq” 儲存並離開編輯器。
- 擴充性:vim 支援各種插件和擴充功能,讓你可以根據需要自訂編輯器的功能,從而提高工作效率。
- 以不同的顏色顯示程式碼:vim 的優點是它可以以不同的顏色顯示程式碼。這種語法高亮功能使得程式碼更加清晰易讀。不同的語法元素,如變數、函數、關鍵字等,會以不同的顏色顯示,幫助你更好地理解程式碼的結構和邏輯。
vim 的強大之處,批次檔案處理
現在,讓我們轉向 vim 批次的檔案處理驚嘆的功能,vim 讓這個過程變得非常簡單。
批次新增(插入) :%normal
在 Vim 編輯器中,:normal
命令用於在正常模式下執行一系列的普通鍵盤按鍵。它的作用是將一組鍵盤按鍵在正常模式下逐一執行,就好像你手動按下那些按鍵一樣。
假設你有一個資料夾裡有許多以 “.txt” 結尾的檔案,現在你想在每個檔案的第一行插入一個歡迎語句。這時,你可以使用下面的步驟:
- 在命令行中輸入
vim *.txt
以同時打開所有的 “.txt” 檔案。 - 在 vim 的正常模式下,輸入
:%normal Welcome to our website!
。這會在每個檔案的第一行插入歡迎語句。 - 最後,在命令模式下輸入
:wq
儲存並離開所有檔案。
批次修改:HTML 標題 :%s/要替換的字串/新的內容/g
讓我們看一個更具體的範例。假設你有一個資料夾,裡面有多個 HTML 檔案,你想在每個檔案中將標題文字替換為更加吸引人的內容。這時,vim 的批次處理功能再次派上用場:
- 在命令行中輸入
vim *.html
以打開所有的 HTML 檔案。 - 在 vim 的正常模式下,輸入
:%s/<h1>.*<\/h1>/<h1>Welcome to Our Amazing Website<\/h1>/g
。這個命令會將所有檔案中的標題替換為新的內容。 - 最後,在命令模式下輸入
:wq
儲存並離開所有檔案。
批次修改:統一日期格式 Regular用法 :%s/要替換的字串/新的內容/g
假設你有一個資料夾,裡面有許多不同格式的日期,而你希望將它們統一成 “YYYY-MM-DD” 的格式。這時,vim 的批次修改功能可以幫助你輕鬆實現:
- 在命令行中輸入
vim *.txt
以打開所有的 “.txt” 檔案。 - 在 vim 的正常模式下,輸入
:%s/\(\d\{4\}\)\/\(\d\{2\}\)\/\(\d\{2\}\)/\1-\2-\3/g
。這個命令會尋找並替換所有不同格式的日期。 - 最後,在命令模式下輸入
:wq
儲存並離開所有檔案。
批次刪除:移除特定行數
假設你有一個檔案,裡面有數百行文字,而你想刪除其中的前 10 行。vim 的批次刪除功能可以幫助你迅速完成這個任務:
- 在命令行中輸入
vim *.txt
以打開所有的 .txt 檔案。 - 在 vim 的正常模式下,輸入
:%g/^.*$/d3
。這個命令將刪除每個檔案的第三行。 - 最後,在命令模式下輸入
:wq
儲存並離開所有檔案。
總結
通過本文,我們深入了解了 vi 和 vim 之間的不同,並學習了如何使用 vim 的批次處理功能來處理多個檔案。如果你已經熟悉 vi,切換到 vim 將為你帶來更多便利的功能。如果你是初學者,直接學習 vim 也是一個不錯的選擇。vim 是一個強大且高度可定制的工具,隨著你的熟練程度提高,你將能夠更有效地處理任務。現在,不妨動手嘗試一下,在實際操作中體驗一下這些功能吧!
延伸閱讀:如何在 Linux 遠端同步與備份 ? 使用 rsync 的教學與 crontab 定期備份與排程範例
延伸閱讀:chmod 是什麼 ? 5分鐘學會 Linux 檔案權限設定