Vim 是功能完整且强大的文字编辑器 (Text Editor,以下简称 Editor),相信接触过 GNU/Linux 的伙伴都曾接触过。相信不少人对于它的印象就如同 COSCUP 2011 的经典名句“第一次用 vi 时进的去出不来”一样,不过冻仁相信,只要事先做过些功课,便可习得第一成的功力,待大成后,其带来的便利性是其他的 Editor 难以取代的!
▲ 使用 markdown 语法撰写铁人赛文章的截图。视窗切割及 CtrlP 火力展示,其怖景主题为 fu。
我们除了可以在终端机输入 vimtutor 取得 Vim 使用手册,也可于互联网上取得不少资源。
▲ Vi 学习曲线图。
▲ vgod 汇整的 Vim 入门图解说明
从土法炼钢、快速移动、加强技巧、使用套件 (plugin) 到打造属于自己的 Vim 前后得花了不少的时间及心力,但我们可以在各个平台 (Android, GNU/Linux, iOS, Mac OSX, Windows)、软件 (Bash, Chrome, Firefox, MySQL, Python, vifm, Visual Studio, w3m) 以及网络服务 (Facebook, Gmail) 中发现它的影子,是个习得一招半式便可打遍天下无敌手的 Editor,对冻仁而言它是个很棒的投资!
部份的发行版本只会预载 Vi 而没有 Vim,这时请手动安装它。
# Debian, Ubuntu on Gnome, Unity
$ sudo aptitude install vim-gnome
# Debian, Ubuntu on KDE, Evilwm
$ sudo aptitude install vim-gtk
# CentOS, Fedora
$ sudo yum install vim-X11
如想取得冻仁完整的 Vim 环境设定 (vimrc),请参考 冻仁的 GitHub。
# 下載凍仁的環境設定。
$ git clone https://github.com/chusiang/vimrc.git
# 切換目錄。
$ cd vimrc/
# 備份原設定。
$ make backup
# 安裝。
$ make install
# 開啟 Vim。
$ vim
# 安裝各式的 vim 套件。
:NeobundleInstall
以下设定可写入 $HOME/.vimrc,这样下次启动 Vim 时设定才会存在。
colorscheme fu
" - local.drx.tw (PHP)
nnoremap <F5> :silent update<Bar>silent !firefox %:p:s?\(.\{-}/\)\{4}?http://local.drx.tw/?<CR>
" - current file (Ex: html, txt)
nnoremap <F6> :silent update<Bar>silent !firefox %:p &<CR>
全文取代。
:%s/old_world/new_world/gc
取代第 5 ~ 10 行。
:5,10s/old_world/new_world/gc
若有设定自动缩排 (set hls),在贴上程式码时会有走山的情形,这时可以先切换成贴上模式再贴上。
:set paste
称职的系统管理者是勤于备份的,在更动设定档 (conf) 前一定会先复制一份。在众多版本中的难以使用肉眼查觉出差异,这时可用 diff, Vim 或 Meld 来比对。
# 在 Vim 底下時,請使用 :diffsplit。
$ vi <file1>
...
:diffsplit <file2>
# 在 bash 底下時,請使用 vimdiff。
$ vimdiff <file1> <file2>
:TOhtml
会产生与 Vim 上一模一样的 html,对于想用网页秀出程式码的人是必备的功能 (范例) 。
$ vi /usr/local/bin/powersave
......
:TOhtml
Vim 是个有门槛的文字编辑器,但冻仁相信只要用对方法,一步一步前进就可以早日驾驭它。建议初学者可以先套前人的 vimrc,并试着修改它,不懂的部份只要 Google 一下相信可以找到不少的解答。
努力学习 Vim,成为一位好的 Vimmer 吧!