现在的位置: 首页 > 综合 > 正文

[转]在AIX操作系统上安装使用VIM的注意事项

2012年06月03日 ⁄ 综合 ⁄ 共 3486字 ⁄ 字号 评论关闭

                                        转]在AIX操作系统上安装使用VIM的注意事项


http://blog.csdn.net/chinainvent/archive/2008/07/26/2716820.aspx


  我目前的工作,常常需要通过SecureCRT,登录到IBMAIX UNIX操作系统进行编程。工作所用到的两个服务器的AIX版本是5.25.3。这两个版本对于我下面讨论的问题,情况都是一样的,没有区别。

 

  AIX本身提供了VI编辑器。但本人喜欢VIM,所以想方设法的安装它。安装步骤如下:

1.    到VIM的官网:ftp://ftp.vim.org/pub/vim/unix/下载一个最新版,目前是vim-7.1.tar.bz2


2.    在AIX服务上,你一般没有直接安装软件的权限。但没关系,找一个你能创建目录的地方,比如是/home/myName/

  创建一个soft目录,专门用来安装你自己喜欢的软件。把vim-7.1.tar.bz2解压到/home/myName/soft/vim71,进入源代码所在目录:/home/myName/soft/vim71/src。这时,你有两种方法来编译VIM

  方法一:使用AIX自带的编译器xlC

        #1.执行configure

        $ export CC=xlC        #使用AIX自带的xlC编译器

        $ export CFLAGS=-q64   #如果你的服务器是64CPU,务必使用这个选项

        $ ./configure --prefix=<安装路径> --enable-multibyte  #可以执行./configure --help 查看更多选择

        #<安装路径>是你有写权限的目录,比如这里是/home/myName/soft/vim71

        #使用--enable-multibye的用途是,可以使用VIMencoding,fileecncodings等设置,后面会提到。

        #2.执行make

        $ make

        $ make install          #这一步,会按照第1步中--prefix所指定的安装路径安装可执行文件和man文件

 

     方法一:使用gcc编译

        #第一步要改成:

        #1.执行configure

        $ export CC=gcc     #使用gcc编译器

        $ export CFLAGS=-maix64   #如果你的服务器是64CPU,务必使用这个选项

        $ export LDFLAGS=-maix64  #如果你的服务器是64CPU,务必使用这个选项,链接器选项       

        $ ./configure --prefix=<安装路径> --enable-multibyte 

3.    在执行VIM前,检查DISPLAY环境变量的值,(如果你的DISPLAY变量值为空,可以跳过此步)。

当我打开VIM时,发现没响应,像是卡住了。但执行命令kill -30 <VIM的进程序号>后,它又立即激活。后面发现是,是环境变量DISPLAY在作怪。

由于服务器还安装了ORACLE,而ORACLE的一些终端登录要用到DISPLAY变量:

 

图一、

   为了不影响其他同事使用ORACLE,把 <安装路径>/bin/下的可执行文件vim更名为vim71,并在<安装路径>/bin/目录下,新建一个名为vim的shell脚本,对vim71进行封装:

               -――file:vim-----

               #! /bin/sh

               export DISPLAY=;

               <安装路径>/bin/vim71 "$@"

               exit;

  把这个shell脚本的使用仅限更改为可执行:chmod +x vim。在~/.profile文件中,添加PATH:PATH+=<安装路径>/bin/。

  这样当我们执行vim命令时,其实是在执行这个shell脚本,而这个脚本首先把DISPLAY变量置为空,从而vim71就可以正常启动了。也可以对vimdiff等可执行程序,进行此类封装。

  还有一个更好的方法,不必改变原来的可执行文件名。在你的/home/myName/soft/下新建一个bin目录,专门存放你自己安装的所有可执行文件的链接。并把这个/home/myName/soft/bin目录添加到~/.profile文件的PATH变量中:PATH+=/home/myName/soft/bin。然后把shell脚本放在这个目录下即可,shell脚本里的vim71改为vim。


4.    VIM可以在AIX上,实现语法高亮吗?

不用怀疑,完全可以!

使用SecureCRT,把终端类型设置为vt100。在$VIM/vimrc里,进行如下配置:

if &term =~ "xterm" || &term =~ "vt100" || &term =~ "ansi"

  if has("terminfo")

        set t_Co=8

        set t_Sf=^[[3%p1%dm

        set t_Sb=^[[4%p1%dm

  else

        set t_Co=8

        set t_Sf=^[[3%dm

        set t_Sb=^[[4%dm

  endif

endif

注意^[是这样输入的:Ctrl+v,Esc键,详情可以在VIM中执行命令:help xterm-color


5.    默认安装的VIM,已经可以在AIX上查看中文。但当光标在中文上移动时,中文会变成乱码,怎么办?

例如正常显示是这样的:

图二、

 

当光标在“//或边界覆盖”上移动时,会变成下面这个样子:

图三、

研究了很多方法,最后发现把SecureCRT的字体改成新宋体,可以解决这个问题,注意字符集要选择CHINESE_GB2312那个:

图四、


6.    在AIX上安装的VIM中,能否做到,在执行x命令或Backspace命令时,一次删除一个汉字?

这个问题,研究了很久,网上有说到设置ecoding的方法(前提了安装VIM时,指定了--enable-multibye选项),这个方法在我的LINUX虚拟机上,是有效的(但还是要求字体为新宋体):

"suport chinese language

set fileencodings=ucs-bom,utf-8,cp936,latin1  "VIM所打开的文件的编码,按顺序解释

set encoding=cp936                      "VIM的内部编码,即缓冲区里的文件的编码

set fileencoding=cp936                  "VIM用何种编码来保存文件

set termencoding=cp936                  "终端的编码类型

7.    在AIX上安装的VIM中,map映射键失效,怎么办?

 这是终端的键盘选择不正确所致。解决方法,在SecureCRT中,模拟键盘选择“Xterm”:

    
图五、


但非常苦恼的是,在我工作的AIX服务器上,这个方法不起作用!用h,l命令,要移动两次才能越过一个汉字,用Backspace要执行两次,才能删除一个汉字,很痛苦!

看到这篇文章的朋友,如果你们有解决的方法,请给我留言,感激不尽!




------------------------------------------------------------------------------------------------------------------------------

我的编译方法:

$ prtconf

中显示CPU Type: 64-bit

但是设置CFLAGS=-q64不行,编译的时候提示一个库在32位下什么的不能用,就没设这个参数

设置

$ export CFLAGS="-qlanglvl=extc99"

$ ./configure --prefix=/home/ud090401/vim73 --enable-multibyte --disable-gui --without-x --disable-xsmp --with-features=huge

$ make

$ make install


抱歉!评论已关闭.