注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

guoyoooping的博客

audio,picture, text and video

 
 
 

日志

 
 

vim学习笔记1: 为什么用vim  

2010-01-17 21:44:14|  分类: Vim: 学习Vim的心 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#Author: guoyoooping@163.com
#Date: 2010/01/17
#Version: 1.0

[摘要]本文回忆了学Vim的动机, 总结了vim的特点, 历史和安装方法.

从开始使用Vim到现在快2年了, 学习了不少东西, 鼓捣了不少东西, 也忘了不少东西. 今
天突然决定把它们写下来, 做个总结, 将来忘的时候可以查一查. 也希望分享给大家, 希
望能有点用. 这是我的Vim学习笔记第一篇, 为什么选择Vim, 怎么安装Vim.

1. 为什么要用vim

两年前我只会用vim打开一个文件, 至于其它的操作一概不会, 甚至退出都不会, 都是用
Ctrl+C(自己刚才又试了一下, Ctrl+C也不能退出, 当时手忙脚乱的, 反正Ctrl+C是用了,
后来应该是结束进程才退出Vim的, 哈哈)退出了事. 最初用Vim纯粹是工作的需要. 原来在
Windows上写代码, 大家都用 SourceInsight. 转到新的公司后, 由于必须在Unix上编写代
码, Vim + ctags + cscope 几乎成了唯一的选择. 后来渐入佳境, 慢慢的在Windows上也
开始用Vim读写代码. 起初用 Vim工作, 最大的好处是工作在Vim下几乎可以手不离键盘而
完成所有的事情. 现在回想起来, 选择Vim作为我主要使用的编辑器, 还有几个原因:

1.1 效率 安全和兼容性

我以前曾经用Word写文档, 想必很多人也这样做过. 但是随着时间的推移, 渐渐地, 我已
经好几年没用Word写过文档了.

所有的原因都是为了简单, 省事. 因为我要用纯文本. 所有可编辑的文件格式中, 最简单
最有效的就是纯文本。在我的日常应用中,我使用到最多的也是纯文本, 在认识Vim之前,
我主要用Notepad, 即使现在我也还把Windows的Notepad放到快速启动栏, 点击打开, 拷
贝, 关闭即完成了一个文档的生成 , 当然它非常简单, 只能用来编辑一些简单的文章.
而文本编辑器的最终道路似乎总是指向Vim或者Emacs, 而我选择了前者. 现在我写的文档
基本上都是在Vim里编辑, 完了再用Vim做一下格式化. 你可以看到, 我的文档无论在哪里
, 即使你用最简单的Windows记事本打开, 标题, 正文, 缩进也是很容易分辩的. 当然,
如果你用Vim, 装了合适的插件, 你还可以看到语法高亮以及像Word那样的本文的文档结
构图, 如:

      content
        1. 为什么要用vim
        .   1.1 效率 安全和兼容性
        .   1.2 所见即所得 Vs 所想即所得
        .   1.3 作为一个程序员
        2. vim的历史
        3. 安装vim
        .   2.1 linux系统下的安装
        .   2.2 windows系统下的安装

        图1. 本文的文档结构图

这是后话. 纯文本文件和doc文件相比有以下优点:

    * 体积小
    * 不会带上病毒
    * 传给谁你都不用担心打不开

我想上面的几点所有用过Word的人一定深有体会. 如果你不熟悉纯文本可以带来的多少的
好处,你也就很难明白为什么会出现那么多的纯文本编辑器,为什么那么多人一直在挑选
一种合适的文本编辑器,为什么那么多人会把使用某种文本编辑器当作一种信仰。是的,
如果你不了解,你会觉得这些人是疯子.

1.2 所见即所得 Vs 所想即所得

作为一个文档编辑者, 可能你编辑一篇文章的时候会打开Word来生成doc文件, (对多数人
, 应该说是打开盗版Office),而且这已经变成了你的习惯. 刚开始的时候, 你会很惊奇
于在很短的时间内, 编出排版漂亮, 格式丰富的文档, 而且能保证打印出来的就是你所看
到的漂亮的格式, 这也是很多人愿意忍受Word文档种种不是而坚守的原因, 这就是它“所
见即所得”的设计理念.

但是, 不知道你是否用Word 编辑过一篇比较长的文章,而这篇文章恰好格式并非很简单
,有各种层次的标题,需要生成目录,需要插入图片或者公式,需要在文章中使用多种不
同的字体格式,最终你还要合理排版。 举个例子, 你写了一个报告,领导不满意,说你
的段落标题应该用三号字体隶书,并且应该用红色强调,正文用五号字体宋体……你的注
释应该写在每一页的底部,写在全文末尾看起来费劲……你应该在每一页的页眉加上公司
的LOGO……而且这个文件有个万把字儿的……用WORD ……你慢慢改吧.

面对Word的这些严重缺点,有两样工具配合来解决。“纯文本”和“内容和样式”分离。

纯文本可以完美的解决这些问题,也许你不相信,但是事实的确如此。基于不同的规则,
你可以利用纯文本轻松的实现各种你以前无法想象的复杂格式。也正是这些规则,引出了
所想即所得的编辑模式,可能最初不是很直观,但是一旦你稍加学习,以后你所要做的就
是专注于文章的逻辑和语言,而无需太多的关心格式。

我在写文档的时候, 只会关心文档的内容, 不会去想将来的我的文档以几号字发表, 是以
pdf发表呢, 还是直接放在网页上. 一些简单的格式和排版(纯文本用gq命令, C语言用=命
令), vim会替我规范, 甚至像语法高亮, 标签生成, 自动解析目录等功能也都有相应的插
件替我完成, 但这都是为了更好的浏览文档. 等完成文档后, 我可以用Vim自带的2HTML脚
本, 轻松地将纯文本文档转成html文档, 甚至可以用专业一点的排版工具(如LyX)生成非常
正式, 漂亮的格式.

而且因为纯文本上都是内容,并没有控制样式表现的部分,在输出html网页时,你可以自
由的定义如何表现这份文档,只需添加一份css样式表(也可以几份样式表,比如在线网
页一份,打印稿一份),修改起来也很方便,只要在css样式表上修改一处,网页的所有
地方都会跟着变化, 这就是"所想即所得"--你想让它变成什么样子就让它变成什么样子。

尽量采用纯文本,这也是Unix编程艺术所提倡的。这是无数人的经验之谈。

1.3 作为一个程序员

当你选用了一款合适的、强大的编辑器,你会发现你会慢慢删掉不少你以前认为变成就一
定要装上的集成发开环境,集成开发环境没法代表语言。

高亮语法,代码补全,工程管理,程序编译,工程管理。这些,你都可以用纯文本加上优
秀的编辑器来完成。

使用这种工作模式的会让下面的烦恼完全消失:

    * 你可能在指责别人盗版你的软件,却被别人说你也在使用盗版的集成开发环境
    。
    * 可能你到了一台没有你想要的集成开发环境的机器,你不知道工作应该如何开
    始。
    * IDE 为你完成了太多的工作,后来你发现你忘记了,或者并不是十分清楚IDE
    替你完成的究竟是什么。
    * 你需要同时使用多种语言,而你的某种集成开发环境并不能很好的支持你需要
    的其他语言,怎么办?再装一个,然后不断在不同的IDE 之间切换。
    * 为了不同的语言,要熟悉不同的IDE,否则感觉很难适应。
    * 对于程序为何出错,你可能知道的很少。
    * 该如何去更多的自定义一个新的集成开发环境,让它更好的满足自己的需要。

当然,这并不是说使用了IDE 你就一定会面临这种尴尬,这并不绝对,但是使用纯文本加
上一款优秀编辑器的模式却在这些方面很有优势,不是吗?

2. vim的历史

Vim的前身是Vi. 而Vi早在1976年左右就诞生了, 比我还大:-), Vi的原意是visual
interface, 也就是说vi允许一次能看到一屏的文本而非一行, vi也因此得名. 在当今的
UNIX系统上, 可能没有缺省安装Emacs, 但是肯定会有vi, 当然, ed编辑器也必定存在:-)
VIM主要是Bram Moolenaar开发的。最初Bram在Amiga计算机上改进一个叫Stevie的VI版本
,他称之为“Vi IMitation”。随着功能的逐渐丰富,VIM的含义也就改成了“Vi
IMproved”。相比原始的VI,VIM增加的一项最重要的功能便是多级撤销,VI只支持一级
撤销。

Vim最大的特点, 也是我认为的最大的优点就是, 你的手指不用离开键盘就可以完成所有
的编辑命令. 其次是其无数插件带来的无数的增加功能, 几乎将你的Vim打造成无所不能
(甚至可以玩游戏).

一句话介绍就是: Vim是一个超级超级强大的文本编辑器. 它和Emacs是一个数量级; 而我
认为, 比UltraEdit, Editpad,  EmEditor要高一个(至少半个数量级). 如果你有兴趣,
不妨一读《程序员的编辑器——Vim》, 以便于对Vim有更详尽全面的理论认识.[6]

    1)要点1: Vim及前身VI, 历史悠久(可能比多数读者的年龄更大), 经历了几十年
    的考验和发展, 值得信赖.

    2)要点2: Vim有模式. 通俗地做一下对比. notepad无模式(或称为只有一种编辑
    模式), 你按下j, 就是在正文中输入j; 要保存, 就要 ctrl+s; 要下移一行, 就
    要↓或鼠标. 而在Vim中, 打开一个文件后, 并不处在编辑模式, 而是 Normal模
    式, 此时你按j, Vim并不认为你要在正文中输入j, 而是代表光标下移一行. 此
    时按i表示进入insert模式, 即编辑模式, 即notepad的模式. 编辑模式按Esc退
    回normal模式.  normal模式下按:进入命令行模式, 用于输入较复杂的命令. 比
    如:w代表保存文件, :e a.txt代表打开文件a.txt. 即 Vim可以不用鼠标, 方向
    键, 菜单, Ctrl, alt……发出命令. 因此, 以下的体验中切记进入正确的模式
    : Esc 到Normal; Normal下i到编辑; Normal下:到命令行. 再说明一点是: 文中
    :打头的是命令行模式, 此外多数Normal模式.

    3)要点3: 复杂对抗复杂. Vim有的命令行很吓人, 长长一串字符恍若天书. 这些
    貌似复杂, 实际上无非是一些简单命令的组合而已. 借助于此, Vim用户可以实
    现非常复杂的需求. 如果你没有这样的需求, 就无须理会它们.

    4)要点4: 一能百能. 这一点是Unix或命令行风格软件的显著长处, 经过实用可
    以深刻体会. 本文尽管有一些例子, 但它运用之妙, 存乎一心的感觉, 仍未能充
    分展示. 这里先打个比方, 如果windows下某软件号称能炒菜, 那意味着你点一
    下菜单, 菜就做好了——这就是易用哲学. 到底怎么做, 你是没有多少发言权的
    , 而是由软件开发者固化. 而如果Vim 说能, 那它就是有一个"炒菜"命令, 你可
    以把这个命令与原有的"原料""数量""火候""风味""灶具"命令结合在一起用, 甚
    至在它前面加上"买菜""洗菜", 后面加上"装盘""洗碗"做成一个自动脚本, 在合
    适的情况下自动执行.

    5)要点5: 无限灵活, 个性由我. 你只要有具体需求, Vim几乎都能满足. 因此不
    同人的Vim 是不一样的, 即, 把下载来的Vim配置成自己的Vim. 就此打住, 开始
    体验之旅吧!

3. 安装vim

在多数linux发行版都自带有vim, 但是很多都是按默认的编译选项编译出来的, 有时候可
能不支持cscope. 所以要重新安装一下. 下面是安装包的下载地址:

    linux源代码包: http://www.vim.org/download.php
    windows安装包: http://www.vim.org/download.php
    linux中文帮助安装包: http://vimcdoc.sourceforge.net/
    winodws中文帮助安装包: http://vimcdoc.sourceforge.net/

sourceforge还有一个叫vimcdoc的工程, 负责将vim的:help命令翻译成中文. 可以下载后
安装, 这样就可以直接使用中文的帮助了. 使用方法很简单, 只要在:help命令最后加@cn
就可以了. 为了每次使用 :help 命令时都优先使用中文的帮助文档, 可以将下面这样几
行加入到你的 vimrc 文件中, 那么要你查看英文的帮助文档, 就得在:help命令最后加
@en.

    if version >= 603
        set helplang=cn
    endif

2.1 linux系统下的安装

vim72的代码做的是比较好的, 不用修改任何东西就可以直接运行在linux和cygwin下, 编
译安装的步骤也很简单, "./configure; make; make install;", 需要说一下的就是在
configure的时候, 选项要带上参数: "--enable-cscope --with-x", 否则编译出的vim不
支持cscope和gvim.

关于中文帮助文档, 这是sourceforge的一个项目, 下载中文包后, 先将其解压缩:

    tar zxvf vimcdoc-<version>.tar.gz

然后进入 vimcdoc-<version> 目录并执行

    ./vimcdoc.sh -i

就可以了. 该安装程序会自动识别 Vim 的安装路径, 将中文的文档拷贝到相应的地方.
原有的英文文档不受影响.

2.2 windows系统下的安装

直接运行安装文件就可以完成gvim的安装.

帮助文档也建议使用已经做好的自动安装程序. 该程序不写注册表, 不建立程序组, 不覆
盖任何 Vim 原有文件. 所以可以放心使用.

[参考资料]

[1]vi History, http://www.bellevuelinux.org/vi/history.html
[2]Bill Joy's greatest gift to man – the vi editor,
http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/
[3]vim官方网站: www.vim.org
[4] 使用一款优秀的编辑器和纯文本来工作, 票友山,
http://sunxun.info/2009/08/using-plain-text/
[5] 谈整理文档应该采用纯文本格式, 柴扉,
http://www.morbell.com/forum/archiver/?tid-287570.html 
[6]普通人的编辑利器——Vim, 善用佳软,
http://blog.sina.com.cn/s/blog_46dac66f010005kw.html
  评论这张
 
阅读(5463)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017