vi 与 vim 的区别,及 vim 的语法加亮

之前每次终端连接到了 Linux/Unix 编辑文件,只知道用 vi,至于此时是 vi 还是 vim 就不得而知了,也不知如何去知。总以为 vi 就是 vim,vim 就是 vi,就没认真想过多出的 vim 是怎么回事。

据说:vi - visual editor, very inconvenient, or virtually incomprehensible, vim - VI IMproved,俨然是个 vi 的加强版。

只是经常会登录同是 Redhat AS 4 的两台机器,同样是用 vi 启动编辑器,一个能进行语法加亮,v 可进入可视模式,空行前的波浪号是蓝色的(下称机器A);另一个对于各种语法却是熟视无睹,v 无法进入可视模式,空行前的波浪号也是白色的(下称机器B)。这时才想起是否是 vi 与 vim  的区别,网上找来:

简单点来说,它们都是多模式编辑器,
不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,
而且还有一些新的特性在里面。
vim的这些优势主要体现在以下几个方面:

1、多级撤消
    我们知道在 vi 里,按 u 只能撤消上次命令,而在 vim 里可以无限制的撤消。

2、易用性
    vi 只能运行于 unix 中,而 vim 可以运行于 unix,windows ,mac 等多操作平台。

3、语法加亮
    vim 可以用不同的颜色来加亮你的代码。

4、可视化操作
    就是说 vim 不仅可以在终端运行,也可以运行于 x window、 mac os、 windows。

5、对 vi 的完全兼容
    某些情况下,你可以把 vim 当成 vi 来使用。

看起来好像着了道,可是还是在那两台 Linux 终端执行无参数的 vi,第一个界面显示的都是 VI IMproed,到底哪颗水仙不开花。

在机器 A 上执行 vim 是有色的,在机器 B 上执行 vim,提示 command not found

现在要看看软件包上有什么差异,rpm -qa|grep vi 发现机器 B 比机器 A 少了 vim-common 和 vim-enhanced,找了光盘把这两个安装上吧。再机器 B 上执行 vi 还是老样,没有可视模式,但能执行 vim 命令了,与机器 A  的 vi  一致了。

此时机器 B 上  rpm -qil vim-enhanced-6.3.046-0.40E.7  看到 /usr/bin/vim 就它了,在机器 B 上用 vim 就对了。建个 alias 或是 vi link 到 vim 就能在机器 B 上方便的启动 vim,其实机器 A 上就这么做的,在机器 A 上 which vi 看看

#which vi
alias vi='vim'
        /usr/bin/vim

在机器 B 上给 vi 做个别名,

# vi ~/.bashrc
alias vi='vim'
# source ~/.bash_profile

或者 vi link 到 vim

#mv /bin/vi /bin/vi.old
#ln -s /usr/bin/vim /bin/vi

以后 vi 就是 vim,vim 就是 vi 了。

其实对于 vim 加亮应该也不是什么问题,因为只能你运行的是 vim 而不是 vi 的话,默认情况下就支持语法加亮。但要是你的 vim 不支持语法加亮,可编加 /etc/vimrc 或者 ~/.vimrc,在其中设置

syntax on

 就 OK 啦,前面说过,默认情况下,在 /etc/vimrc 中就已经是 syntax on 了。

参考:1. Vi与Vim的区别
        2. Redhat vim 语法着色
        3. Linux 命令缩写部分解释
        4. Default OS should be Linux

本文链接 https://yanbin.blog/vi-vim-difference-syntax-highlight/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments