Ubuntu vi编辑器的命令
<p><strong>笔者:</strong></p><p><strong>其实我发现最好用的还是在命令模式下的dd,一直删,删的超爽,后面的话其实用的稍微比较少一点。不过,对于经常使用linux</strong></p>
<p><strong>的人来说真的挺有用的。</strong></p>
<p><strong>以下内容大多为复制内容,抄谁的我忘了,对大佬们说声抱歉,同时也还是很感谢大佬。</strong></p>
<h2><strong>Ubuntu<span style="font-family: 黑体">安装</span></strong></h2>
<h2><strong>https://blog.csdn.net/stpeace/article/details/78598333</strong></h2>
<h2><strong>命令大全</strong></h2>
<p><span style="text-decoration: underline">https://www.cnblogs.com/jameslif/p/7751567.html</span></p>
<p><span style="font-family: 宋体">进入</span>vi<span style="font-family: 宋体">的命令 </span></p>
<p>vi filename :<span style="font-family: 宋体">打开或新建文件,并将光标置于第一行首 </span></p>
<p>vi +n filename <span style="font-family: 宋体">:打开文件,并将光标置于第</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行首 </span></p>
<p>vi + filename <span style="font-family: 宋体">:打开文件,并将光标置于最后一行首 </span></p>
<p>vi +/pattern filename<span style="font-family: 宋体">:打开文件,并将光标置于第一个与</span><span style="font-family: Calibri">pattern</span><span style="font-family: 宋体">匹配的串处 </span></p>
<p>vi -r filename <span style="font-family: 宋体">:在上次正用</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">编辑时发生系统崩溃,恢复</span><span style="font-family: Calibri">filename </span></p>
<p>vi filename....filename <span style="font-family: 宋体">:打开多个文件,依次进行编辑 </span></p>
<p> </p>
<p>移动光标类命令</p>
<p>h <span style="font-family: 宋体">:光标左移一个字符 </span></p>
<p>l <span style="font-family: 宋体">:光标右移一个字符 </span></p>
<p>space<span style="font-family: 宋体">:光标右移一个字符 </span></p>
<p>Backspace<span style="font-family: 宋体">:光标左移一个字符 </span></p>
<p>k<span style="font-family: 宋体">或</span><span style="font-family: Calibri">Ctrl+p</span><span style="font-family: 宋体">:光标上移一行 </span></p>
<p>j<span style="font-family: 宋体">或</span><span style="font-family: Calibri">Ctrl+n </span><span style="font-family: 宋体">:光标下移一行 </span></p>
<p>Enter <span style="font-family: 宋体">:光标下移一行 </span></p>
<p>w<span style="font-family: 宋体">或</span><span style="font-family: Calibri">W </span><span style="font-family: 宋体">:光标右移一个字至字首 </span></p>
<p>b<span style="font-family: 宋体">或</span><span style="font-family: Calibri">B </span><span style="font-family: 宋体">:光标左移一个字至字首 </span></p>
<p>e<span style="font-family: 宋体">或</span><span style="font-family: Calibri">E </span><span style="font-family: 宋体">:光标右移一个字至字尾 </span></p>
<p>) <span style="font-family: 宋体">:光标移至句尾 </span></p>
<p>( <span style="font-family: 宋体">:光标移至句首 </span></p>
<p>}<span style="font-family: 宋体">:光标移至段落开头 </span></p>
<p>{<span style="font-family: 宋体">:光标移至段落结尾 </span></p>
<p>nG<span style="font-family: 宋体">:光标移至第</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行首 </span></p>
<p>n+<span style="font-family: 宋体">:光标下移</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行 </span></p>
<p>n-<span style="font-family: 宋体">:光标上移</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行 </span></p>
<p>n$<span style="font-family: 宋体">:光标移至第</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行尾 </span></p>
<p>H <span style="font-family: 宋体">:光标移至屏幕顶行 </span></p>
<p>M <span style="font-family: 宋体">:光标移至屏幕中间行 </span></p>
<p>L <span style="font-family: 宋体">:光标移至屏幕最后行 </span></p>
<p>0<span style="font-family: 宋体">:(注意是数字零)光标移至当前行首 </span></p>
<p>$<span style="font-family: 宋体">:光标移至当前行尾 </span></p>
<p> </p>
<p><span style="font-family: 宋体">屏幕翻滚类命令</span></p>
<p>Ctrl+u<span style="font-family: 宋体">:向文件首翻半屏 </span></p>
<p>Ctrl+d<span style="font-family: 宋体">:向文件尾翻半屏 </span></p>
<p>Ctrl+f<span style="font-family: 宋体">:向文件尾翻一屏 </span></p>
<p>Ctrl<span style="font-family: 宋体">+</span><span style="font-family: Calibri">b</span><span style="font-family: 宋体">;向文件首翻一屏 </span></p>
<p>nz<span style="font-family: 宋体">:将第</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行滚至屏幕顶部,不指定</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">时将当前行滚至屏幕顶部。 </span></p>
<p> </p>
<p><span style="font-family: 宋体">插入文本类命令</span></p>
<p>i <span style="font-family: 宋体">:在光标前 </span></p>
<p>I <span style="font-family: 宋体">:在当前行首 </span></p>
<p>a<span style="font-family: 宋体">:光标后 </span></p>
<p>A<span style="font-family: 宋体">:在当前行尾 </span></p>
<p>o<span style="font-family: 宋体">:在当前行之下新开一行 </span></p>
<p>O<span style="font-family: 宋体">:在当前行之上新开一行 </span></p>
<p>r<span style="font-family: 宋体">:替换当前字符 </span></p>
<p>R<span style="font-family: 宋体">:替换当前字符及其后的字符,直至按</span><span style="font-family: Calibri">ESC</span><span style="font-family: 宋体">键 </span></p>
<p>s<span style="font-family: 宋体">:从当前光标位置处开始,以输入的文本替代指定数目的字符 </span></p>
<p>S<span style="font-family: 宋体">:删除指定数目的行,并以所输入文本代替之 </span></p>
<p>ncw<span style="font-family: 宋体">或</span><span style="font-family: Calibri">nCW</span><span style="font-family: 宋体">:修改指定数目的字 </span></p>
<p>nCC<span style="font-family: 宋体">:修改指定数目的行 </span></p>
<p> </p>
<p><span style="font-family: 宋体">删除命令</span></p>
<p>ndw<span style="font-family: 宋体">或</span><span style="font-family: Calibri">ndW</span><span style="font-family: 宋体">:删除光标处开始及其后的</span><span style="font-family: Calibri">n-1</span><span style="font-family: 宋体">个字 </span></p>
<p>do<span style="font-family: 宋体">:删至行首 </span></p>
<p>d$<span style="font-family: 宋体">:删至行尾 </span></p>
<p>ndd<span style="font-family: 宋体">:删除当前行及其后</span><span style="font-family: Calibri">n-1</span><span style="font-family: 宋体">行 </span></p>
<p>x<span style="font-family: 宋体">或</span><span style="font-family: Calibri">X</span><span style="font-family: 宋体">:删除一个字符,</span><span style="font-family: Calibri">x</span><span style="font-family: 宋体">删除光标后的,而</span><span style="font-family: Calibri">X</span><span style="font-family: 宋体">删除光标前的 </span></p>
<p>Ctrl+u<span style="font-family: 宋体">:删除输入方式下所输入的文本 </span></p>
<p> </p>
<p><span style="font-family: 宋体">搜索及替换命令</span></p>
<p>/pattern<span style="font-family: 宋体">:从光标开始处向文件尾搜索</span><span style="font-family: Calibri">pattern </span></p>
<p>?pattern<span style="font-family: 宋体">:从光标开始处向文件首搜索</span><span style="font-family: Calibri">pattern </span></p>
<p>n<span style="font-family: 宋体">:在同一方向重复上一次搜索命令 </span></p>
<p>N<span style="font-family: 宋体">:在反方向上重复上一次搜索命令 </span></p>
<p><span style="font-family: 宋体">:</span>s/p1/p2/g<span style="font-family: 宋体">:将当前行中所有</span><span style="font-family: Calibri">p1</span><span style="font-family: 宋体">均用</span><span style="font-family: Calibri">p2</span><span style="font-family: 宋体">替代 </span></p>
<p><span style="font-family: 宋体">:</span>n1,n2s/p1/p2/g<span style="font-family: 宋体">:将第</span><span style="font-family: Calibri">n1</span><span style="font-family: 宋体">至</span><span style="font-family: Calibri">n2</span><span style="font-family: 宋体">行中所有</span><span style="font-family: Calibri">p1</span><span style="font-family: 宋体">均用</span><span style="font-family: Calibri">p2</span><span style="font-family: 宋体">替代 </span></p>
<p><span style="font-family: 宋体">:</span>g/p1/s//p2/g<span style="font-family: 宋体">:将文件中所有</span><span style="font-family: Calibri">p1</span><span style="font-family: 宋体">均用</span><span style="font-family: Calibri">p2</span><span style="font-family: 宋体">替换 </span></p>
<p> </p>
<p><span style="font-family: 宋体">选项设置</span></p>
<p>all<span style="font-family: 宋体">:列出所有选项设置情况 </span></p>
<p>term<span style="font-family: 宋体">:设置终端类型 </span></p>
<p>ignorance<span style="font-family: 宋体">:在搜索中忽略大小写 </span></p>
<p>list<span style="font-family: 宋体">:显示制表位</span><span style="font-family: Calibri">(Ctrl+I)</span><span style="font-family: 宋体">和行尾标志(</span><span style="font-family: Calibri">$) </span></p>
<p>number<span style="font-family: 宋体">:显示行号 </span></p>
<p>report<span style="font-family: 宋体">:显示由面向行的命令修改过的数目 </span></p>
<p>terse<span style="font-family: 宋体">:显示简短的警告信息 </span></p>
<p>warn<span style="font-family: 宋体">:在转到别的文件时若没保存当前文件则显示</span><span style="font-family: Calibri">NO write</span><span style="font-family: 宋体">信息 </span></p>
<p>nomagic<span style="font-family: 宋体">:允许在搜索模式中,使用前面不带“</span><span style="font-family: Calibri">\</span><span style="font-family: 宋体">”的特殊字符 </span></p>
<p>nowrapscan<span style="font-family: 宋体">:禁止</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">在搜索到达文件两端时,又从另一端开始 </span></p>
<p>mesg<span style="font-family: 宋体">:允许</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">显示其他用户用</span><span style="font-family: Calibri">write</span><span style="font-family: 宋体">写到自己终端上的信息 </span></p>
<p> </p>
<p><span style="font-family: 宋体">最后行方式命令</span></p>
<p><span style="font-family: 宋体">:</span>n1,n2 co n3<span style="font-family: 宋体">:将</span><span style="font-family: Calibri">n1</span><span style="font-family: 宋体">行到</span><span style="font-family: Calibri">n2</span><span style="font-family: 宋体">行之间的内容拷贝到第</span><span style="font-family: Calibri">n3</span><span style="font-family: 宋体">行下 </span></p>
<p><span style="font-family: 宋体">:</span>n1,n2 m n3<span style="font-family: 宋体">:将</span><span style="font-family: Calibri">n1</span><span style="font-family: 宋体">行到</span><span style="font-family: Calibri">n2</span><span style="font-family: 宋体">行之间的内容移至到第</span><span style="font-family: Calibri">n3</span><span style="font-family: 宋体">行下 </span></p>
<p><span style="font-family: 宋体">:</span>n1,n2 d <span style="font-family: 宋体">:将</span><span style="font-family: Calibri">n1</span><span style="font-family: 宋体">行到</span><span style="font-family: Calibri">n2</span><span style="font-family: 宋体">行之间的内容删除 </span></p>
<p><span style="font-family: 宋体">:</span>w <span style="font-family: 宋体">:保存当前文件 </span></p>
<p><span style="font-family: 宋体">:</span>e filename<span style="font-family: 宋体">:打开文件</span><span style="font-family: Calibri">filename</span><span style="font-family: 宋体">进行编辑 </span></p>
<p><span style="font-family: 宋体">:</span>x<span style="font-family: 宋体">:保存当前文件并退出 </span></p>
<p><span style="font-family: 宋体">:</span>q<span style="font-family: 宋体">:退出</span><span style="font-family: Calibri">vi </span></p>
<p><span style="font-family: 宋体">:</span>q!<span style="font-family: 宋体">:不保存文件并退出</span><span style="font-family: Calibri">vi </span></p>
<p><span style="font-family: 宋体">:</span>!command<span style="font-family: 宋体">:执行</span><span style="font-family: Calibri">shell</span><span style="font-family: 宋体">命令</span><span style="font-family: Calibri">command </span></p>
<p><span style="font-family: 宋体">:</span>n1,n2 w!command<span style="font-family: 宋体">:将文件中</span><span style="font-family: Calibri">n1</span><span style="font-family: 宋体">行至</span><span style="font-family: Calibri">n2</span><span style="font-family: 宋体">行的内容作为</span><span style="font-family: Calibri">command</span><span style="font-family: 宋体">的输入并执行之,若不指定</span><span style="font-family: Calibri">n1</span><span style="font-family: 宋体">,</span><span style="font-family: Calibri">n2</span><span style="font-family: 宋体">,则表示将整个文件内容作为</span><span style="font-family: Calibri">command</span><span style="font-family: 宋体">的输入 </span></p>
<p><span style="font-family: 宋体">:</span>r!command<span style="font-family: 宋体">:将命令</span><span style="font-family: Calibri">command</span><span style="font-family: 宋体">的输出结果放到当前行 </span></p>
<p> </p>
<p><span style="font-family: 宋体">寄存器操作</span></p>
<p>"?nyy<span style="font-family: 宋体">:将当前行及其下</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行的内容保存到寄存器?中,其中</span><span style="font-family: Calibri">?</span><span style="font-family: 宋体">为一个字母,</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">为一个数字 </span></p>
<p>"?nyw<span style="font-family: 宋体">:将当前行及其下</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">个字保存到寄存器?中,其中</span><span style="font-family: Calibri">?</span><span style="font-family: 宋体">为一个字母,</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">为一个数字 </span></p>
<p>"?nyl<span style="font-family: 宋体">:将当前行及其下</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">个字符保存到寄存器?中,其中</span><span style="font-family: Calibri">?</span><span style="font-family: 宋体">为一个字母,</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">为一个数字 </span></p>
<p>"?p<span style="font-family: 宋体">:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 </span></p>
<p>ndd<span style="font-family: 宋体">:将当前行及其下共</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行文本删除,并将所删内容放到</span><span style="font-family: Calibri">1</span><span style="font-family: 宋体">号删除寄存器中。</span></p>
<p> </p>
<p>VI<span style="font-family: 宋体">的使用</span></p>
<p>--------------------------------------------------------------------------------</p>
<p> </p>
<p><span style="font-family: 宋体">一、插入文本</span></p>
<p>┌──┬────────────┐</p>
<p>│命令│描述 │</p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">i </span><span style="font-family: 宋体"> │在当前字符前插入文本 │ </span></p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">I </span><span style="font-family: 宋体"> │在行首插入文本 │ </span></p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">a </span><span style="font-family: 宋体"> │在当前字符后添加文本 │ </span></p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">A </span><span style="font-family: 宋体"> │在行末添加文本 │ </span></p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">o </span><span style="font-family: 宋体"> │在当前行后面插入一空行 │ </span></p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">O </span><span style="font-family: 宋体"> │在当前行前面插入一空行 │ </span></p>
<p>├──┼────────────┤</p>
<p>│<span style="font-family: Calibri">R </span><span style="font-family: 宋体"> │以改写方式输入文本 │ </span></p>
<p>└──┴────────────┘</p>
<p><span style="font-family: 宋体">二、移动光标</span></p>
<p>┌─────┬───────────┐</p>
<p>│命令 │描述 │</p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">j</span><span style="font-family: 宋体">或下箭头 │向下移动一行 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">k</span><span style="font-family: 宋体">或上箭头 │向上移动一行 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">h</span><span style="font-family: 宋体">或左箭头 │左移一个字符 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">l</span><span style="font-family: 宋体">或右箭头 │右移一个字符 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">w </span><span style="font-family: 宋体"> │右移一个词 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">W </span><span style="font-family: 宋体"> │右移一个以空格分隔的词│ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">b </span><span style="font-family: 宋体"> │左移一个词 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">B </span><span style="font-family: 宋体"> │左移一个以空格分隔的词│ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">0 </span><span style="font-family: 宋体"> │移到行首 │ </span></p>
<p>│<span style="font-family: Calibri">Ctrl-F</span><span style="font-family: 宋体"> │向前翻页 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">Ctrl-B</span><span style="font-family: 宋体"> │向后翻页 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">nG</span><span style="font-family: 宋体"> │到第</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">行 │ </span></p>
<p>├─────┼───────────┤</p>
<p>│<span style="font-family: Calibri">G </span><span style="font-family: 宋体"> │到最后一行 │ </span></p>
<p>└─────┴───────────┘</p>
<p><span style="font-family: 宋体">三、替换文本</span></p>
<p>┌─────┬──────┐</p>
<p>│命令 │描述 │</p>
<p>├─────┼──────┤</p>
<p>│<span style="font-family: Calibri">$ </span><span style="font-family: 宋体"> │到行尾 │ </span></p>
<p>├─────┼──────┤</p>
<p>│<span style="font-family: Calibri">( </span><span style="font-family: 宋体"> │到句子的开头│ </span></p>
<p>├─────┼──────┤</p>
<p>│<span style="font-family: Calibri">) </span><span style="font-family: 宋体"> │到句子的末尾│ </span></p>
<p>├─────┼──────┤</p>
<p>│<span style="font-family: Calibri">{</span><span style="font-family: 宋体"> │到段落的开头│ </span></p>
<p>├─────┼──────┤</p>
<p>│<span style="font-family: Calibri">}</span><span style="font-family: 宋体"> │到段落的末尾│ </span></p>
<p>└─────┴──────┘</p>
<p> </p>
<p><span style="font-family: 宋体">四、删除文本</span></p>
<p>┌───┬───────────┐</p>
<p>│命令 │描述 │</p>
<p>├───┼───────────┤</p>
<p>│<span style="font-family: Calibri">r </span><span style="font-family: 宋体"> │替换一个字符 │ </span></p>
<p>├───┼───────────┤</p>
<p>│<span style="font-family: Calibri">c </span><span style="font-family: 宋体"> │修改文本直到按下</span><span style="font-family: Calibri">Esc</span><span style="font-family: 宋体">健 │ </span></p>
<p>├───┼───────────┤</p>
<p>│<span style="font-family: Calibri">cw</span><span style="font-family: 宋体"> │修改下一个词 │ </span></p>
<p>├───┼───────────┤</p>
<p>│<span style="font-family: Calibri">cnw</span><span style="font-family: 宋体"> │修改接下来的</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">个词 │ </span></p>
<p>└───┴───────────┘</p>
<p><span style="font-family: 宋体">五、文本编辑</span></p>
<p>┌──┬──────────────────────┐</p>
<p>│命寺│描述 │</p>
<p>├──┼──────────────────────┤</p>
<p>│<span style="font-family: Calibri">yy</span><span style="font-family: 宋体"> │将一行文本移到缺省缓冲区中 │ </span></p>
<p>├──┼──────────────────────┤</p>
<p>│<span style="font-family: Calibri">yn</span><span style="font-family: 宋体"> │将下一个词移到缺省缓冲区中 │ </span></p>
<p>├──┼──────────────────────┤</p>
<p>│<span style="font-family: Calibri">ynw </span><span style="font-family: 宋体">│将后面的</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">个词移到缺省缓冲区中 │ </span></p>
<p>├──┼──────────────────────┤</p>
<p>│<span style="font-family: Calibri">p </span><span style="font-family: 宋体"> │如果缺省缓冲区中包含一行文本,则在当前 │ </span></p>
<p>│ │行后面插入一个空行井将缺省缓冲区中的声 │</p>
<p>│ │容粘贴到这一行中;如果缺省缓冲区中包含 │</p>
<p>│ │多个词,把这些词粘贴到光标的右边. │</p>
<p>├──┼──────────────────────┤</p>
<p>│<span style="font-family: Calibri">P </span><span style="font-family: 宋体"> │如果缺省缓冲区中包含一行文本,则正当前 │ </span></p>
<p>│ │行前面插入一个空行井将缺省缓冲区中的内 │</p>
<p>│ │容粘贴到这一行中;如果缺省缓冲区中包含 │</p>
<p>│ │多个词,把这些词粘贴到光标的左边 </p>
<p> </p>
<p><span style="font-family: 宋体"> </span>│</p>
<p>└──┴──────────────────────┘</p>
<p><span style="font-family: 宋体">六、保存退出</span></p>
<p>┌───────────┬───────────────┐</p>
<p>│命令 │描述 │</p>
<p>├───────────┼───────────────┤</p>
<p>│<span style="font-family: Calibri">zz</span><span style="font-family: 宋体"> │保存并退出 │ </span></p>
<p>├───────────┼───────────────┤</p>
<p>│<span style="font-family: Calibri">:w filename</span><span style="font-family: 宋体"> │写入文件 │ </span></p>
<p>├───────────┼───────────────┤</p>
<p>│<span style="font-family: Calibri">:W</span><span style="font-family: 宋体"> │写入文件 │ </span></p>
<p>├───────────┼───────────────┤</p>
<p>│<span style="font-family: Calibri">:x</span><span style="font-family: 宋体"> │保存</span><span style="font-family: Calibri">(</span><span style="font-family: 宋体">如果当前文件修改过</span><span style="font-family: Calibri">)</span><span style="font-family: 宋体">并退出│ </span></p>
<p>├───────────┼───────────────┤</p>
<p>│<span style="font-family: Calibri">:q!</span><span style="font-family: 宋体"> │不保存文件,直接退出 │ </span></p>
<p>├───────────┼───────────────┤</p>
<p>│<span style="font-family: Calibri">:q</span><span style="font-family: 宋体"> │退出</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体"> │ </span></p>
<p> </p>
<p>VI<span style="font-family: 宋体">常用技巧</span></p>
<p> </p>
<p>VI<span style="font-family: 宋体">命令可以说是</span><span style="font-family: Calibri">Unix/Linux</span><span style="font-family: 宋体">世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法。本文旨在介绍</span><span style="font-family: Calibri">VI</span><span style="font-family: 宋体">的一些最常用命令和高级应用技巧。 </span></p>
<p> </p>
<p><span style="font-family: 宋体">一、基本命令介绍</span></p>
<p> </p>
<p>---- 1<span style="font-family: 宋体">.光标命令 </span></p>
<p> </p>
<p>k<span style="font-family: 宋体">、</span><span style="font-family: Calibri">j</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">h</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">l</span><span style="font-family: 宋体">——上、下、左、右光标移动命令。虽然您可以在</span><span style="font-family: Calibri">Linux</span><span style="font-family: 宋体">中使用键盘右边的</span><span style="font-family: Calibri">4</span><span style="font-family: 宋体">个光标键,但是记住这</span><span style="font-family: Calibri">4</span><span style="font-family: 宋体">个命令还是非常有用的。这</span><span style="font-family: Calibri">4</span><span style="font-family: 宋体">个键正是右手在键盘上放置的基本位置。 </span></p>
<p>nG<span style="font-family: 宋体">——跳转命令。</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">为行数,该命令立即使光标跳到指定行。 </span></p>
<p>Ctrl+G<span style="font-family: 宋体">——光标所在位置的行数和列数报告。 </span></p>
<p>w<span style="font-family: 宋体">、</span><span style="font-family: Calibri">b</span><span style="font-family: 宋体">——使光标向前或向后跳过一个单词。 </span></p>
<p>---- 2<span style="font-family: 宋体">.编辑命令 </span></p>
<p>i<span style="font-family: 宋体">、</span><span style="font-family: Calibri">a</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">r</span><span style="font-family: 宋体">——在光标的前、后以及所在处插入字符命令</span><span style="font-family: Calibri">(i=insert</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">a=append</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">r=replace)</span><span style="font-family: 宋体">。 </span></p>
<p>cw<span style="font-family: 宋体">、</span><span style="font-family: Calibri">dw</span><span style="font-family: 宋体">——改变</span><span style="font-family: Calibri">(</span><span style="font-family: 宋体">置换</span><span style="font-family: Calibri">)/</span><span style="font-family: 宋体">删除光标所在处的单词的命令 </span><span style="font-family: Calibri">(c=change</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">d=delete)</span><span style="font-family: 宋体">。 </span></p>
<p>x<span style="font-family: 宋体">、</span><span style="font-family: Calibri">d$</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">dd</span><span style="font-family: 宋体">——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。 </span></p>
<p>---- 3<span style="font-family: 宋体">.查找命令 </span></p>
<p>---- /string<span style="font-family: 宋体">、</span><span style="font-family: Calibri">?string</span><span style="font-family: 宋体">——从光标所在处向后或向前查找相应的字符串的命令。 </span></p>
<p>---- 4<span style="font-family: 宋体">.拷贝复制命令 </span></p>
<p>---- yy<span style="font-family: 宋体">、</span><span style="font-family: Calibri">p</span><span style="font-family: 宋体">——拷贝一行到剪贴板或取出剪贴板中内容的命令。 </span></p>
<p> </p>
<p><span style="font-family: 宋体">二、常见问题及应用技巧</span></p>
<p> </p>
<p>---- 1<span style="font-family: 宋体">.在一个新文件中读</span><span style="font-family: Calibri">/etc/passwd</span><span style="font-family: 宋体">中的内容,取出用户名部分。 </span></p>
<p>---- vi file</p>
<p>---- :r /etc/passwd <span style="font-family: 宋体">在打开的文件</span><span style="font-family: Calibri">file</span><span style="font-family: 宋体">中光标所在处读入</span><span style="font-family: Calibri">/etc/passwd </span></p>
<p>---- :%s/:.*//g <span style="font-family: 宋体">删除</span><span style="font-family: Calibri">/etc/passwd</span><span style="font-family: 宋体">中用户名后面的从冒号开始直到行尾的所有部分。 </span></p>
<p>---- <span style="font-family: 宋体">您也可以在指定的行号后读入文件内容,例如使用命令“</span><span style="font-family: Calibri">:3r /etc/passwd</span><span style="font-family: 宋体">”从新文件的第</span><span style="font-family: Calibri">3</span><span style="font-family: 宋体">行开始读入 </span><span style="font-family: Calibri">/etc/passwd</span><span style="font-family: 宋体">的所有内容。 </span></p>
<p>---- <span style="font-family: 宋体">我们还可以使用以下方法删掉文件中所有的空行及以</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">开始的注释行。 </span></p>
<p>---- #cat squid.conf.default | grep -v ^$ | grep -v ^#</p>
<p> </p>
<p>---- 2<span style="font-family: 宋体">.在打开一个文件编辑后才知道登录的用户对该文件没有写的权限,不能存盘,需要将所做修改存入临时文件。 </span></p>
<p>---- vi file</p>
<p>---- :w /tmp/1 <span style="font-family: 宋体">保存所做的所有修改,也可以将其中的某一部分修改保存到临时文件,例如仅仅把第</span><span style="font-family: Calibri">20</span><span style="font-family: 宋体">~</span><span style="font-family: Calibri">59</span><span style="font-family: 宋体">行之间的内容存盘成文件</span><span style="font-family: Calibri">/tmp/1</span><span style="font-family: 宋体">,我们可以键入如下命令。 </span></p>
<p>---- vi file</p>
<p>---- :20,59w /tmp/1</p>
<p> </p>
<p>---- 3<span style="font-family: 宋体">.用</span><span style="font-family: Calibri">VI</span><span style="font-family: 宋体">编辑一个文件,但需要删除大段的内容。 </span></p>
<p>---- <span style="font-family: 宋体">首先利用编辑命令“</span><span style="font-family: Calibri">vi file</span><span style="font-family: 宋体">”打开文件,然后将光标移到需要删除的行处按</span><span style="font-family: Calibri">Ctrl+G</span><span style="font-family: 宋体">显示行号,再到结尾处再按</span><span style="font-family: Calibri">Ctrl+G</span><span style="font-family: 宋体">,显示文件结尾的行号。 </span></p>
<p>---- :23,1045d <span style="font-family: 宋体">假定</span><span style="font-family: Calibri">2</span><span style="font-family: 宋体">次得到的行号为</span><span style="font-family: Calibri">23</span><span style="font-family: 宋体">和</span><span style="font-family: Calibri">1045</span><span style="font-family: 宋体">,则把这期间的内容全删除,也可以在要删除的开始行和结束行中用</span><span style="font-family: Calibri">ma</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">mb</span><span style="font-family: 宋体">命令标记,然后利用“</span><span style="font-family: Calibri">:a,bd</span><span style="font-family: 宋体">”命令删除。 </span></p>
<p> </p>
<p>---- 4<span style="font-family: 宋体">.在整个文件的各行或某几行的行首或行尾加一些字符串。 </span></p>
<p>---- vi file</p>
<p>---- :3,$s/^/some string / <span style="font-family: 宋体">在文件的第一行至最后一行的行首插入“</span><span style="font-family: Calibri">some string</span><span style="font-family: 宋体">”。 </span></p>
<p>---- :%s/$/some string/g <span style="font-family: 宋体">在整个文件每一行的行尾添加“</span><span style="font-family: Calibri">some string</span><span style="font-family: 宋体">”。 </span></p>
<p>---- :%s/string1/string2/g <span style="font-family: 宋体">在整个文件中替换“</span><span style="font-family: Calibri">string1</span><span style="font-family: 宋体">”成“</span><span style="font-family: Calibri">string2</span><span style="font-family: 宋体">”。 </span></p>
<p>---- :3,7s/string1/string2/ <span style="font-family: 宋体">仅替换文件中的第</span><span style="font-family: Calibri">3</span><span style="font-family: 宋体">行到第</span><span style="font-family: Calibri">7</span><span style="font-family: 宋体">行中的“</span><span style="font-family: Calibri">string1</span><span style="font-family: 宋体">”成“</span><span style="font-family: Calibri">string2</span><span style="font-family: 宋体">”。 </span></p>
<p>---- <span style="font-family: 宋体">注意</span><span style="font-family: Calibri">: </span><span style="font-family: 宋体">其中</span><span style="font-family: Calibri">s</span><span style="font-family: 宋体">为</span><span style="font-family: Calibri">substitute</span><span style="font-family: 宋体">,</span><span style="font-family: Calibri">%</span><span style="font-family: 宋体">表示所有行,</span><span style="font-family: Calibri">g</span><span style="font-family: 宋体">表示</span><span style="font-family: Calibri">global</span><span style="font-family: 宋体">。 </span></p>
<p> </p>
<p>---- 5<span style="font-family: 宋体">.同时编辑</span><span style="font-family: Calibri">2</span><span style="font-family: 宋体">个文件,拷贝一个文件中的文本并粘贴到另一个文件中。 </span></p>
<p>---- vi file1 file2</p>
<p>---- yy <span style="font-family: 宋体">在文件</span><span style="font-family: Calibri">1</span><span style="font-family: 宋体">的光标处拷贝所在行 </span></p>
<p>---- :n <span style="font-family: 宋体">切换到文件</span><span style="font-family: Calibri">2 (n=next) </span></p>
<p>---- p <span style="font-family: 宋体">在文件</span><span style="font-family: Calibri">2</span><span style="font-family: 宋体">的光标所在处粘贴所拷贝的行 </span></p>
<p>---- :n <span style="font-family: 宋体">切换回文件</span><span style="font-family: Calibri">1 </span></p>
<p> </p>
<p>---- 6<span style="font-family: 宋体">.替换文件中的路径。 </span></p>
<p>---- <span style="font-family: 宋体">使用命令“</span><span style="font-family: Calibri">:%s#/usr/bin#/bin#g</span><span style="font-family: 宋体">”可以把文件中所有路径</span><span style="font-family: Calibri">/usr/bin</span><span style="font-family: 宋体">换成</span><span style="font-family: Calibri">/bin</span><span style="font-family: 宋体">。也可以使用命令“</span><span style="font-family: Calibri">:%s//usr/bin//bin/g</span><span style="font-family: 宋体">”实现,其中“”是转义字符,表明其后的“</span><span style="font-family: Calibri">/</span><span style="font-family: 宋体">”字符是具有实际意义的字符,不是分隔符。</span></p>
<h2><strong>Vi<span style="font-family: 黑体">编辑器基本命令</span></strong></h2>
<p>https://www.cnblogs.com/ljf181275034/articles/2831026.html</p>
<p>vi<span style="font-family: 宋体">编辑器是所有</span><span style="font-family: Calibri">Unix</span><span style="font-family: 宋体">及</span><span style="font-family: Calibri">Linux</span><span style="font-family: 宋体">系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对</span><span style="font-family: Calibri">Unix</span><span style="font-family: 宋体">及</span><span style="font-family: Calibri">Linux</span><span style="font-family: 宋体">系统的任何版本,</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">编辑器是完全相同的,因此您可以在其他任何介绍</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">的地方进一步了解它。</span><span style="font-family: Calibri">Vi</span><span style="font-family: 宋体">也是</span><span style="font-family: Calibri">Linux</span><span style="font-family: 宋体">中最基本的文本编辑器,学会它后,您将在</span><span style="font-family: Calibri">Linux</span><span style="font-family: 宋体">的世界里畅行无阻。</span></p>
<p>1<span style="font-family: 宋体">、</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">的基本概念</span><br><span style="font-family: 宋体">基本上</span>vi<span style="font-family: 宋体">可以分为三种状态,分别是命令模式(</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">)、插入模式(</span><span style="font-family: Calibri">Insert mode</span><span style="font-family: 宋体">)和底行模式(</span><span style="font-family: Calibri">last line mode</span><span style="font-family: 宋体">),各模式的功能区分如下:</span><br>1.<span style="font-family: 宋体">命令行模式</span><span style="font-family: Calibri">(command mode)</span><br><span style="font-family: 宋体">控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入</span>Insert mode<span style="font-family: 宋体">下,或者到 </span><span style="font-family: Calibri">last line mode</span><span style="font-family: 宋体">。</span><br>2.<span style="font-family: 宋体">插入模式</span><span style="font-family: Calibri">(Insert mode)</span><br><span style="font-family: 宋体">只有在</span>Insert mode<span style="font-family: 宋体">下,才可以做文字输入,按「</span><span style="font-family: Calibri">ESC</span><span style="font-family: 宋体">」键可回到命令行模式。</span><br>3.<span style="font-family: 宋体">底行模式</span><span style="font-family: Calibri">(last line mode)</span><br><span style="font-family: 宋体">将文件保存或退出</span>vi<span style="font-family: 宋体">,也可以设置编辑环境,如寻找字符串、列出行号</span><span style="font-family: Calibri">…</span><span style="font-family: 宋体">等。</span></p>
<p><span style="font-family: 宋体">不过一般我们在使用时把</span>vi<span style="font-family: 宋体">简化成两个模式,就是将底行模式</span><span style="font-family: Calibri">(last line mode)</span><span style="font-family: 宋体">也算入命令行模式</span><span style="font-family: Calibri">(command mode)</span><span style="font-family: 宋体">。</span></p>
<p>2<span style="font-family: 宋体">、</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">的基本操作</span><br>a.<span style="font-family: 宋体">进入</span><span style="font-family: Calibri">vi</span><br><span style="font-family: 宋体">在系统提示符号输入</span>vi<span style="font-family: 宋体">及文件名称后,就进入</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">全屏幕编辑画面:</span></p>
<p>$ vi myfile<br><span style="font-family: 宋体">不过有一点要特别注意,就是您进入</span>vi<span style="font-family: 宋体">之后,是处于「命令行模式(</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">)」,您要切换到「插入模式(</span><span style="font-family: Calibri">Insert mode</span><span style="font-family: 宋体">)」才能够输入文字。初次使用</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">后,先不要乱动,转换到 「插入模式(</span><span style="font-family: Calibri">Insert mode</span><span style="font-family: 宋体">)」再说吧!</span></p>
<p>b.<span style="font-family: 宋体">切换至插入模式</span><span style="font-family: Calibri">(Insert mode)</span><span style="font-family: 宋体">编辑文件</span><br><span style="font-family: 宋体">在「命令行模式(</span>command mode<span style="font-family: 宋体">)」下按一下字母「</span><span style="font-family: Calibri">i</span><span style="font-family: 宋体">」就可以进入「插入模式(</span><span style="font-family: Calibri">Insert mode</span><span style="font-family: 宋体">)」,这时候你就可以开始输入文字了。</span></p>
<p>c.Insert <span style="font-family: 宋体">的切换</span><br><span style="font-family: 宋体">您目前处于「插入模式(</span>Insert mode<span style="font-family: 宋体">)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「</span><span style="font-family: Calibri">ESC</span><span style="font-family: 宋体">」键转到「命令行模式(</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">)」再删除文字。</span></p>
<p>d.<span style="font-family: 宋体">退出</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">及保存文件</span><br><span style="font-family: 宋体">在「命令行模式(</span>command mode<span style="font-family: 宋体">)」下,按一下「:」冒号键进入「</span><span style="font-family: Calibri">Last line mode</span><span style="font-family: 宋体">」,例如:</span></p>
<p>: w filename <span style="font-family: 宋体">(输入 「</span><span style="font-family: Calibri">w filename</span><span style="font-family: 宋体">」将文章以指定的文件名</span><span style="font-family: Calibri">filename</span><span style="font-family: 宋体">保存)</span><br>: wq (<span style="font-family: 宋体">输入「</span><span style="font-family: Calibri">wq</span><span style="font-family: 宋体">」,存盘并退出</span><span style="font-family: Calibri">vi)</span><br>: q! (<span style="font-family: 宋体">输入</span><span style="font-family: Calibri">q!</span><span style="font-family: 宋体">, 不存盘强制退出</span><span style="font-family: Calibri">vi)</span></p>
<p>3<span style="font-family: 宋体">、命令行模式(</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">)功能键</span><br>1. <span style="font-family: 宋体">插入模式</span><br><span style="font-family: 宋体">按「</span>i<span style="font-family: 宋体">」切换进入插入模式「</span><span style="font-family: Calibri">insert mode</span><span style="font-family: 宋体">」,按</span><span style="font-family: Calibri">“i”</span><span style="font-family: 宋体">进入插入模式后是从光标当前位置开始输入文件;</span><br><span style="font-family: 宋体">按「</span>a<span style="font-family: 宋体">」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;</span><br><span style="font-family: 宋体">按「</span>o<span style="font-family: 宋体">」进入插入模式后,是插入新的一行,从行首开始输入文字。</span><br>2.<span style="font-family: 宋体">从插入模式切换为命令行模式</span><br><span style="font-family: 宋体">按「</span>ESC<span style="font-family: 宋体">」键。</span><br>3. <span style="font-family: 宋体">移动光标</span><br>vi<span style="font-family: 宋体">可以直接用键盘上的光标来上下左右移动,但正规的</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">是用小写英文字母「</span><span style="font-family: Calibri">h</span><span style="font-family: 宋体">」、「</span><span style="font-family: Calibri">j</span><span style="font-family: 宋体">」、「</span><span style="font-family: Calibri">k</span><span style="font-family: 宋体">」、「</span><span style="font-family: Calibri">l</span><span style="font-family: 宋体">」,分别控制光标左、下、上、右移一格。</span><br><span style="font-family: 宋体">按「</span>ctrl<span style="font-family: 宋体">」</span><span style="font-family: Calibri">+</span><span style="font-family: 宋体">「</span><span style="font-family: Calibri">b</span><span style="font-family: 宋体">」:屏幕往</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">后</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">移动一页。</span><br><span style="font-family: 宋体">按「</span>ctrl<span style="font-family: 宋体">」</span><span style="font-family: Calibri">+</span><span style="font-family: 宋体">「</span><span style="font-family: Calibri">f</span><span style="font-family: 宋体">」:屏幕往</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">前</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">移动一页。</span><br><span style="font-family: 宋体">按「</span>ctrl<span style="font-family: 宋体">」</span><span style="font-family: Calibri">+</span><span style="font-family: 宋体">「</span><span style="font-family: Calibri">u</span><span style="font-family: 宋体">」:屏幕往</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">后</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">移动半页。</span><br><span style="font-family: 宋体">按「</span>ctrl<span style="font-family: 宋体">」</span><span style="font-family: Calibri">+</span><span style="font-family: 宋体">「</span><span style="font-family: Calibri">d</span><span style="font-family: 宋体">」:屏幕往</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">前</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">移动半页。</span><br><span style="font-family: 宋体">按数字「</span>0<span style="font-family: 宋体">」:移到文章的开头。</span><br><span style="font-family: 宋体">按「</span>G<span style="font-family: 宋体">」:移动到文章的最后。</span><br><span style="font-family: 宋体">按「</span>$<span style="font-family: 宋体">」:移动到光标所在行的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">行尾</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">。</span><br><span style="font-family: 宋体">按「</span>^<span style="font-family: 宋体">」:移动到光标所在行的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">行首</span><span style="font-family: Calibri">”</span><br><span style="font-family: 宋体">按「</span>w<span style="font-family: 宋体">」:光标跳到下个字的开头</span><br><span style="font-family: 宋体">按「</span>e<span style="font-family: 宋体">」:光标跳到下个字的字尾</span><br><span style="font-family: 宋体">按「</span>b<span style="font-family: 宋体">」:光标回到上个字的开头</span><br><span style="font-family: 宋体">按「</span>#l<span style="font-family: 宋体">」:光标移到该行的第</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">个位置,如:</span><span style="font-family: Calibri">5l,56l</span><span style="font-family: 宋体">。</span></p>
<p>4.<span style="font-family: 宋体">删除文字</span><br><span style="font-family: 宋体">「</span>x<span style="font-family: 宋体">」:每按一次,删除光标所在位置的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">后面</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">一个字符。</span><br><span style="font-family: 宋体">「</span>#x<span style="font-family: 宋体">」:例如,「</span><span style="font-family: Calibri">6x</span><span style="font-family: 宋体">」表示删除光标所在位置的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">后面</span><span style="font-family: Calibri">”6</span><span style="font-family: 宋体">个字符。</span><br><span style="font-family: 宋体">「</span>X<span style="font-family: 宋体">」:大写的</span><span style="font-family: Calibri">X</span><span style="font-family: 宋体">,每按一次,删除光标所在位置的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">前面</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">一个字符。</span><br><span style="font-family: 宋体">「</span>#X<span style="font-family: 宋体">」:例如,「</span><span style="font-family: Calibri">20X</span><span style="font-family: 宋体">」表示删除光标所在位置的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">前面</span><span style="font-family: Calibri">”20</span><span style="font-family: 宋体">个字符。</span><br><span style="font-family: 宋体">「</span>dd<span style="font-family: 宋体">」:删除光标所在行。</span><br><span style="font-family: 宋体">「</span>#dd<span style="font-family: 宋体">」:从光标所在行开始删除</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">行</span></p>
<p>5.<span style="font-family: 宋体">复制</span></p>
<p><span style="font-family: 宋体">「</span>yw<span style="font-family: 宋体">」:将光标所在之处到字尾的字符复制到缓冲区中。</span><br><span style="font-family: 宋体">「</span>#yw<span style="font-family: 宋体">」:复制</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">个字到缓冲区</span><br><span style="font-family: 宋体">「</span>yy<span style="font-family: 宋体">」:复制光标所在行到缓冲区。</span><br><span style="font-family: 宋体">「</span>#yy<span style="font-family: 宋体">」:例如,「</span><span style="font-family: Calibri">6yy</span><span style="font-family: 宋体">」表示拷贝从光标所在的该行</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">往下数</span><span style="font-family: Calibri">”6</span><span style="font-family: 宋体">行文字。</span><br><span style="font-family: 宋体">「</span>p<span style="font-family: 宋体">」:将缓冲区内的字符贴到光标所在位置。注意:所有与</span><span style="font-family: Calibri">“y”</span><span style="font-family: 宋体">有关的复制命令都必须与</span><span style="font-family: Calibri">“p”</span><span style="font-family: 宋体">配合才能完成复制与粘贴功能。</span></p>
<p>6.<span style="font-family: 宋体">替换</span><br><span style="font-family: 宋体">「</span>r<span style="font-family: 宋体">」:替换光标所在处的字符。</span><br><span style="font-family: 宋体">「</span>R<span style="font-family: 宋体">」:替换光标所到之处的字符,直到按下「</span><span style="font-family: Calibri">ESC</span><span style="font-family: 宋体">」键为止。</span><br>7.<span style="font-family: 宋体">回复上一次操作</span><br><span style="font-family: 宋体">「</span>u<span style="font-family: 宋体">」:如果您误执行一个命令,可以马上按下「</span><span style="font-family: Calibri">u</span><span style="font-family: 宋体">」,回到上一个操作。按多次</span><span style="font-family: Calibri">“u”</span><span style="font-family: 宋体">可以执行多次回复。</span><br>8.<span style="font-family: 宋体">更改</span><br><span style="font-family: 宋体">「</span>cw<span style="font-family: 宋体">」:更改光标所在处的字到字尾处</span><br><span style="font-family: 宋体">「</span><span style="text-decoration: underline">c#</span>w<span style="font-family: 宋体">」:例如,「</span><span style="font-family: Calibri">c3w</span><span style="font-family: 宋体">」表示更改</span><span style="font-family: Calibri">3</span><span style="font-family: 宋体">个字</span><br>9.<span style="font-family: 宋体">跳至指定的行</span><br><span style="font-family: 宋体">「</span>ctrl<span style="font-family: 宋体">」</span><span style="font-family: Calibri">+</span><span style="font-family: 宋体">「</span><span style="font-family: Calibri">g</span><span style="font-family: 宋体">」列出光标所在行的行号。</span><br><span style="font-family: 宋体">「</span>#G<span style="font-family: 宋体">」:例如,「</span><span style="font-family: Calibri">15G</span><span style="font-family: 宋体">」,表示移动光标至文章的第</span><span style="font-family: Calibri">15</span><span style="font-family: 宋体">行行首。</span><br>4<span style="font-family: 宋体">、</span><span style="font-family: Calibri">Last line mode</span><span style="font-family: 宋体">下命令简介</span><br><span style="font-family: 宋体">在使用「</span>last line mode<span style="font-family: 宋体">」之前,请记住先按「</span><span style="font-family: Calibri">ESC</span><span style="font-family: 宋体">」键确定您已经处于「</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">」下后,再按「:」冒号即可进入「</span><span style="font-family: Calibri">last line mode</span><span style="font-family: 宋体">」。</span></p>
<p>A. <span style="font-family: 宋体">列出行号</span><br><span style="font-family: 宋体">「</span>set nu<span style="font-family: 宋体">」:输入「</span><span style="font-family: Calibri">set nu</span><span style="font-family: 宋体">」后,会在文件中的每一行前面列出行号。</span><br>B. <span style="font-family: 宋体">跳到文件中的某一行</span><br><span style="font-family: 宋体">「</span>#<span style="font-family: 宋体">」:「</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字</span><span style="font-family: Calibri">15</span><span style="font-family: 宋体">,再回车,就会跳到文章的第</span><span style="font-family: Calibri">15</span><span style="font-family: 宋体">行。</span><br>C. <span style="font-family: 宋体">查找字符</span><br><span style="font-family: 宋体">「</span>/<span style="font-family: 宋体">关键字」:先按「</span><span style="font-family: Calibri">/</span><span style="font-family: 宋体">」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">」会往后寻找到您要的关键字为止。</span><br><span style="font-family: 宋体">「</span>?<span style="font-family: 宋体">关键字」:先按「</span><span style="font-family: Calibri">?</span><span style="font-family: 宋体">」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">」会往前寻找到您要的关键字为止。</span><br>D. <span style="font-family: 宋体">保存文件</span><br><span style="font-family: 宋体">「</span>w<span style="font-family: 宋体">」:在冒号输入字母「</span><span style="font-family: Calibri">w</span><span style="font-family: 宋体">」就可以将文件保存起来。</span><br>E. <span style="font-family: 宋体">离开</span><span style="font-family: Calibri">vi</span><br><span style="font-family: 宋体">「</span>q<span style="font-family: 宋体">」:按「</span><span style="font-family: Calibri">q</span><span style="font-family: 宋体">」就是退出,如果无法离开</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">,可以在「</span><span style="font-family: Calibri">q</span><span style="font-family: 宋体">」后跟一个「</span><span style="font-family: Calibri">!</span><span style="font-family: 宋体">」强制离开</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">。</span><br><span style="font-family: 宋体">「</span>qw<span style="font-family: 宋体">」:一般建议离开时,搭配「</span><span style="font-family: Calibri">w</span><span style="font-family: 宋体">」一起使用,这样在退出的时候还可以保存文件。</span><br>5<span style="font-family: 宋体">、</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">命令列表</span><br>1<span style="font-family: 宋体">、下表列出命令模式下的一些键的功能:</span></p>
<p>h <span style="font-family: 宋体">左移光标一个字符</span><br>l <span style="font-family: 宋体">右移光标一个字符</span><br>k <span style="font-family: 宋体">光标上移一行</span><br>j <span style="font-family: 宋体">光标下移一行</span><br>^ <span style="font-family: 宋体">光标移动至行首</span><br>0 <span style="font-family: 宋体">数字</span><span style="font-family: Calibri">“0”</span><span style="font-family: 宋体">,光标移至文章的开头</span><br>G <span style="font-family: 宋体">光标移至文章的最后</span><br>$ <span style="font-family: 宋体">光标移动至行尾</span><br>Ctrl+f <span style="font-family: 宋体">向前翻屏</span><br>Ctrl+b <span style="font-family: 宋体">向后翻屏</span><br>Ctrl+d <span style="font-family: 宋体">向前翻半屏</span><br>Ctrl+u <span style="font-family: 宋体">向后翻半屏</span><br>i <span style="font-family: 宋体">在光标位置前插入字符</span><br>a <span style="font-family: 宋体">在光标所在位置的后一个字符开始增加</span><br>o <span style="font-family: 宋体">插入新的一行,从行首开始输入</span><br>ESC <span style="font-family: 宋体">从输入状态退至命令状态</span><br>x <span style="font-family: 宋体">删除光标后面的字符</span><br>#x <span style="font-family: 宋体">删除光标后的#个字符</span><br>X (<span style="font-family: 宋体">大写</span><span style="font-family: Calibri">X)</span><span style="font-family: 宋体">,删除光标前面的字符</span><br>#X <span style="font-family: 宋体">删除光标前面的</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">个字符</span><br>dd <span style="font-family: 宋体">删除光标所在的行</span><br>#dd <span style="font-family: 宋体">删除从光标所在行数的</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">行</span><br>yw <span style="font-family: 宋体">复制光标所在位置的一个字</span><br>#yw <span style="font-family: 宋体">复制光标所在位置的</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">个字</span><br>yy <span style="font-family: 宋体">复制光标所在位置的一行</span><br>#yy <span style="font-family: 宋体">复制从光标所在行数的</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">行</span><br>p <span style="font-family: 宋体">粘贴</span><br>u <span style="font-family: 宋体">取消操作</span><br>cw <span style="font-family: 宋体">更改光标所在位置的一个字</span><br>#cw <span style="font-family: 宋体">更改光标所在位置的</span><span style="font-family: Calibri">#</span><span style="font-family: 宋体">个字</span><br>2<span style="font-family: 宋体">、下表列出行命令模式下的一些指令</span></p>
<p>w filename <span style="font-family: 宋体">储存正在编辑的文件为</span><span style="font-family: Calibri">filename</span><br>wq filename<br><span style="font-family: 宋体">储存正在编辑的文件为</span>filename<span style="font-family: 宋体">,并退出</span><span style="font-family: Calibri">vi</span><br>q! <span style="font-family: 宋体">放弃所有修改,退出</span><span style="font-family: Calibri">vi</span><br>set nu <span style="font-family: 宋体">显示行号</span><br>/<span style="font-family: 宋体">或</span><span style="font-family: Calibri">? </span><span style="font-family: 宋体">查找,在</span><span style="font-family: Calibri">/</span><span style="font-family: 宋体">后输入要查找的内容</span><br>n <span style="font-family: 宋体">与</span><span style="font-family: Calibri">/</span><span style="font-family: 宋体">或</span><span style="font-family: Calibri">?</span><span style="font-family: 宋体">一起使用,如果查找的内容不是想要找的关键字,按</span><span style="font-family: Calibri">n</span><span style="font-family: 宋体">或向后(与</span><span style="font-family: Calibri">/</span><span style="font-family: 宋体">联用)或向前(与</span><span style="font-family: Calibri">?</span><span style="font-family: 宋体">联用)继续查找,直到找到为止。</span><br><span style="font-family: 宋体">对于第一次用</span>vi<span style="font-family: 宋体">,有几点注意要提醒一下:</span><br>1<span style="font-family: 宋体">、用</span><span style="font-family: Calibri">vi</span><span style="font-family: 宋体">打开文件后,是处于「命令行模式(</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">)」,您要切换到「插入模式(</span><span style="font-family: Calibri">Insert mode</span><span style="font-family: 宋体">)」才能够输入文字。切换方法:在「命令行模式(</span><span style="font-family: Calibri">command mode</span><span style="font-family: 宋体">)」下按一下字母「</span><span style="font-family: Calibri">i</span><span style="font-family: 宋体">」就可以进入「插入模式(</span><span style="font-family: Calibri">Insert mode</span><span style="font-family: 宋体">)」,这时候你就可以开始输入文字了。</span><br>2<span style="font-family: 宋体">、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「</span><span style="font-family: Calibri">ESC</span><span style="font-family: 宋体">」键。</span><br>3<span style="font-family: 宋体">、保存并退出文件:在命令模式下输入</span><span style="font-family: Calibri">:wq</span><span style="font-family: 宋体">即可!(别忘了</span><span style="font-family: Calibri">wq</span><span style="font-family: 宋体">前面的</span><span style="font-family: Calibri">:</span><span style="font-family: 宋体">)</span></p>
<h2><strong>END</strong></h2><br><br>
来源:https://www.cnblogs.com/qihuanye-229110/p/11215235.html
頁:
[1]