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