Debian squeeze安装vim自动补全插件snipMate,绝对可用。
之前apt-get install 安装了vim 和vim-gtk 等等,在win下的snipMate代码补全是可以用的,在debian下就不能用了。
百思不得其解,换了很多方法,网上讲的云里雾里的,终于现在给我鼓捣出来了,特分享一下心得,首先关于 vim的环境变量,大家需要有个了解,请移往下面的链接阅读片刻
http://www.linuxidc.com/Linux/2012-06/62791.htm
因为我进debian后习惯性的进入root ,我的VIM的各个路径分别在
/etc/vim 这里面是VIM的配置文件,分别有 vimrc gvimrc vimrc.tiny 3个文件,权限和组都为 root root
/usr/share/vim 这个是VIM的主程序所在 分别有
addons/ vim的组件目录
gvimrc 一个符号链接,指向了上面的/etc/vim/gvimrc
registry/
vim72/ vim的主要程序所在 里面包含了/doc /plugin等等这些目录
vimcurrent/ 是vim72/的符号链接
vimfiles/ 一个符号链接,指向了上面的/etc/vim/
vimrc 一个符号链接,指向了上面的/etc/vim/vimrc
vimrc.tiny 同上,指向/etc/vim/vimrc.tiny
(符号链接,修改后直接影响原文件)
然后在#root/ 下 有一个 .viminfo 文件是记录vim操作的, 大家可以 su – 进入管理员后 cd / 进入 #~ ,然后ls -la 可以看见这个文件
在/home/rainysia/ 也有一个.viminfo 是记录的用户rainysia的vim操作的,直接打开终端后,$cd ~然后ls -la也可以看见这个文件
列出上面两个文件是为了诠释 管理员的~目录 和 用户的~目录 是不同的一个目录,都存在很多相同的文件
现在下载snipMate
http://www.vim.org/scripts/script.php?script_id=2540
比如我们下载到/home/rainysia/里面, 详细路径为 /home/rainysia/snipMate.zip
打开终端,$
$cd ~ 进入用户的~/
$mkdir .vim
$touch .vimrc
第一个是创建.vim目录,第二个是创建.vimrc,我的vimrc的配置文件是在/etc/vim/vimrc这个地方,这个有什么用? 这个是用户的.vimrc配置,说白了,就是可以追加用户的vim配置,(特别注意,如果你的/etc/vim/vimrc 文件里面有函数,那么就不要复制你的/etc/vim/vimrc 这个配置文件为 $~/.vimrc ,因为函数重复会报错,不管是不是用的软链接,都要报错,所以这里,你只需要定义你的函数在/etc/vim/vimrc就行了)
这里我们是新建的一个干净的.vimrc文件
我先进入root
$su –
输入密码,进入root
#cd /etc/vim
#gnome-open ./ 打开当前目录/etc/vim
用gvim打开vimrc
我在第一行定义了环境变量
let $VIMRUNTIME=”/usr/share/vim/vim72″
set runtimepath=/usr/share/vim/vim72,~/.vim,~/.vim/after
在vim里面的可视界面 输入命令 (按ESC退出插入模式后的界面)
:echo $VIM
:echo $VIMRUNTIME
:scriptname
分别显示
/usr/share/vim/
/usr/share/vim/vim72
第二个是加载的脚本名,可以看到这里面是没有加载上/snipMate的插件的,因为这个是管理员root。而那个snipMate规定了必须在$~/.vim里面
下面回到终端,exit退出root 进入用户终端$
$cd ~
$gvim .vimrc
用用户的权限编辑 $~/.vimrc 这个文件, $~/.vimrc 这个文件实际路径为 /home/rainysia/.vimrc 我的用户名是rainysia
前面说了,用户的.vimrc文件是增加或者修改vim在用户权限下的配置的,所以这里我们加上三行
set runtimepath=/usr/share/vim/vim72,~/.vim,~/.vim/after
let g:snippets_dir=’/home/rainysia/.vim/snippets’
filetype plugin on
第一个行的意思是设置runtimepath的路径,第二行的意思是让snipMate的代码扩展组件定义为这个详细路径,第三个是打开载入文件 类型插件
保存退出
:wq!
回到下载的snipMate 我放在/home/rainysia/snipMate.zip
进入终端$~:
~$:cd /
/$:cp /home/rainysia/snipMate.zip /home/rainysia/.vim/
/$:cd ~
~$:cd .vim/
~/.vim$:unzip snipMate.zip
解压snipMate在当前目录 要是.vim目录已经存在了提示你覆盖什么的,选All
然后直接打开的vim全部退出
在用户界面随便新建一个文件(权限是用户 不是root)
然后随便输入一个 比如init main 然后按下tab
成功了。 代码自动补全为
int int main(int argc, const char *argv[])
{
return 0;
}
这样子debian下的gvim也可以用上snipMate了。类似的,Ubuntu的用户,如果装不了,可以参考下。
解决这个插件装不上的几个思路
1: 环境变量
2:snipMate文件只能放在~/.vim$ 下,不能放在官方的说的不严谨的 ~下。 ~包含 # 和 $
3:定义let g:snippets_dir=’/home/rainysia/.vim/snippets’ 这个绝对路径 /home/后跟的我的用户名,你可以改成你的
4:多google 英文相关的关键词,不要中文。