VI环境选项
作者 :OoNiceDream【转载时请务必以超链接形式标明文章原始出处和作者信息】
链接:http://www.dbaroad.me/archives/2009/09/vi_env_option.html
链接:http://www.dbaroad.me/archives/2009/09/vi_env_option.html
经常用vi修改tnsnames.ora,有时会发现在A机子上显示得好好的连接格式,复制到B机时,全变乱,如果复制的内容多了,那更是乱得一蹋糊涂,而在一些机子上又可以正常复制。
例如,原格式为:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) |
使用vi复制进去后变成了:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) |
为什么一些机子上可以正常复制,一些机子上又会乱掉呢?一开始怀疑跟文本的格式、SecureCRT设置、profile中环境变量有关,一一测试后,发现都不对。最后才发现原来是vi环境选项的问题(以前没这个概念,汗)。
进入vi后,使用:
:set all |
来查看所有缺省选项,结果如下:
:set all autoindent nomodeline noslowopen autoprint nonumber tabstop=8 noautowrite nonovice taglength=0 nobeautify nooptimize tags=tags /usr/lib/tags closepunct='".,;)]} paragraphs=IPLPPPQPP LIpplpipbp backtag directory=/var/tmp partialcharacter=- term=vt100 noedcompatible prompt noterse noerrorbells noreadonly timeout noexrc redraw ttytype=vt100 flash remap warn hardtabs=8 report=5 window=39 noignorecase scroll=19 wrapscan linelimit=1048560 sections=NHSHH HUuhsh+c wrapmargin=0 nolisp shell=/usr/bin/ksh nowriteany nolist shiftwidth=8 wraptype=word magic noshowmatch mesg noshowmode |
这些选项中,选项autoindent,指的就是“文本的每个新行均与上一行对齐”。改成noautoindent后就可以避免复制时格式乱掉的问题。
要更改这些选项,使用:
:set option |
例如将autoindent选项修改为noautoindent:
:set noautoindent |
通过set命令设置的选项值是临时的,退出vi后便失效了。要使选项值永久生效,可以在用户主目录下创建.exrc文件,并将值添加进去:
[/app/oracle]$ cd [/home/oracle]$ cat .exrc set noautoindent |
— The End —
关键字: Unix | Shell


不错,学习了
Reply