<?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>编辑器 &#8211; LPC影子技术分享</title>
	<atom:link href="https://www.mudbest.com/tag/%E7%BC%96%E8%BE%91%E5%99%A8/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mudbest.com</link>
	<description>行影不离,忘之却步.</description>
	<lastBuildDate>Sat, 20 Oct 2012 15:42:59 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>
	<item>
		<title>Vi常用命令</title>
		<link>https://www.mudbest.com/vi%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/</link>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Fri, 19 Oct 2012 20:12:02 +0000</pubDate>
				<category><![CDATA[分享]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[命令]]></category>
		<category><![CDATA[编辑器]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=1592</guid>

					<description><![CDATA[VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了，但是它的命令集太多，所以要想精通他，也是一 ... <a title="Vi常用命令" class="read-more" href="https://www.mudbest.com/vi%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4/" aria-label="阅读 Vi常用命令">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong>VI命令</strong></span>可以说是Unix/Linux世界里最常用的编辑文件的命令了，但是它的命令集太多，所以要想精通他，也是一件很不容易的事情，下面就介绍一些常见的命令：</p>
<p>另外，ubuntu下使用默认自带vi 进行编辑文件时，按上下左右键时，会输入A、B、C、D，这个用起来很不方便。网上查得此问题的原因是：ubuntu系统自带的 vi 不完整导致，</p>
<p>解决方法：安装完整的vi。<br />
<span id="more-1592"></span></p>
<pre class="brush: plain; title: ; notranslate">
$ sudo apt-get install vim-gtk
</pre>
<pre>
<table style="width: 631px; height: 658px;" border="1" cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td>命令</td>
<td>描述</td>
</tr>
<tr>
<td>nG</td>
<td>跳转到第n行。n为行数，该命令立即使光标跳到指定行</td>
</tr>
<tr>
<td>G</td>
<td>跳转到文件最后一行</td>
</tr>
<tr>
<td>gg</td>
<td>跳转到文件第一行</td>
</tr>
<tr>
<td>Ctrl+G</td>
<td>光标所在位置的行数和列数报告</td>
</tr>
<tr>
<td>:set nu</td>
<td>编辑器中显示行号</td>
</tr>
<tr>
<td>Ctrl-f</td>
<td>向前翻页</td>
</tr>
<tr>
<td>Ctrl-b</td>
<td>向后翻页</td>
</tr>
<tr>
<td>n+</td>
<td>光标下移n行</td>
</tr>
<tr>
<td>n-</td>
<td>光标上移n行</td>
</tr>
<tr>
<td>0</td>
<td>光标移至当前行首，注意是数字零</td>
</tr>
<tr>
<td>$</td>
<td>光标移至当前行尾</td>
</tr>
<tr>
<td>dd</td>
<td>删除一行，后行自动上移</td>
</tr>
<tr>
<td>D</td>
<td>删除从光标至行尾的字符</td>
</tr>
<tr>
<td>d0</td>
<td>删除光标至行首间的字符，注意是数字0</td>
</tr>
<tr>
<td>d$</td>
<td>删除光标至行尾间的字符</td>
</tr>
<tr>
<td>u</td>
<td>撤销上一次操作，类似于Ctrl+Z</td>
</tr>
<tr>
<td>/pattern</td>
<td>从光标开始处向文件尾搜索pattern</td>
</tr>
<tr>
<td>?pattern</td>
<td>从光标开始处向文件首搜索pattern</td>
</tr>
<tr>
<td>n</td>
<td>在同一方向重复上一次搜索命令</td>
</tr>
<tr>
<td>N</td>
<td>在反方向上重复上一次搜索命令</td>
</tr>
<tr>
<td>:s/p1/p2/g</td>
<td>将当前行中所有p1均用p2替代；其中s代表substitute、g代表global</td>
</tr>
<tr>
<td>:n1,n2s/p1/p2/g</td>
<td>将第n1至n2行中所有p1均用p2替代</td>
</tr>
<tr>
<td>:g/p1/s//p2/g</td>
<td>将文件中所有p1均用p2替换</td>
</tr>
<tr>
<td>:n</td>
<td>跳转到第n行</td>
</tr>
<tr>
<td>i/r</td>
<td>变成插入/替换模式</td>
</tr>
<tr>
<td>q/q!</td>
<td>退出/强制不保存退出</td>
</tr>
<tr>
<td>:w /tmp/tmpfile</td>
<td>将文件保存到制定文件，这在遇到文件是只读时特别有用</td>
</tr>
<tr>
<td>: x/:wq/zz </td>
<td>保存并退出</td>
</tr>
</tbody>
</table>
</pre>
<p>&nbsp;</p>
<p><strong>进入vi的命令</strong><br />
vi filename :打开或新建文件，并将光标置于第一行首<br />
vi +n filename ：打开文件，并将光标置于第n行首<br />
vi + filename ：打开文件，并将光标置于最后一行首<br />
vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处<br />
vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename<br />
vi filename&#8230;.filename ：打开多个文件，依次进行编辑</p>
<p><strong>移动光标类命令</strong><br />
h ：光标左移一个字符<br />
l ：光标右移一个字符<br />
space：光标右移一个字符<br />
Backspace：光标左移一个字符<br />
k或Ctrl+p：光标上移一行<br />
j或Ctrl+n ：光标下移一行<br />
Enter ：光标下移一行<br />
w或W ：光标右移一个字至字首<br />
b或B ：光标左移一个字至字首<br />
e或E ：光标右移一个字至字尾<br />
) ：光标移至句尾<br />
( ：光标移至句首<br />
}：光标移至段落开头<br />
{：光标移至段落结尾<br />
nG：光标移至第n行首<br />
n+：光标下移n行<br />
n-：光标上移n行<br />
n$：光标移至第n行尾<br />
H ：光标移至屏幕顶行<br />
M ：光标移至屏幕中间行<br />
L ：光标移至屏幕最后行<br />
0：（注意是数字零）光标移至当前行首<br />
$：光标移至当前行尾</p>
<p><strong>屏幕翻滚类命令</strong><br />
Ctrl+u：向文件首翻半屏<br />
Ctrl+d：向文件尾翻半屏<br />
Ctrl+f：向文件尾翻一屏<br />
Ctrl＋b；向文件首翻一屏<br />
nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。</p>
<p><strong>插入文本类命令</strong><br />
i ：在光标前<br />
I ：在当前行首<br />
a：光标后<br />
A：在当前行尾<br />
o：在当前行之下新开一行<br />
O：在当前行之上新开一行<br />
r：替换当前字符<br />
R：替换当前字符及其后的字符，直至按ESC键<br />
s：从当前光标位置处开始，以输入的文本替代指定数目的字符<br />
S：删除指定数目的行，并以所输入文本代替之<br />
ncw或nCW：修改指定数目的字<br />
nCC：修改指定数目的行</p>
<p><strong>删除命令</strong><br />
ndw或ndW：删除光标处开始及其后的n-1个字<br />
do：删至行首<br />
d$：删至行尾<br />
ndd：删除当前行及其后n-1行<br />
x或X：删除一个字符，x删除光标后的，而X删除光标前的<br />
Ctrl+u：删除输入方式下所输入的文本</p>
<p><strong>搜索及替换命令</strong><br />
/pattern：从光标开始处向文件尾搜索pattern<br />
?pattern：从光标开始处向文件首搜索pattern<br />
n：在同一方向重复上一次搜索命令<br />
N：在反方向上重复上一次搜索命令<br />
：s/p1/p2/g：将当前行中所有p1均用p2替代<br />
：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代<br />
：g/p1/s//p2/g：将文件中所有p1均用p2替换</p>
<p><strong>选项设置</strong><br />
all：列出所有选项设置情况<br />
term：设置终端类型<br />
ignorance：在搜索中忽略大小写<br />
list：显示制表位(Ctrl+I)和行尾标志（$)<br />
number：显示行号<br />
report：显示由面向行的命令修改过的数目<br />
terse：显示简短的警告信息<br />
warn：在转到别的文件时若没保存当前文件则显示NO write信息<br />
nomagic：允许在搜索模式中，使用前面不带“\”的特殊字符<br />
nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始<br />
mesg：允许vi显示其他用户用write写到自己终端上的信息</p>
<p><strong>最后行方式命令</strong><br />
：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下<br />
：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下<br />
：n1,n2 d ：将n1行到n2行之间的内容删除<br />
：w ：保存当前文件<br />
：e filename：打开文件filename进行编辑<br />
：x：保存当前文件并退出<br />
：q：退出vi<br />
：q!：不保存文件并退出vi<br />
：!command：执行shell命令command<br />
：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指定n1，n2，则表示将整个文件内容作为command的输入<br />
：r!command：将命令command的输出结果放到当前行</p>
<p><strong>寄存器操作</strong><br />
&#8220;?nyy：将当前行及其下n行的内容保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?nyw：将当前行及其下n个字保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?nyl：将当前行及其下n个字符保存到寄存器？中，其中?为一个字母，n为一个数字<br />
&#8220;?p：取出寄存器？中的内容并将其放到光标位置处。这里？可以是一个字母，也可以是一个数字<br />
ndd：将当前行及其下共n行文本删除，并将所删内容放到1号删除寄存器中。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
