<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yaron's Blog &#187; VIM编辑器</title>
	<atom:link href="http://yaron.org.cn/archives/category/software/vimeditor/feed" rel="self" type="application/rss+xml" />
	<link>http://yaron.org.cn</link>
	<description>About PHP MYSQL JS WEB FreeBSD etc.</description>
	<lastBuildDate>Sat, 31 Jul 2010 13:54:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使用VI编辑器开发PHP程序&#8212;&#8212;配置文件</title>
		<link>http://yaron.org.cn/archives/35</link>
		<comments>http://yaron.org.cn/archives/35#comments</comments>
		<pubDate>Mon, 02 Mar 2009 05:20:03 +0000</pubDate>
		<dc:creator>Yaron</dc:creator>
				<category><![CDATA[VIM编辑器]]></category>

		<guid isPermaLink="false">http://yaron.org.cn/archives/35</guid>
		<description><![CDATA[在WIN下使用GVIM。配置文件位于用户目录下， 文件名是_vimrc。
以下是配置文件内容：


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
syntax on
set nu
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent
set ruler
set incsearch
set wildmenu
set wildmode=list:full
set ic
set backspace=indent,eol,start
set whichwrap=h,l
set lbr
set guioptions-=T
colorscheme elflord
&#160;
:inoremap ( ()&#60;esc&#62;i
:inoremap<a href="http://yaron.org.cn/archives/35" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>在WIN下使用GVIM。配置文件位于用户目录下， 文件名是_vimrc。</p>
<p>以下是配置文件内容：</p>
<p><span id="more-35"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code"><pre class="vi" style="font-family:monospace;">syntax on
set nu
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent
set ruler
set incsearch
set wildmenu
set wildmode=list:full
set ic
set backspace=indent,eol,start
set whichwrap=h,l
set lbr
set guioptions-=T
colorscheme elflord
&nbsp;
:inoremap ( ()&lt;esc&gt;i
:inoremap { {}&lt;/esc&gt;&lt;esc&gt;i&lt;enter&gt;&lt;esc&gt;xO
:inoremap } {}&lt;/esc&gt;&lt;esc&gt;i
:inoremap [ []&lt;/esc&gt;&lt;esc&gt;i
:inoremap ' ''&lt;/esc&gt;&lt;esc&gt;i
:inoremap &quot; &quot;&quot;&lt;/esc&gt;&lt;esc&gt;i
:inoremap -- -&gt;&lt;/esc&gt;&lt;esc&gt;a
:inoremap -= =&gt;&lt;/esc&gt;&lt;esc&gt;a
:inoremap &lt; &lt;&lt; &lt;{ }&gt;&lt;/esc&gt;&lt;esc&gt;hhi
:inoremap /// /**/&lt;/esc&gt;&lt;esc&gt;hi
&nbsp;
:inoremap ppp &lt; ?php&lt;ENTER&gt;?&gt;&lt;/esc&gt;&lt;esc&gt;O&lt;tab&gt;
:inoremap hhb &lt; !DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;&lt;esc&gt;o&lt;html&gt;&lt;esc&gt;o&lt;head&gt;&lt;esc&gt;o&lt;title&gt;&lt;/title&gt;&lt;/esc&gt;&lt;esc&gt;o&lt;/esc&gt;&lt;/head&gt;&lt;/esc&gt;&lt;esc&gt;o&lt;enter&gt;&lt;body&gt;&lt;enter&gt;&lt;/enter&gt;&lt;enter&gt;&lt;/enter&gt;&lt;/body&gt;&lt;/enter&gt;&lt;enter&gt;&lt;/enter&gt;&lt;/esc&gt;&lt;/html&gt;&lt;/esc&gt;&lt;esc&gt;kkkkkka 
&nbsp;
map $ $a
map @ $;&lt;/esc&gt;&lt;esc&gt;
&lt;/esc&gt;&lt;/tab&gt;&lt;/esc&gt;&lt;/enter&gt;&lt;/esc&gt;</pre></td></tr></table></div>

<p><font color="#ff8040">第一</font>部分含义可以在<a href="http://yaron.org.cn/archives/32">这里查询</a>。</p>
<p><font color="#0000ff">第二</font>部分是括号、引号、面向对象符号、数组符号、smarty模板符号、注释符号补全。在insert模式下连续输入第二列的字符即可。</p>
<p><font color="#800080">第三</font>部分是php和html结构的快速输入方式。</p>
<p><font color="#ff0000">第四</font>部分是编辑常用模式。</p>
<p>直接拷贝就能应用。</p>
]]></content:encoded>
			<wfw:commentRss>http://yaron.org.cn/archives/35/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VIM运用正则表达式进行查找替换</title>
		<link>http://yaron.org.cn/archives/33</link>
		<comments>http://yaron.org.cn/archives/33#comments</comments>
		<pubDate>Mon, 02 Mar 2009 05:11:20 +0000</pubDate>
		<dc:creator>Yaron</dc:creator>
				<category><![CDATA[VIM编辑器]]></category>

		<guid isPermaLink="false">http://yaron.org.cn/archives/33</guid>
		<description><![CDATA[首先，这里给出常用的正则表示的元。
$&#160;&#160;&#160;&#160;&#160;&#160; 匹配一行的结束   ^&#160;&#160;&#160;&#160;&#160;&#160; 匹配一行的开始
 
\&#60;&#160;&#160;&#160;&#160;&#160; 匹配一个单词的开始   \&#62;&#160;&#160;&#160;&#160;&#160; 匹配一个单词的结束    *&#160;&#160;&#160;&#160;&#160;&#160; 匹配0或多次   <a href="http://yaron.org.cn/archives/33" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><strong>首先，这里给出常用的正则表示的元。</strong></p>
<p>$&#160;&#160;&#160;&#160;&#160;&#160; 匹配一行的结束   <br />^&#160;&#160;&#160;&#160;&#160;&#160; 匹配一行的开始</p>
<p> <span id="more-33"></span>
<p>\&lt;&#160;&#160;&#160;&#160;&#160; 匹配一个单词的开始   <br />\&gt;&#160;&#160;&#160;&#160;&#160; 匹配一个单词的结束    <br />*&#160;&#160;&#160;&#160;&#160;&#160; 匹配0或多次    <br />\+&#160;&#160;&#160;&#160;&#160; 匹配1或多次    <br />\=&#160;&#160;&#160;&#160;&#160; 匹配0或1次    <br />\a&#160;&#160;&#160;&#160;&#160; 匹配一个字符    <br />\d&#160;&#160;&#160;&#160;&#160; 匹配任一数字&#160;&#160;&#160;&#160;&#160; <br />\u&#160;&#160;&#160;&#160;&#160; 匹配任一大写字母    <br />[]&#160;&#160;&#160;&#160;&#160; 匹配范围，如t[abcd]s 匹配tas tbs tcs tds    <br />\{}&#160;&#160;&#160;&#160; 重复次数，如a\{3,5} 匹配3~5个a    <br />\( \)&#160;&#160; 定义重复组，如a\(xy\)b 匹配ab axyb axyxyb axyxyxyb &#8230;    <br />\|&#160;&#160;&#160;&#160;&#160; 或，如：for\|bar 表示匹配for或者bar    <br />\%20c&#160;&#160; 匹配第20列    <br />\%20l&#160;&#160; 匹配第20行</p>
<p><strong>其次，应用案例</strong>    <br />&#160;&#160;&#160; 1 在11到20行的行首插入注释符#    <br />&#160;&#160;&#160;&#160;&#160;&#160; ：11，20s/^/#/g    <br />&#160;&#160;&#160; 2 在5~10行的第3列插入字母e    <br />&#160;&#160;&#160;&#160;&#160;&#160; ：5,10s/\%3c/e/g</p>
]]></content:encoded>
			<wfw:commentRss>http://yaron.org.cn/archives/33/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用VI编辑器开发PHP程序&#8212;&#8212;设置</title>
		<link>http://yaron.org.cn/archives/32</link>
		<comments>http://yaron.org.cn/archives/32#comments</comments>
		<pubDate>Mon, 02 Mar 2009 05:08:30 +0000</pubDate>
		<dc:creator>Yaron</dc:creator>
				<category><![CDATA[VIM编辑器]]></category>

		<guid isPermaLink="false">http://yaron.org.cn/archives/32</guid>
		<description><![CDATA[在vi中设置快捷键    
在当前用户目录下创建.vimrc文件，写入我们自定义的快捷键，格式如下：     （1）imap &#60;F12&#62; &#60;?php?&#62; &#60;Esc&#62;1Fpa&#60;Enter&#62;&#60;Enter&#62;&#60;Esc&#62;ki 
 
解释： 
imap （呵呵应该是标识符吧，有谁告诉我一下）   <a href="http://yaron.org.cn/archives/32" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<h5>在vi中设置快捷键    <br /></h5>
<p><strong></strong>在当前用户目录下创建.vimrc文件，写入我们自定义的快捷键，格式如下：     <br />（1）imap &lt;F12&gt; &lt;?php?&gt; &lt;Esc&gt;1Fpa&lt;Enter&gt;&lt;Enter&gt;&lt;Esc&gt;ki </p>
<p> <span id="more-32"></span>
<p>解释： </p>
<p>imap （呵呵应该是标识符吧，有谁告诉我一下）    <br />&lt;F12&gt; 就是自定义的快捷键。     <br />&lt;?php?&gt; 就是我们在插入状态下，点击F12时,往vi里面输入的字符。     <br />&lt;Esc&gt; 表示点击Esc键，确定进入命令模式     <br />1Fp&#160;&#160; 表示从光标处向左移动到第一个p处     <br />a&#160;&#160;&#160;&#160; 插入模式     <br />&lt;Enter&gt;&lt;Enter&gt; 两个回车咯     <br />&lt;Esc&gt;ki 进入命令模式，k表示光标向上移动一行；i表示插入。     </p>
<p>结果就是：    <br />&lt;?php     <br />?&gt; </p>
<p>（2）imap &lt;F1&gt; {} &lt;Esc&gt;1F{a&lt;Enter&gt;&lt;Enter&gt;&lt;Esc&gt;ki&lt;tab&gt;     <br />效果如下：     <br />{     <br />&#160;&#160;&#160; &#8230;     <br />} </p>
<p>（3）imap &lt;F2&gt; {} &lt;Esc&gt;1F{i&lt;tab&gt;&lt;Esc&gt;la&lt;Enter&gt;&lt;Enter&gt;&lt;tab&gt;&lt;Esc&gt;ki&lt;tab&gt;&lt;tab&gt;     <br />效果如下：     <br />&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160; &#8230;     <br />&#160;&#160;&#160; }</p>
<p><font color="#ff0000">2007－05－25 20：10 更改</font></p>
<p>&#160;</p>
<p><strong>附录：     <br /></strong>http://linux.chinaunix.net/bbs/archiver/tid-886047.html    <br />To 14, 我觉得不能在insert mode下使用:set命令。参考楼上几位朋友的提示，我又查了一下vi设置方面的资料。    <br /><strong>1,查看当前vi设置，使用:set all命令，它显示的是当前vi的是设置，下面是我的VI设置：     <br /></strong>noaltwerase&#160;&#160;&#160;&#160; noextended&#160;&#160;&#160;&#160;&#160; mesg&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; report=5&#160;&#160;&#160;&#160;&#160;&#160;&#160; term=&quot;xterm&quot;    <br />noautoindent&#160;&#160;&#160; filec=&quot;&quot;&#160;&#160;&#160;&#160;&#160;&#160;&#160; nomodeline&#160;&#160;&#160;&#160;&#160; noruler&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; noterse    <br />autoprint&#160;&#160;&#160;&#160;&#160;&#160; flash&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; msgcat=&quot;./&quot;&#160;&#160;&#160;&#160; scroll=11&#160;&#160;&#160;&#160;&#160;&#160; notildeop    <br />noautowrite&#160;&#160;&#160;&#160; hardtabs=0&#160;&#160;&#160;&#160;&#160; noprint=&quot;&quot;&#160;&#160;&#160;&#160;&#160; nosearchincr&#160;&#160;&#160; timeout    <br />backup=&quot;&quot;&#160;&#160;&#160;&#160;&#160;&#160; noiclower&#160;&#160;&#160;&#160;&#160;&#160; nonumber&#160;&#160;&#160;&#160;&#160;&#160;&#160; nosecure&#160;&#160;&#160;&#160;&#160;&#160;&#160; nottywerase    <br />nobeautify&#160;&#160;&#160;&#160;&#160; noignorecase&#160;&#160;&#160; nooctal&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; shiftwidth=8&#160;&#160;&#160; noverbose    <br />cdpath=&quot;:&quot;&#160;&#160;&#160;&#160;&#160; keytime=6&#160;&#160;&#160;&#160;&#160;&#160; open&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; noshowmatch&#160;&#160;&#160;&#160; warn    <br />cedit=&quot;&quot;&#160;&#160;&#160;&#160;&#160;&#160;&#160; noleftright&#160;&#160;&#160;&#160; optimize&#160;&#160;&#160;&#160;&#160;&#160;&#160; showmode&#160;&#160;&#160;&#160;&#160;&#160;&#160; window=23    <br />columns=80&#160;&#160;&#160;&#160;&#160; lines=24&#160;&#160;&#160;&#160;&#160;&#160;&#160; path=&quot;&quot;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sidescroll=16&#160;&#160; nowindowname    <br />nocomment&#160;&#160;&#160;&#160;&#160;&#160; nolisp&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; print=&quot;&quot;&#160;&#160;&#160;&#160;&#160;&#160;&#160; noslowopen&#160;&#160;&#160;&#160;&#160; wraplen=0    <br />noedcompatible&#160; nolist&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; prompt&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; nosourceany&#160;&#160;&#160;&#160; wrapmargin=0    <br />escapetime=3&#160;&#160;&#160; lock&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; noreadonly&#160;&#160;&#160;&#160;&#160; tabstop=8&#160;&#160;&#160;&#160;&#160;&#160; wrapscan    <br />noerrorbells&#160;&#160;&#160; magic&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; noredraw&#160;&#160;&#160;&#160;&#160;&#160;&#160; taglength=0&#160;&#160;&#160;&#160; nowriteany    <br />noexrc&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; matchtime=7&#160;&#160;&#160;&#160; remap&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; tags=&quot;tags&quot;    <br />directory=&quot;/tmp&quot;    <br />paragraphs=&quot;IPLPPPQPP LIpplpipbp&quot;    <br />recdir=&quot;/var/tmp/vi.recover&quot;    <br />sections=&quot;NHSHH HUnhsh&quot;    <br />shell=&quot;/bin/bash&quot;    <br />shellmeta=&quot;~{[*?$`'&quot;\&quot;    <br />Press any key to continue [: to enter more ex commands]:    <br />这些参数有两种赋值方法，一是，通过＝赋值，二是布尔赋值。比如：    <br />:set tabstop=8 #设置tab键宽度为8.    <br />:set noshowmode #不显示当前模式    <br />:set showmode #显示当前模式    <br /><strong>2, 在vi启动是进行设置，有两种方法：     <br /></strong>a. 在当前的用户目录，创建.exrc文件，写入我们想要的命令，比如    <br />set showmode    <br />set tabstop=4    <br />b. 设置环境变量EXINIT(可在.bashrc, .profile等文件中配置)，比如    <br />EXINIT=&#8217;set showmode | tapstop=8&#8242;    <br />export EXINIT</p>
<p><strong><font color="#ff0000">2007-04-18 补充：       <br /></font></strong>.vimrc 比 .exrc 的优先级高。在.vimrc中一样可以设置第二部分的内容。</p>
<p><strong><font color="#ff0000">2007.9.16 补充：</font></strong>    <br />源于：http://blog.iyi.cn/hily/archives/2006/04/vi.html    <br /><strong>光标控制命令      <br /></strong>命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 光标移动    <br />h或^h&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 向左移一个字符    <br />j或^j或^n&#160;&#160;&#160;&#160;&#160;&#160;&#160; 向下移一行    <br />k或^p&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 向上移一行    <br />l或空格&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 向右移一个字符    <br />G&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到文件的最后一行    <br />nG&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到文件的第n行    <br />w&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到下一个字的开头    <br />W&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到下一个字的开头，忽略标点符号    <br />b&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到前一个字的开头    <br />B&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到前一个字的开头，忽略标点符号    <br />L&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到屏幕的最后一行    <br />M&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到屏幕的中间一行    <br />H&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到屏幕的第一行    <br />e&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到下一个字的结尾    <br />E&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到下一个字的结尾，忽略标点符号    <br />(&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到句子的开头    <br />)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到句子的结尾    <br />{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到段落的开头    <br />}&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到下一个段落的开头    <br />0或|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到当前行的第一列    <br />n|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到当前行的第n列    <br />^&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到当前行的第一个非空字符    <br />$&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到当前行的最后一个字符    <br />+或return&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到下一行的第一个字符    <br />-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 移到前一行的第一个非空字符    <br /><strong>在vi中添加文本     <br /></strong>命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 插入动作    <br />a&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在光标后插入文本    <br />A&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行插入文本    <br />i&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在光标前插入文本    <br />I&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行前插入文本    <br />o&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行的下边插入新行    <br />O&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行的上边插入新行    <br />:r file&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 读入文件file内容，并插在当前行后    <br />:nr file&#160;&#160;&#160;&#160;&#160;&#160;&#160; 读入文件file内容，并插在第n行后    <br />escape&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 回到命令模式    <br />^v char&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 插入时忽略char的指定意义，这是为了插入特殊字符    <br /><strong>在vi中删除文本     <br /></strong>命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除操作    <br />x&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除光标处的字符，可以在x前加上需要删除的字符数目    <br />nx&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从当前光标处往后删除n个字符    <br />X&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除光标前的字符，可以在X前加上需要删除的字符数目    <br />nX&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从当前光标处往前删除n个字符    <br />dw&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删至下一个字的开头    <br />ndw&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从当前光标处往后删除n个字    <br />dG&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除行，直到文件结束    <br />dd&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除整行    <br />ndd&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从当前行开始往后删除    <br />db&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除光标前面的字    <br />ndb&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从当前行开始往前删除n字    <br />:n,md&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从第m行开始往前删除n行    <br />d或d$&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从光标处删除到行尾    <br />dcursor_command&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除至光标命令处，如dG将从当产胆行删除至文件的末尾    <br />^h或backspace&#160;&#160;&#160;&#160;&#160;&#160;&#160; 插入时，删除前面的字符    <br />^w&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 插入时，删除前面的字    <br /><strong>修改vi文本</strong>    <br />每个命令前面的数字表示该命令重复的次数    <br />命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 替换操作    <br />rchar&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 用char替换当前字符    <br />R text escape&#160;&#160;&#160;&#160;&#160;&#160;&#160; 用text替换当前字符直到换下Esc键    <br />stext escape&#160;&#160;&#160;&#160;&#160;&#160;&#160; 用text代替当前字符    <br />S或cctext escape&#160;&#160;&#160; 用text代替整行    <br />cwtext escape&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前字改为text    <br />Ctext escape&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行余下的改为text    <br />cG escape&#160;&#160;&#160;&#160;&#160;&#160;&#160; 修改至文件的末尾    <br />ccursor_cmd text escape&#160;&#160;&#160; 从当前位置处到光标命令位置处都改为text    <br /><strong>在vi中查找与替换     <br /></strong>命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 查找与替换操作    <br />/text&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在文件中向前查找text    <br />?text&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在文件中向后查找text    <br />n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在同一方向重复查找    <br />N&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在相反方向重复查找    <br />ftext&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行向前查找text    <br />Ftext&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行向后查找text    <br />ttext&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行向前查找text，并将光标定位在text的第一个字符    <br />Ttext&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在当前行向后查找text，并将光标定位在text的第一个字符    <br />:set ic&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 查找时忽略大小写    <br />:set noic&#160;&#160;&#160;&#160;&#160;&#160;&#160; 查找时对大小写敏感    <br />:s/oldtext/newtext&#160;&#160;&#160; 用newtext替换oldtext    <br />:m,ns/oldtext/newtext&#160;&#160;&#160; 在m行通过n，用newtext替换oldtext    <br />&amp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重复最后的:s命令    <br />:g/text1/s/text2/text3&#160;&#160;&#160; 查找包含text1的行，用text3替换text2    <br />:g/text/command&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在所有包含text的行运行command所表示的命令    <br />:v/text/command&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在所有不包含text的行运行command所表示的命令    <br /><strong>在vi中复制文本     <br /></strong>命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 复制操作    <br />yy&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行的内容放入临时缓冲区    <br />nyy&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将n行的内容放入临时缓冲区    <br />p&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将临时缓冲区中的文本放入光标后    <br />P&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将临时缓冲区中的文本放入光标前    <br />&quot;(a-z)nyy&#160;&#160;&#160;&#160;&#160;&#160;&#160; 复制n行放入名字为圆括号内的可命名缓冲区，省略n表示当前行    <br />&quot;(a-z)ndd&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除n行放入名字为圆括号内的可命名缓冲区，省略n表示当前行    <br />&quot;(a-z)p&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将名字为圆括号的可命名缓冲区的内容放入当前行后    <br />&quot;(a-z)P&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将名字为圆括号的可命名缓冲区的内容放入当前行前    <br /><strong>在vi中撤消与重复     <br /></strong>命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 撤消操作    <br />u&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 撤消最后一次修改    <br />U&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 撤消当前行的所有修改    <br />.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重复最后一次修改    <br />,&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 以相反的方向重复前面的f、F、t或T查找命令    <br />;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重复前面的f、F、t或T查找命令    <br />&quot;np&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 取回最后第n次的删除(缓冲区中存有一定次数的删除内容，一般为9)    <br />n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重复前面的/或?查找命令    <br />N&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 以相反方向重复前面的/或?命令    <br /><strong>保存文本和退出vi</strong>    <br />命令&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 保存和/或退出操作    <br />:w&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 保存文件但不退出vi    <br />:w file&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将修改保存在file中但不退出vi    <br />:wq或ZZ或:x&#160;&#160;&#160;&#160;&#160;&#160;&#160; 保存文件并退出vi    <br />:q!&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 不保存文件，退出vi    <br />:e!&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 放弃所有修改，从上次保存文件开始再编辑    <br /><strong>vi中的选项     <br /></strong>选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />:set all&#160;&#160;&#160;&#160;&#160;&#160;&#160; 打印所有选项    <br />:set nooption&#160;&#160;&#160;&#160;&#160;&#160;&#160; 关闭option选项    <br />:set nu&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 每行前打印行号    <br />:set showmode&#160;&#160;&#160;&#160;&#160;&#160;&#160; 显示是输入模式还是替换模式    <br />:set noic&#160;&#160;&#160;&#160;&#160;&#160;&#160; 查找时忽略大小写    <br />:set list&#160;&#160;&#160;&#160;&#160;&#160;&#160; 显示制表符(^I)和行尾符号    <br />:set ts=8&#160;&#160;&#160;&#160;&#160;&#160;&#160; 为文本输入设置tab stops    <br />:set window=n&#160;&#160;&#160;&#160;&#160;&#160;&#160; 设置文本窗口显示n行    <br /><strong>vi的状态</strong>    <br />选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />:.=&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 打印当前行的行号    <br />:=&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 打印文件中的行数    <br />^g&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 显示文件名、当前的行号、文件的总行数和文件位置的百分比    <br />:l&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 使用字母&quot;l&quot;来显示许多的特殊字符，如制表符和换行符    <br /><strong>在文本中定位段落和放置标记     <br /></strong>选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在第一列插入{来定义一个段落    <br />[[&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 回到段落的开头处    <br />]]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 向前移到下一个段落的开头处    <br />m(a-z)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 用一个字母来标记当前位置，如用mz表示标记z    <br />&#8216;(a-z)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将光标移动到指定的标记，如用&#8217;z表示移动到z    <br /><strong>在vi中连接行     <br /></strong>选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br /><font color="#800000"></font><font color="#ff0000">J&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将下一行连接到当前行的末尾       <br />nJ&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 连接后面n行</font>      <br /><strong>光标放置与屏幕调整</strong>    <br />选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />H&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将光标移动到屏幕的顶行    <br />nH&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将光标移动到屏幕顶行下的第n行    <br />M&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将光标移动到屏幕的中间    <br />L&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将光标移动到屏幕的底行    <br />nL&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将光标移动到屏幕底行上的第n行    <br />^e(ctrl+e)&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将屏幕上滚一行    <br />^y&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将屏幕下滚一行    <br />^u&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将屏幕上滚半页    <br />^d&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将屏幕下滚半页    <br />^b&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将屏幕上滚一页    <br />^f&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将屏幕下滚一页    <br />^l&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 重绘屏幕    <br />z-return&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行置为屏幕的顶行    <br />nz-return&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行下的第n行置为屏幕的顶行    <br />z.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行置为屏幕的中央    <br />nz.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行上的第n行置为屏幕的中央    <br />z-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行置为屏幕的底行    <br />nz-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前行上的第n行置为屏幕的底行    <br /><strong>vi中的shell转义命令     <br /></strong>选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />:!command&#160;&#160;&#160;&#160;&#160;&#160;&#160; 执行shell的command命令，如:!ls    <br />:!!&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 执行前一个shell命令    <br />:r!command&#160;&#160;&#160;&#160;&#160;&#160;&#160; 读取command命令的输入并插入，如:r!ls会先执行ls，然后读入内容    <br />:w!command&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前已编辑文件作为command命令的标准输入并执行command命令，如:w!grep all    <br />:cd directory&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将当前工作目录更改为directory所表示的目录    <br />:sh&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将启动一个子shell，使用^d(ctrl+d)返回vi    <br />:so file&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在shell程序file中读入和执行命令    <br /><strong>vi中的宏与缩写     <br /></strong>(避免使用控制键和符号，不要使用字符K、V、g、q、v、*、=和功能键)    <br />选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />:map key command_seq&#160;&#160;&#160; 定义一个键来运行command_seq，如:map e ea，无论什么时候都可以e移到一个字的末尾来追加文本    <br />:map&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在状态行显示所有已定义的宏    <br />:umap key&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除该键的宏    <br />:ab string1 string2&#160;&#160;&#160; 定义一个缩写，使得当插入string1时，用string2替换string1。当要插入文本时，键入string1然后按Esc键，系统就插入了string2    <br />:ab&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 显示所有缩写    <br />:una string&#160;&#160;&#160;&#160;&#160;&#160;&#160; 取消string的缩写    <br /><strong>在vi中缩进文本     <br /></strong>选项&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 作用    <br />^i(ctrl+i)或tab&#160;&#160;&#160;&#160;&#160;&#160;&#160; 插入文本时，插入移动的宽度，移动宽度是事先定义好的    <br />:set ai&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 打开自动缩进    <br />:set sw=n&#160;&#160;&#160;&#160;&#160;&#160;&#160; 将移动宽度设置为n个字符    <br />n&lt;&lt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 使n行都向左移动一个宽度    <br />n&gt;&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 使n行都向右移动一个宽度，例如3&gt;&gt;就将接下来的三行每行都向右移动一个移动宽度</p>
]]></content:encoded>
			<wfw:commentRss>http://yaron.org.cn/archives/32/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
