Vim几句话介绍
      Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也有移植的版本,方便了Windows上的用户。Vim的文本编辑功能非常强大,强大的有些让人吃惊!并且非常稳定,你的文档不用经常存盘,它不会出现类似于“***程序内部错误!”等等现象,***程序曾经让我欲哭无泪啊!

开始使用Vim吧!
       启动:在命令提示符后输入vim,然后回车,就启动了vim,然后进入vim的界面。如果在命令提示符后输入vim ### 并回车,则表示希望编辑###这个文件,例如vim .xinitrc,则编辑.xinitrc这个文件,如果这个文件不存在,则表示新建这个文件并编辑。好了,你赶快试试吧,然后我将告诉你如何输入一些文本。

vim的工作模式
      别着急,要想输入文本,要先熟悉一下Vim的工作模式。(我第一次就是在输入了vim后,就开始劈里啪啦的输入,可是怎么没反映啊!?)
      vim的工作模式有三种,分别是正常(Normal)模式、插入(insert)模式和可视(visual)模式。这就是说Vim在不同的模式下工作的表现形式是不同的。在进入vim后,默认的模式是Normal模式,这时可以输入一些命令,不过别急,咱们先输入一些文本看看。在Normal模式下,单击i或者a,则进入insert模式,这时你可以输入了。为了后面的学习,你多输入些内容。输入结束后,单击Esc键,回到Normal模式,然后输入:w filename,如果你启动vim时已经包含文件名,输入:w(注意包括冒号),则将文件存盘。
      OK,恭喜你!你现在已经能够启动vim,输入内容并存盘了。


   下面我们我们简单介绍一下模式的内容。
       前面说过,vim在不同的模式下有不同的工作方式,例如输入文本内容在insert模式下,其他进行修改、删除、拷贝、粘贴等在Normal模式下。因此当你发现输入错误想修改时必须切换到Normal模式下进行,是不是很麻烦啊!我当初也是这样认为的,但是你一旦习惯后,你就会觉得它的好处了!切换到Normal模式就是单击Esc键,vim的屏幕下面有当前工作模式的提示。进入输入文本的insert模式是输入i或者a。i和a这俩个指令的区别就是i代表在光标前插入字符,a代表在光标后插入字符,就是这么简单,OK,如何用就看你的了!

编辑文本
   进行文本编辑,应该是Unix初学者最开始碰到的问题。Unix下的默认配置文件经常要修改的啊!所以掌握编辑方法是非常重要的。并且本文的目的就是让初学者掌握简单而又实用的编辑、修改命令。至于其他的高级使用方法,可以参考其他书籍!
OK,咱们就开始学习吧!

移动光标是最基本的,下面都是移动光标的命令,看看那个好记,就记住吧。
       在Noraml模式下,键盘上的h、j、k、l 分别代表左、下、上、右移动光标。OK,在你刚才编辑的文档中试试移动光标,爽吧!再也不用移动手指到那4个方向键了!
   什么?你说这4个键一次只能移动一个字符和一行,太慢了!OK,下面几个快速移动光标的方法你有精力就记住吧!
  
   一次移动一个字(word)
       w和b指令一次分别向后/向前移动一个字。
      注:(1)可以用数字来进行移动多个Word,例如3w,2b就是分别向右(向后)移动3个word, 和2个word。
            (2)中文因为是连在一起的,所以如果没有空格或者数字、英文标点的话,将视为一个word。
   移动到一行的头和尾
      ^ :行头 $ :行尾
      注:行尾$,可以用3$移动到下面第3行尾,行首^ 不支持数字。
      如何跳到指定行?
      nG
         注:(1)n表示第n行,例如10G,则跳到第10行,且光标在行首。
                   (2)如果没有n,只有G,则跳到最后一行,且光标在行首。

   我想用G命令,但是如何知道第几行?OK,在Normal模式下输入:set number就可以显示行号了,如果想关闭行号,则输入:set nonumber。

好了,移来移去,来点别的吧,例如如何修改,复制。OK,GO!
先来看看如何进行修改吧。Word和其他的一些文本编辑器都是编辑和输入混杂在一起的,输入的同时就可以修改。而Vim的这些编辑指令必须在Normal模式下,切记!
  
   修改命令

删除:
在word等编辑器下,如果输入错了,我们可以用Delete和Backspace键删除,然后再重新输入,vim也可以这样,x就是删除光标所在处的字符(char),dw就是删除一个字(word),然后在输入i或者a进行新内容的输入。

删除整行如何操作?dd就可以删除光标所在行。

那删除光标所在处到本行的结尾呢?D或者d$就可以了。还记得$吗?代表什么来着?

删除结束还要在输入i 或者a 才能输入真麻烦!有没有删除后就进入inster模式的指令呢?当然有,就是关于c的指令,cw是删除一个Word,cc删除整行,c$和C都是删除光标所在处到本行的结尾。你可能已经明白了,其实c的指令是修改指令。

好了,你是否已经把内容删干净了,没有可以编辑的内容了呢?呵呵,没关系,u指令可以让你恢复删除的内容。在Normal模式下,输入u,就恢复了,重复输入u就把整个内容都恢复了,u就是其他文本编辑器里的Undo的指令,对应的Redo指令就是[Ctrl]r。需要注意的是在不同模式下,u 的含义是不同的。如果在instert模式下输入然后在Normal模式下执行u,则会删除上一次输入的所有内容。如果是在 Normal 模式下执行其他的指令例如x,然后再执行u,就恢复一次 Normal 下的指令。Redo也一样。

OK,让我们来学习更加重要的功能吧!

   剪切、复制、粘贴等相关
剪切、复制等这些指令都是同块(block)相关的操作,因此无论如何都要先了解一下块的基本知识。vim里用mark来定义一个标记,然后用y指令把指定的内容进行复制到缓存中,然后用p来粘贴。!@#¥%^&,天啊,太复杂了。没关系,咱们用个例子来说明吧,很简单的!
例如下面的文本:
                              this is the first line
         this is 2nd line
我们可以先把光标移动到第一行的行首,然后切换到Normal模式(还记得如何切换吗?),输入ma(表示标记a),然后移动光标到第2行的2nd处,输入y`a(表示把标记a到光标所在处复制到缓存中),然后移动光标到你希望粘贴的地方输入p(表示粘贴)。OK你已经完成了最基本的复制、粘贴功能。


下面我们看看这几个命令(m,y,p)的情况。
m指令。m指令非常简单,他就是做标记,你可以做从a到z的26个标记例如ma,mb,mc等。他在很多指令中会用到,例如删除,这本入门就不介绍了,你可以参考其他书籍。
y指令表示yank,其实就是拷贝。不过他有其他的指令形式,例如yy复制整行。
p指令就是粘贴。例如上面的例子。
OK,既然你知道了yy指令,那希望复制一行并粘贴的话,我想你应该知道如何操作了吧(yy,p)。

也许你用m做标记感觉不是很舒服,OK,我们来个可视的块的选择方法。那就是v指令。
记得在其他的文本编辑器里我们可以用鼠标选择一些文本,然后copy,paste,在vim里一样可以,当然希望用鼠标最好用gvim。现在来试试v的指令吧。
在Normal模式下,输入v(看到屏幕下面的visual模式提示了吗?),然后移动光标,看到被选择的内容了吧 。选择好了,你可以输入d把他们删除,也可以输入y将他们复制到缓存中,然后用p来粘贴到你希望的地方。什么多次粘贴,多按几次p就可以了,也可以输入#p,#代表连续粘贴的次数,例如粘贴100次,就输入100p。
OK,我想你一定喜欢上v命令了,还有V和[CTRL]v呢!V(大写)是表示可视行,就是代表你移动光标时,选择的范围是行,不像小写的v是一个字符。另外[CTRL]v是选择方块,你可以试试,就清楚了!



好了,基本的东西就这些了,当然还有几个也不错的命令东东,很简单,它能高效的配合你上面的基本工作,那还犹豫什么!开始吧!


连接行
   你在编辑的时候,一定会碰见希望把两行或者多行合并成一行的情况。好,vim已经给你设计好了,就是J指令,注意是大写(j是什么?)。J表示将光标所在行和下一行合并成一行,如何合并多行,可以输入#J,#代表希望合并的行数,例如3J。

插入新行
   怎么插入新行?用o或者O指令(不是零)。o是在当前行下插入新行,大写O是在当前行上插入新行。真是简单,而且直接进入instert模式,不错,设计的很贴心。

如何在一行内查找一个字符(或者一个中文单字)?
   使用fx,Fx,tx,Tx指令。其中x代表欲查询的字符。他们的区别是:fx(向右)查x,且光标停在x上,Fx(向左)查x,且光标停在x上,tx(向右)查x, 且光标停在x前,Tx(向左)查x, 且光标停在x后。

如何查找字符串?
   使用/xxxxx。其中×××××为需查找的内容。当查到多个内容时,可以输入n来将光标定位到下一个位置。此外查找命令有历史记录功能,可以输入/,然后用光标上、下键来切换已经查过的内容。要注意的是几个特殊的字符必须在前面加。这几个字符为:.*[]^%/?~$。如果想往回查找,则输入?,改变查找顺序,再输入n来进行定位。当然也可以用N来反向查找。

如何翻页(半页)?
   使用[ctrl]u和[ctrl]d。其中^u为向上翻半页,^d为向下翻半页。

如何插入一些特殊的字符,例如:∮等?
   使用:digraphs来显示特殊字符的列表,然后输入CTRL+K+显示出来的2个字符来输入特殊字符,例如输入CTRL+K+I+o,则为∮。

哦!忘记了告诉你如何退出vim!
在Normal模式下,输入ZZ就可以保存文档并退出。
在Noraml模式下,输入:q!可以强制退出,就是不保留修改退出。

好了,享受Vim吧!

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

1、vi的基本概念
  基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)

  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)

  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)

  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

2、vi的基本操作
a) 进入vi

  在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:

   $ vi myfile


  不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!

b) 切换至插入模式(Insert mode)编辑文件

  在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

c) Insert 的切换

  您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。

d) 退出vi及保存文件

  在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:

: w filename (输入 「w filename」将文章以指定的文件名filename保存)

: wq (输入「wq」,存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)


3、命令行模式(command mode)功能键
1). 插入模式

  按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

  按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

  按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2). 从插入模式切换为命令行模式

  按「ESC」键。

3). 移动光标

  vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

  按「ctrl」+「b」:屏幕往“后”移动一页。

  按「ctrl」+「f」:屏幕往“前”移动一页。

  按「ctrl」+「u」:屏幕往“后”移动半页。

  按「ctrl」+「d」:屏幕往“前”移动半页。

  按数字「0」:移到文章的开头。

  按「G」:移动到文章的最后。

  按「$」:移动到光标所在行的“行尾”。

  按「^」:移动到光标所在行的“行首”

  按「w」:光标跳到下个字的开头

  按「e」:光标跳到下个字的字尾

  按「b」:光标回到上个字的开头

  按「#l」:光标移到该行的第#个位置,如:5l,56l。

4). 删除文字

  「x」:每按一次,删除光标所在位置的“后面”一个字符。

  「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

  「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

  「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

  「dd」:删除光标所在行。

  「#dd」:从光标所在行开始删除#行

5). 复制

  「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

  「#yw」:复制#个字到缓冲区

  「yy」:复制光标所在行到缓冲区。

  「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

  「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

6). 替换

  「r」:替换光标所在处的字符。

  「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7). 回复上一次操作

  「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。

8). 更改

  「cw」:更改光标所在处的字到字尾处

  「c#w」:例如,「c3w」表示更改3个字

9). 跳至指定的行

  「ctrl」+「g」列出光标所在行的行号。

  「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

4、Last line mode下命令简介
  在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

A) 列出行号

 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

B) 跳到文件中的某一行

 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

 「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

D) 保存文件

 「w」:在冒号输入字母「w」就可以将文件保存起来。

E) 离开vi

 「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。

 「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

5、vi命令列表
1、下表列出命令模式下的一些键的功能:

h
左移光标一个字符

l
右移光标一个字符

k
光标上移一行

j
光标下移一行

^
光标移动至行首

0
数字“0”,光标移至文章的开头

G
光标移至文章的最后

$
光标移动至行尾

Ctrl+f
向前翻屏

Ctrl+b
向后翻屏

Ctrl+d
向前翻半屏

Ctrl+u
向后翻半屏

i
在光标位置前插入字符

a
在光标所在位置的后一个字符开始增加

o
插入新的一行,从行首开始输入

ESC
从输入状态退至命令状态

x
删除光标后面的字符

#x
删除光标后的#个字符

X
(大写X),删除光标前面的字符

#X
删除光标前面的#个字符

dd
删除光标所在的行

#dd
删除从光标所在行数的#行

yw
复制光标所在位置的一个字

#yw
复制光标所在位置的#个字

yy
复制光标所在位置的一行

#yy
复制从光标所在行数的#行

p
粘贴

u
取消操作

cw
更改光标所在位置的一个字

#cw
更改光标所在位置的#个字


2、下表列出行命令模式下的一些指令
w filename
储存正在编辑的文件为filename

wq filename
储存正在编辑的文件为filename,并退出vi

q!
放弃所有修改,退出vi

set nu
显示行号

/或?
查找,在/后输入要查找的内容

n
与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。


对于第一次用vi,有几点注意要提醒一下:
1、用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。切换方法:在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC」键。
3、保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的:)

----------------------------------------------------------------------------
             (h,j,k,l,w,b等等)或者是指行号.
#             (这里#代表一个数字)
执行n次后面的命令...
:             进入ex模式
)             下一句
(             上一句
}             下一段
{             上一段
]]            下一节
[[            上一节
0             行的开头
$             行的末尾
^             行的第一个非空白字符
+             下一行的开头
-             上一行的开头
(空格)        下一个字符
(回车)        下一行
/             向前搜索
?             向后搜索
%             查找当前小(中,大)括号的匹配字符
,             逆向重复上一个f,F,t或T操作
;             重复上一个f,F,t或T操作
.             重复上一个操作
`             转到标记处
'             转到标记所在行的开头
``            查找前回到上一个做标记的地方
''            查找前回到上一个做标记所在行的开头
~             切换字符的大小写
"             保存到寄存器中
!!            重复上一次SHELL命令
!             把后面的文本送给命令, 取代输出(例如,
!}fmt把当前的段落


送给命令fmt处理,然后用fmt返回的东西替换输出.)
>>             右移当前段落一个移动宽度(shiftwidth)
<<             左移当前段落一个移动宽度(shiftwidth)
> %
从当前到匹配小(中,大)括号之间的文本右移
<%
从当前到匹配小(中,大)括号之间的文本左移
(似乎漏了一个符号|, 移动到某一列----译注)
a             在当前位置之后添加
A             在当前行的末尾添加
^a            没有使用
b             上一个单词的开头
B             上一个单词的开头,忽略标点符号
^b            上移一屏
c             覆盖...
C             覆盖到行末尾
^c            终止插入模式,在命令模式没有用
d             删除...
D             删除到行末尾
^d
下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftT-ab)处


e             单词的末尾
E             单词的末尾,忽略标点符号
^e            屏幕下卷一行
f             查找...
F             向后查找...
^f            下移一屏
g             未用
G             ...跳至[缺省是到文件末尾]
^g            显示状态栏
h             左移
H             屏幕上的第一行
^h            在插入模式下是退格,命令模式下是左移
i             在当前的位置前面插入
I             在本行的第一个非空白字符前面插入
^i            插入模式下是制表键,命令模式下未用
j             下移
J             把下一行合并到本行
^j
命令模式下是下移,插入模式下是建一个新行
k             上移
K             未用
^k            未用
l             右移
L             屏幕中的最后一行
^l            重绘屏幕
m             把当前位置标记到寄存器中
M             屏幕的中间行
^m            回车
n             重复上次查找
N             逆向重复上次查找
^n            命令模式下是下移
o             在当前行的下面建一个新行
O             在当前行的上面建一个新行
^o            未用
p             在当前行的下面粘贴
                (译注--应为在当前位置的后面粘贴)
P             在当前行的上面粘贴
                (译注--应为在当前位置的前面粘贴)
^p            命令模式下是上移
q             未用
Q             退出并且启动ex
^q            未用
r             覆盖当前的字符
R             在插入模式下一直覆盖字符
^r            在命令模式下面重绘屏幕
s             替换
S             替换整行
t             到...
T             向后到...
^t            移到下一个移动宽度(shifttab)处
u             撤消上一次操作
U             撤消对本行的所有修改
^u            上移半屏
v             未用
V             未用
^v            未用
w             下一个单词的开头
W             下一个单词的开头,忽略标点符号
^w
命令模式下未用,在插入模式下是到上一个单词的开头处


x             删除当前字符
X             删除前一个字符
^x            未用
y             复制...
Y             复制整行
^y            屏幕上卷一行
z             重新配置当前行周围的屏幕
ZZ            保存之后退出
^z            未用


(译注--在命令模式下,^z执行了UNIX暂停操作)


6.1 - 命令模式的输入选项(:命令)
(注: 这不是一个规范的列表,,
我只是列出了一些最重要的命令)
:r <文件>     把<文件>读入到当前文档
:r !<命令>    把<命令>的输出插入到当前文本中
:nr <文件>    把<文件>插入到第n行
:!<命令>      运行<命令>,然后返回
:sh           转到SHELL
:so <文件>    读取<文件>,再执行文件里面的命令
                (译注--文件中的命令应该都是一些ex命令)
:x            保存之后退出
:wq           保存之后退出
:l1,l2w
< 文件>把第l1和第l2行之间的文本写到<文件>中去,如果没-有指定<文件>,


vi就假定是当前文件,如果没有指定l1,l2,就假定是整个文-件(就成了:w)


:w >> <文件> 添加到<文件>末尾. 也可以使用行号
:w!           覆盖当前文件
:q            退出
:q!           不存盘就退出
:e <文件>     不离开vi编辑<文件>
:e!           重新编辑当前文件,忽略所有的修改
:n            编辑下一个文件
:e +n <文件>
从第n行开始编辑<文件>,如果超过了末尾,就从末尾开始编辑


:e#
编辑替换文件(如果使用了命令:e<文件>,替换文件就指的是原-始文件)


:args         显示所有要编辑的文件
:rew          重新回到第一个编辑的文档
:map m n      创建一个宏(使 m 做 n)
:map! m n     创建一个插入模式的宏(使 m 做 n)
:unmap m      删除宏m
:unmap! m     删除插入模式的宏m
:ab <1> <2>   缩写,敲<1>的时候用<2>取代
:unab <1>     取消缩写<1>
:set <选项>   设置<选项>...


6.2 - 设置选项(set)
可以使用括号中的缩写形式. 语法:
:set <选项> <参数> (如果需要参数的话)
也可以在一行中指定多个选项
:set <选项>? 显示出当前这个选项的参数值
:set all 则显示所有的选项值
对那些无须参数的选项来说,使用:set
no<选项>就可以把它给关了


选项:                 缺省值:         含义:
autoindent (ai)       noai
使新行自动缩进,和上(下)行的位置对齐
autoprint (ap)        ap
每条命令之后都显示出修改之处
autowrite (aw)        noaw
在:n,:!命令之前都自动保存文件
beautify (bf)         nobf
在输入的时候忽略所有的控制字符


(除了制表键(tab),换行(newline),进纸(for-mfeed))
directory= (dir=)     /tmp            存放缓冲区的目录名
edcompatible          noedcompatible
在替换的时候使用类ed的用法
errorbells (eb)       errorbells      出错的时候响铃
exrc (ex)             noexrc
允许在主目录(home)外面之外放.exrc文件
hardtabs= (ht=)       8               设置硬制表的边界
ignore case (ic)      noic            正规式里忽略大小写
lisp                  nolisp          打开lisp模式
list                  nolist
显示所有的制表键和行的结尾
magic                 magic
可以使用更多的正规表达式
mesg                  mesg            允许向终端发送消息
number (nu)           nonumber        显示行号
open                  open            允许开放和可视化
optimize (opt)        optimize
优化吞吐量,打印时不发回车
paragraphs= (para=)   IPLPPPQPPLIbp   设置{ & }的分界符
prompt                prompt
命令模式下的输入给出:的提示符
readonly (ro)         noro
除非用!号否则不准保存文件
redraw                noredraw        当编辑的时候重绘屏幕
remap                 remap           允许宏指向其他的宏
report=               5
如果影响的行数>这个数的话就报告
scroll                1/2 window
下卷屏幕时滚动屏幕的数目,


同样这也是z命令输出的行数(z 输出2倍滚屏的大小)
sections=             SHNHH HU
定义节的末尾(当使用命令[[ 和 ]] 时)
shell= (sh=)          /bin/sh
缺省的SHELL,如果设置了环境变量SHELL的话,就使用变-量
shiftwidth= (sw=)     8
当使用移动(shift)命令时移动的字符数
showmatch (sm)        nosm            显示{, }, (, ), [, 或者 ]
的匹配情况
showmode              noshowmode
显示你处在什么模式下面
slowopen (slow)
插入之后不要立刻更新显示
tabstop= (ts=)        8
设置制表停止位(tabstop)的长度
taglength= (tl=)      0
重要标记的字符个数(0表示所有的字符)
tags=                 tag, /usr/lib/tags
定义包含标记的文件路径
term=                                 设置终端类型
terse                 noterse         显示简短的错误信息
timeout (to)          timeout         一秒钟后键盘映射超时
ttytype=                              设置终端类型
warn                  warn            显示"No write since last
change"信息
window= (w=)                          可视模式下窗口的行数
wrapmargin= (wm=)     0
右边距,大于0的话最右边的单词将折行,留出n个空白位置


wrapscan (ws)         ws
查找到文件尾后再重头开始
writeany (wa)         nowa
可以保存到任意一个文件去

先编辑/usr/src/sys/i386/conf/GENERIC
#cd /usr/src
#make kernel KERNCONF=GENERIC