- 论坛徽章:
- 0
|
openserver下一直没有一个强大的编程工具,自带的vi在编程时实在效率不高,VIM是一个与vi类似的编辑器,这是一个开放源软件,目前最新版本是6.4,最新版的Vim已经具有了非常多的功能, 这些功能使程序员能更加轻松, 便捷地使用它们. 正是这些丰富强大的功能使vim成为无数程序员的至爱,但是vim没有openserver下可用二进制包,那么就让我们用源代码来构建一个吧(本文尽可能详细,预览图就借用一下这张算了 ,目前还不知道怎么实现预览功能,如有哪位知道,告诉一声,谢谢)
环境:sco openserver 5.06, 已装好开发系统,
安装补丁RS506A,OSS651B(可不装), OSS646C(必须装,因为装gcc用得装)
如果是5.05要装rs505a, oss646b
以上补丁可以在ftp://ftp.sco.com/pub/openserver5 中找到
所需要用到的工具:
gwxlibs-1.3.1Ba, 这是装gcc必需要的,custom安装,并且要在装gcc之前就装好,因为我是装5.07的,所以不清楚单独装一个gcc编译器,是否可以不装
下载地址:ftp://ftp.sco.com/pub/openserver5/opensrc/gwxlibs-1.3.1Ba/
gcc, 如果你有5.07的系统盘,可以直接装GNU Development Tools (ver 5.0.7Kj)好,如果没有的话,就到 ftp://ftp.sco.com/pub/openserver5/opensrc/gnutools-5.0.7Kj/ 去下载一个, custom安装
ctags-5.5.4, 虽然sco自带了一个,但是不支持taglist插件的参数,所以最好还是重新下载,自已编译一个,下载地址是:http://ctags.sf.net,以bin方式上传到sco机器上,假定上传到/tmp, 等下和vim一起编译
bzip2、unzip,gzip, 这三个都是解压工具,它们的源代码地址在下面,如果你有兴趣,也可以用源代码构建。
bzip2: http://www.bzip.org/
unzip: http://www.info-zip.org/UnZip.html#SCO
gzip: www.gzip.org
编译虽不复杂,但比较繁琐,建议大家到下面这个网站去下载来用,
http://www.unix-cd.com/unixcd12/ ... _id=22&s_id=147
下面讲一下在这个网站下载到的这三个工具软件的安装,
以二进制方式把bzip2-0.9.5d-VOLS.tar,gzip.tar,unzip-5.3-VOLS.tar这三个文件传到sco机器的/tmp目录下
以root用户登录,
cd /tmp
tar xvf bzip2-0.9.5d-VOLS.tar, 然后用custom安装
tar xvf unzip-5.3-VOLS.tar, 用custom安装
tar xvf gzip.tar
cp gzip /usr/bin
环境变量:请把/usr/gnu/bin添加到PATH变量中,因为gcc就是装在这里的
我是用ksh,在.profile文件尾增加以下两句话:
PATH=$PATH:/usr/gnu/bin
export PATH
退出再重新登录,建议用root用户登录, 其它shell参照添加,
好象装准备的都准备好了,请先用gcc编译一个程序试下,看gcc是否工作正常,如果正常的话,就进行下一步的工作
1、到www.vim.org去下载vim的源代码,目前版本6.4,下载地址为:
ftp://ftp.vim.org/pub/vim/unix/vim-6.4.tar.bz2
传到sco机器上,假定为/tmp目录下,请记住,ftp时要用bin模式,因为windows的ftp默认是ascii模式
然后telnet,建议用root用户,执行以下命令
cd /tmp
file vim-6.4.tar.bz2
如果输出不是"vim-6.4.tar.bz2: bzip2 compressed data", 而是"vim-6.4.tar.bz2: cannot open for reading", 就说明上传时不是bin模式,删除再传,然后继续下面的步骤
bunzip2 vim-6.4.tar.bz2
tar xvf vim-6.4.tar
cd vim64
CC=gcc
CFLAGS='-O6 -static -fomit-frame-pointer -march=i586 -mcpu=i586 -DSCO -DMAXPATHLEN=1024'
LDFLAGS='-static'
export CC CFLAGS LDFLAGS
建议使用静态编译,
./configure --prefix=/usr --host=i586-pc-sco3.2v5.0 --with-view-name=vview --with-ex-name=vex --with-features=huge --enable-cscope --enable-multibyte --with-x=no --enable-gui=no --with-tlib=curses --disable-nls
gmake或make
gmake install
cd /usr/share/vim
cp vim64/vimrc_example.vim vimrc
然后再编译ctags,
cd /tmp
gzip -d ctags-5.5.4.tar.gz
tar xf ctags-5.5.4.tar
cd ctags-5.5.4
./configure --prefix=/usr
gmake
gmake install
2. 安装taglist, tabbar, SQLUtilities, align这四个插件
taglist: http://www.vim.org/scripts/script.php?script_id=273
tabbar: http://www.vim.org/scripts/script.php?script_id=1338
SQLUtilities: http://www.vim.org/scripts/script.php?script_id=492
align: http://www.vim.org/scripts/script.php?script_id=294
然后传到sco机器/tmp目录下,telnet后执行如下命令
cd /usr/share/vim
mkdir vimfiles
cd vimfiles
unzip /tmp/taglist_40b3.zip
unzip /tmp/sqlutil_141.zip
gzip -d /tmp/Align[1].tar.gz
tar xf /tmp/Align[1].tar
cd plugin
cp /tmp/tabbar.vim .
cd /usr/share/vim/vimfiles/doc
运行vim, 执行“:helptags .”这个命令,至此vim已经基本安装完毕,至于还有什么好的插件,请大家推荐使用
还有个sql_iabbr插件,是用来在编辑时对sql关键字自动大写替换的,有兴趣可以用一下,不过我觉得有时候会引起误用,所以没有在些例出来,使用方法是在/usr/share/vim/vim64/ftplugin/目录下建一个esqlc目录,然后把sql_iabbr.vim传到这个目录
3、请做以下修改,以便vim能对esqlc文件有更好的支持
使vim能对esql文件自动增加cindent支持(使用C语言的自动缩进)
cd /usr/share/vim/vim64/indent
cp c.vim esqlc.vim
使taglist插件可以支持esql文件
用vim打开/usr/share/vim/vimfiles/plugin/taglist.vim文件,移到348行,增加以下三行
" esqlc language
let s:tlist_def_esqlc_settings = 'c;d:macro;g:enum;s:struct;u:union;t:typedef;' .
\ 'v:variable;f:function'
在/usr/share/vim/vimrc文件的末尾增加以下这句话,否则tabbar插件不能正常工作
let g:Tb_ModSelTarget = 1
let g:Tb_ForceSyntaxEnable = 1
/usr/share/vim/vimrc是vim的公共配置文件,私人配置文件在用户起始目录的.vimrc文件中
第一次使用请建立.vimrc,里面的内容可以参照本文最后我现在现在.vimrc的内容
按上面设置好后,如果在root用户下运行正常,而非root不可用,则要检查/usr/share及/usr/share/vim这些目录的权限,要755才可以
4、配置了cscope, 提高开发效率
Cscope 是一个类似 ctags 的工具。 你可以把它想作是超过频的 ctags,因为它功能比ctags 强大很多。在 Vim 里,通过 cscope 查询结果来跳转就象跳转到其他的标签完全一样; 它被保存在标签堆栈里。这样你就可以象使用 |tags| 一样在函数等等之间便捷的跳转。下面举例说明如果配置cscope
假设用户目录下/u/infdev, 该目录下有二个子目录存放有源代码,分别是online,admin, 用以下语句建立cscope数据文件
cd /u/infdev
find online -name "*.c" -o -name "*.ec" -o -name "*.h" > cscope.files
find admin -name "*.c" -o -name "*.ec" -o -name "*.h" >> cscope.files
cscope -b
/u/infdev目录下就会生成两个文件,cscope.files, cscope.out
在用户的.vimrc最后增加以下内容
set cst
set csto=0
set cscopequickfix=s-,c-,d-,i-,t-,e-
cs add /u/infdev/cscope.out /u/infdev
set path+=~/include,../incl,../inc
vim中cscope相关命令简介:
所有命令都是通过主命令 ":cscope" 的子项完成的。主命令最短的缩写是 ":cs"。
":scscope" 完成同样的功能的同时还可以分割窗口 (缩写: "scs").
可用的子命令有:
add : 添加一个新的 cscope 数据库/连接。
用法 :cs add {file|dir} [pre-path] [flags]
[pre-path] 用来通知 cscope 使用 -P [pre-path] 选项。 [flags] 可以用来给 cscope 传递额外的选项。
例子 :cscope add /usr/local/cdb/cscope.out
:cscope add /projects/vim/cscope.out /usr/local/vim
:cscope add cscope.out /usr/local/vim -C
find : 查询 cscope。除了第 5 个之外的所有 cscope 查询功能都 可以使用。第 5 个是 "Change this grep pattern"。
用法 :cs find {querytype} {name}
{querytype} 和 cscope 的控制台界面以及 nvi 缺省命令 都是一致的。
0 或 s: 查找 C 符号
1 或 g: 查找定义
2 或 d: 查找本函数调用的函数
3 或 c: 查找调用指定函数的函数
4 或 t: 查找字符串
6 或 e: 查找 egrep 模式
7 或 f: 查找文件
8 或 i: 查找包含指定文件的文件
例如 :cscope find c vim_free
:cscope find 3 vim_free 这两个例子执行同样的查询。
kill : 终止一个 cscope 连接 (或终止所有 cscope 连接).
用法 :cs kill {num|partial_name} 要终止一个连接,需要给处连接号或者部分的连接名称。部分名称可以是数据库文件路径的任何一部分。所以要当心使用这个功能! 如果给定的连接号是 -1,那么所有的cscope 连接都会被终止。
reset: 重新初始化所有连接。 用法 :cs reset
show : 显示当前的连接。 用法 :cs show
5、插件的基本使用方法
taglist: 用:TlistToggle 打开左边的tag窗口,再输一次自动关闭,按ctrl+w可以在窗口之间进行切换,也可以按照如下方法定义一个快捷键
nnoremap <silent> <F8> :TlistToggle<CR><CR>
tabbar: 按ESC+1,ESC+2,ESC+3, ... ESC+0 在十个窗口切换,如果开了tag窗口,则可能要按一下回车,才能回到tabbar的当前编辑窗口
SQLUtilities:这是一个用来格式化sql语言的,\sf 格式化当前行,如果sql语言占3行,则用3\sf
至此,基本工作已经完成了,你已经可以用vim来编辑一个ec文件,用ctrl+]来查找函数定义,用ctrl+t来返回,是不是很方便啊 |
|