什么人適合使用 VIM ?
追 求編 輯 效 率的 程序員
VIM 的作者是程序員
他為程序員開發(fā)了許多有用的功能
其 它經(jīng) 常 處 理純 文本的 人 員
中小型企業(yè) Web 開發(fā)人員
編寫 LaTeX 文檔的研究人員
Unix / Linux 系統(tǒng)管理員
什么人不適合使用 VIM ?
生 活、 工 作 和學(xué) 習(xí)無需 和 純 文本 打 交道 的 人
處理其它類型的文件有專門的工具
打 字速 度 慢 于智 能感知 運 行 速度 的 人
VIM 目前暫不支持智能感知
被強大的 IDE 慣壞了的人
強大順手的 IDE 比方便快捷的編輯器更重要
Linux 下中文處理
編 輯時 不 能 輸入 中文
:set encoding=cp936
菜 單顯 示 是 亂碼
:so $VIMRUNTIME/delmenu.vim
:so $VIMRUNTIME/menu.vim
選擇喜歡的字體
通 過菜 單 與 對話 框選擇 字 體
編輯 --> 選擇字體
只有等寬字體可以被選中
適合程序員使用的字體基本原則
Bitstream Vera Sans Mono
0Oo 1Il
記 住選 中 的 字體 名稱
:set guifont?
將顯示結(jié)果抄下來備用
VIM 基本操作
VIM 是一個有模式的編輯器
Normal 模式下按鍵序列對應(yīng)命令
按 i 鍵進入 Insert 模式
按 : 進入 command 模式
Insert 模式下可以輸入文本
按 ESC 回到 Normal 模式
Command 模式下輸入命令
有模式導(dǎo)致 VIM 快捷鍵長度較短
使用 hjkl
VIM 支持使用方向鍵移動光標
在 insert 狀態(tài)下移動光標會比較方便
使 用 h jk l 移 動 光 標 編 輯 效 率 更 高
距離近,按鍵方便,眼睛無需離開屏幕
vimtutor
vimtutor 是 VIM 入門非常好的學(xué)習(xí)材料
Linux 用戶
在終端中輸入 vimtutor
啟動字符界面的 vimtutor
W in d o ws 用 戶
在開始菜單中找 vimtutor 快捷方式
啟動后出現(xiàn)亂碼,重新選擇一個中文字體即可
查找替換
準 備工 作
打開 VIM ,按 i ,輸入:
this is a test
查 找替 換
按 ESC 回到 normal 狀態(tài),輸入:
:%s/ /^M/g
其中 ^M 使用 Ctrl-v Ctrl-m 的方式輸入
將所有空格替換為回車,文本變?yōu)?4 行
行的拼接
查 找 \n 替 換 為 空 格 可 以 實 現(xiàn) 拼 接
這 里使 用 j 命 令拼 接 行
按 ggVG ,全選
按 : ,此時命令行顯示為:
:'<,'>
在其后輸入 j ,回車
拼接完畢
復(fù)制粘貼與重復(fù)動作
在 normal 狀態(tài)下按 yy ,復(fù)制當前行
按 1 2 p , 屏幕 上 即 出現(xiàn) 1 3 行 上述 字 樣
12 表示將其后的命令執(zhí)行 12 次
p 表示粘貼到當前行之后
VIM 里大部分命令都可以加上數(shù)字表明執(zhí)行次數(shù)
列操作
選 中全 文 第 一列
按 gg 跳到開頭
按 Ctrl-v 進入列選擇狀態(tài)
按 G 跳到末尾
將 每行 第 一 列變 為大寫
按 U 表示把選中內(nèi)容變大寫
按 u 表示把選中內(nèi)容變小寫
按 ~ 表示翻轉(zhuǎn)原有大小寫
在 每行 前 面 加一 個星號 和 一 個空 格
選中第一列
按 I 進入插入狀態(tài)
輸入 * ,按 ESC
選 中前 兩 列 后按 x , 可以 進 行 列刪 除
編程時可以用于批量注釋和批量解注釋
宏的錄制
將 所 有 偶 數(shù) 行 的 a 改 成 an o th er
錄 制宏
按 gg 進入第一行
按 qm 進入宏錄制狀態(tài),錄制到寄存器 m
按 j 進入第二行,按 $ 跳到行末
按 2b ,光標停在字母 a 上
按 caw ,輸入 another ,按 ESC ,按 j 進入下一行
按 q 結(jié)束宏的錄制
宏的播放
單 次播 放
按下 @m ,執(zhí)行 m 寄存器中的宏
可以發(fā)現(xiàn)第 4 行的 a 也變成了 another
多 次播 放
輸入 1000@m
可以發(fā)現(xiàn)所有偶數(shù)行的 a 都變成了 another
到達文件底部時宏執(zhí)行出錯,會自動停止
最終并沒有真的執(zhí)行 1000 次
點命令
在 每行 末 尾 添加 一個感 嘆 號
執(zhí) 行次 數(shù) 不 多的 簡單操 作 無 需使 用 宏
按 gg 進入第一行,按 A 進入行尾添加狀態(tài)
輸入 ! ,按 ESC ,按 j 進入第二行
按 . 表示重復(fù)前一個操作,即行尾添加 !
反復(fù)按 j.j.j.j.
推薦大家左手鼠標
:%s/$/!/g
VIM 入門
2 1 天 學(xué)習(xí) 計 劃
多讀文檔,少走彎路
第一周:每天一遍 vimtutor
熟悉基本操作,做到隨心所欲
第 二周 、 第 三周 :通讀 用 戶 手冊
讀用戶手冊的同時修訂出適合自己的 .vimrc
目前手冊有中文版譯本可供下載