感谢支持
我们一直在努力

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

我目前的工作,常常需要通过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等可执行程序,www.linuxidc.com进行此类封装。


  还有一个更好的方法,不必改变原来的可执行文件名。在你的/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要执行两次,才能删除一个汉字,很痛苦!

赞(0) 打赏
转载请注明出处:服务器评测 » 在AIX操作系统上安装使用VIM的注意事项
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏