1 VIM的背景介紹
Vi 的誕生與1976年,Vim 的前身是 Vi(Visual Editor),由 Bill Joy 在 BSD Unix 系統上開發,作為 ed(行編輯器)的改進版本,提供全屏編輯功能,成為 Unix/Linux 系統的標準文本編輯器。
Vim 的誕生1991年,Vi 雖然強大,但功能有限。1991年,Bram Moolenaar 基于 Vi 開發了 Vim(Vi IMproved),增加了多級撤銷、語法高亮、跨平臺支持等特性,并逐步成為最流行的 Vi 增強版本。
目前開源與社區發展,Vim 是開源軟件(遵循 GPL 協議),擁有活躍的開發者社區,至今仍在持續更新(最新穩定版為 Vim 9.0,2022年發布)。Vim 是終端環境下的高效編輯器,憑借其極簡設計和強大的可擴展性,在開發者中經久不衰。盡管學習成本較高,但熟練使用后編輯速度遠超常規編輯器,尤其適合服務器維護和鍵盤流編程。
它的特點如下:
-
模態編輯(Modal Editing):
Vim 的核心設計是模式分離(普通模式、插入模式、可視模式等),減少手指移動,提升編輯效率。 -
鍵盤優先:
幾乎所有操作均可通過鍵盤完成,避免依賴鼠標,適合快速文本處理。 -
可擴展性:
支持插件(通過 .vimrc 配置)和腳本(Vimscript/Lua),可定制成 IDE(如搭配 LSP)
1.1 VIM的用途
Vim 是一款功能強大的文本編輯器,學習曲線較陡,但掌握基本操作后效率會大幅提升。它用途如下:
- 系統管理員與開發者:
默認預裝在大多數 Linux/Unix 和 macOS 系統中(vi 通常是 Vim 的別名)。常用于配置文件編輯(如 /etc/nginx/nginx.conf)、遠程服務器調試(通過 SSH)。
- 程序員:
高效編寫代碼(支持語法高亮、自動補全插件如 coc.nvim)。與版本控制工具(Git)結合(如 fugitive.vim)。
- 寫作與日志:
純文本編輯(Markdown、LaTeX 支持),適合無干擾寫作。
1.2 VIM的安裝
在ubuntu 環境下面的安裝
sudo apt update
sudo apt install vim # 安裝基礎版
sudo apt install vim-gtk3 # 安裝圖形化版本(GVim)
1.3 其它常用的編輯器
(1) Nano
特點:簡單易用,適合新手,快捷鍵提示在屏幕底部。
sudo apt install nano # Debian/Ubuntu
sudo dnf install nano # RHEL/Fedora
sudo pacman -S nano # Arch Linux
(2)Micro
特點:現代化終端編輯器,支持鼠標操作、語法高亮、多光標。
curl https://getmic.ro | bash # 一鍵安裝
sudo mv micro /usr/local/bin # 添加到 PATH
1.4 總結
-
服務器/終端:Vim、Nano、Micro
-
桌面環境:VS Code、Kate、Sublime Text
-
極客/可定制:Emacs、Neovim、Helix
2 VIM 常見指令
VIM 一共有四種模式。
-
普通模式(Normal Mode):默認模式,用于導航和操作文本。從其他模式按 Esc 返回普通模式。
-
插入模式(Insert Mode):輸入文本。 從普通模式按 i(光標前插入)、a(光標后插入)、o(下一行插入)等進入。
-
可視模式(Visual Mode):選擇文本。 按 v(字符選擇)、V(行選擇)、Ctrl+v(塊選擇)。
-
命令模式(Command Mode):執行命令(如保存、退出)。從普通模式按 : 進入。
2.1 普通模式-- 移動光標
- 基本移動:也可以使用箭頭來移動
h(左)、j(下)、k(上)、l(右)。
w(下一個單詞開頭)、b(上一個單詞開頭)。
0(行首)、^(行首非空格)、$(行尾)。
- 翻頁:
Ctrl+f(下一頁)、Ctrl+b(上一頁)。
- 跳轉:
gg(文件開頭)、G(文件結尾)、行號+G(跳轉到指定行)。
2.2 編輯模式
- 刪除:
x(刪除當前字符)或者del、dw(刪除單詞)、dd(刪除整行)。
- 復制/粘貼:
yy(復制行)、p(粘貼到光標后)、P(粘貼到光標前)。
- 撤銷/重做:
u(撤銷)、Ctrl+r(重做)。
- 替換:
r(替換單個字符)、cw(替換單詞)、:%s/old/new/g(全局替換)。
2.3 命令模式
- 保存、退出
:w 保存文件。
:q 退出(未修改時)。
:q! 強制退出(不保存修改)。
:wq 或 :x 保存并退出。
:e 文件名 打開其他文件。
- 搜索:
/關鍵詞 向下搜索,?關鍵詞 向上搜索。
按 n(下一個匹配)、N(上一個匹配)。
- 替換:
😒/old/new 替換當前行第一個匹配。
😒/old/new/g 替換當前行所有匹配。
:%s/old/new/g 全局替換。
2.4 可視模式
選擇文本后進行編輯(刪除、復制、縮進等)。
2.5 配置
- vim ~/.vimrc 打開文件
- 添加以下語句
set number " 顯示行號
syntax on " 語法高亮
set tabstop=4 " Tab縮進4空格
set expandtab " Tab轉空格