﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-处变不惊，处忧不虑，不争一年的兴衰，但看十年的功过。笑中千关过，愁内百事哀，挣胜是祸，繁华似梦，平淡是福。-随笔分类-Linux命令</title><link>http://www.cnitblog.com/nana/category/8676.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 04 Oct 2011 09:53:35 GMT</lastBuildDate><pubDate>Tue, 04 Oct 2011 09:53:35 GMT</pubDate><ttl>60</ttl><item><title>文本编辑器</title><link>http://www.cnitblog.com/nana/archive/2010/05/09/65893.html</link><dc:creator>你向前迈了一步后，就不要再留恋过去的风景</dc:creator><author>你向前迈了一步后，就不要再留恋过去的风景</author><pubDate>Sun, 09 May 2010 02:53:00 GMT</pubDate><guid>http://www.cnitblog.com/nana/archive/2010/05/09/65893.html</guid><wfw:comment>http://www.cnitblog.com/nana/comments/65893.html</wfw:comment><comments>http://www.cnitblog.com/nana/archive/2010/05/09/65893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/nana/comments/commentRss/65893.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/nana/services/trackbacks/65893.html</trackback:ping><description><![CDATA[Vi 是Unix世界里极为普遍的全屏幕文本编辑器，<strong>VIM是它的改进版本</strong>Vi IMproved的简称。<br>1、vi的基本概念<br>
<div class=spctrl></div>
　　基本上vi可以分为三种状态，分别是<br>
<div class=spctrl></div>
　　命令模式（command mode）<br>
<div class=spctrl></div>
　　插入模式（Insert mode）<br>
<div class=spctrl></div>
　　底行模式（last line mode）<br>
<div class=spctrl></div>
　　1) 命令行模式command mode）<br>
<div class=spctrl></div>
　　控制屏幕光标的移动，字符、字或行的删除，移动复制某区段及进入Insert mode下，或者到 last line mode。<br>
<div class=spctrl></div>
　　2) 插入模式（Insert mode）<br>
<div class=spctrl></div>
　　只有在Insert mode下，才可以做文字输入，按[ESC]键可回到命令行模式。<br>
<div class=spctrl></div>
　　3) 底行模式（last line mode）<br>
<div class=spctrl></div>
　　将文件保存或退出vi，也可以设置编辑环境，如寻找字符串、列出行号&#8230;&#8230;等。<br>
<div class=spctrl></div>
　　不过一般我们在使用时把vi简化成两个模式，就是将底行模式（last line mode）也算入命令行模式command mode）。<br>
<div class=spctrl></div>
　　2、vi的基本操作<br>
<div class=spctrl></div>
　　a) 进入vi<br>
<div class=spctrl></div>
　　在系统提示符号输入vi及文件名称后，就进入vi全屏幕编辑画面：<br>
<div class=spctrl></div>
　　$ <strong>vi myfile</strong><br>
<div class=spctrl></div>
　　不过有一点要特别注意，就是您进入vi之后，是处于[命令行模式（command mode）]，您要切换到[插入模式（Insert mode）]才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标，结果电脑一直哔哔叫，把自己气个半死，所以进入vi后，先不要乱动，转换到 [插入模式（Insert mode）]再说吧！<br>
<div class=spctrl></div>
　　b) 切换至插入模式（Insert mode）编辑文件<br>
<div class=spctrl></div>
　　在[命令行模式（command mode）]下按一下字母就可以进入[插入模式（Insert mode）]，这时候你就可以开始输入文字了。<br>
<div class=spctrl></div>
　　c) Insert 的切换<br>
<div class=spctrl></div>
　　您目前处于[插入模式（Insert mode）]，您就只能一直输入文字，如果您发现输错了字！想用光标键往回移动，将该字删除，就要先按一下[ESC]键转到[命令行模式（command mode）]再删除文字。<br>
<div class=spctrl></div>
　　d) 退出vi及保存文件<br>
<div class=spctrl></div>
　　在[命令行模式（command mode）]下，按一下[：]冒号键进入[Last line mode]，例如：<br>
<div class=spctrl></div>
　　<strong>: w filename （输入 [w filename]将文章以指定的文件名filename保存）</strong><br>
<div class=spctrl></div>
　　<strong>: wq (输入[wq]，存盘并退出vi)</strong><br>
<div class=spctrl></div>
　　<strong>: q! (输入q!， 不存盘强制退出vi)</strong><br>
<div class=spctrl></div>
　　3、命令行模式（command mode）功能键<br>
<div class=spctrl></div>
　　1）. 插入模式<br>
<div class=spctrl></div>
　　按切换进入插入模式，按&#8220;i&#8221;进入插入模式后是从光标当前位置开始输入文件；<br>
<div class=spctrl></div>
　　按[a]进入插入模式后，是从目前光标所在位置的下一个位置开始输入文字；<br>
<div class=spctrl></div>
　　按[o]进入插入模式后，是插入新的一行，从行首开始输入文字。<br>
<div class=spctrl></div>
　　2）. 从插入模式切换为命令行模式<br>
<div class=spctrl></div>
　　<strong>按[ESC]键。<br></strong>
<div class=spctrl></div>
　　3）. 移动光标<br>
<div class=spctrl></div>
　　vi可以直接用键盘上的光标来上下左右移动，但正规的vi是用小写英文字母[h]、[j]、[k]、[l]，分别控制光标左、下、上、右移一格。<br>
<div class=spctrl></div>
　　按[ctrl]+：屏幕往&#8220;后&#8221;移动一页。<br>
<div class=spctrl></div>
　　按[ctrl]+[f]：屏幕往&#8220;前&#8221;移动一页。<br>
<div class=spctrl></div>
　　按[ctrl]+：屏幕往&#8220;后&#8221;移动半页。<br>
<div class=spctrl></div>
　　按[ctrl]+[d]：屏幕往&#8220;前&#8221;移动半页。<br>
<div class=spctrl></div>
　　按数字[0]：移到文章的开头。<br>
<div class=spctrl></div>
　　按[G]：移动到文章的最后。<br>
<div class=spctrl></div>
　　按[$]：移动到光标所在行的&#8220;行尾&#8221;。<br>
<div class=spctrl></div>
　　按[^]：移动到光标所在行的&#8220;行首&#8221;<br>
<div class=spctrl></div>
　　按[w]：光标跳到下个字的开头<br>
<div class=spctrl></div>
　　按[e]：光标跳到下个字的字尾<br>
<div class=spctrl></div>
　　按：光标回到上个字的开头<br>
<div class=spctrl></div>
　　按[#l]：光标移到该行的第#个位置，如：5l,56l。<br>
<div class=spctrl></div>
　　4）. 删除文字<br>
<div class=spctrl></div>
　　[x]：每按一次，删除光标所在位置的&#8220;后面&#8221;一个字符。<br>
<div class=spctrl></div>
　　[#x]：例如，[6x]表示删除光标所在位置的&#8220;后面&#8221;6个字符。<br>
<div class=spctrl></div>
　　[X]：大写的X，每按一次，删除光标所在位置的&#8220;前面&#8221;一个字符。<br>
<div class=spctrl></div>
　　[#X]：例如，[20X]表示删除光标所在位置的&#8220;前面&#8221;20个字符。<br>
<div class=spctrl></div>
　　[dd]：删除光标所在行。<br>
<div class=spctrl></div>
　　[#dd]：从光标所在行开始删除#行<br>
<div class=spctrl></div>
　　5）. 复制<br>
<div class=spctrl></div>
　　[yw]：将光标所在之处到字尾的字符复制到缓冲区中。<br>
<div class=spctrl></div>
　　[#yw]：复制#个字到缓冲区<br>
<div class=spctrl></div>
　　[yy]：复制光标所在行到缓冲区。<br>
<div class=spctrl></div>
　　[#yy]：例如，[6yy]表示拷贝从光标所在的该行&#8220;往下数&#8221;6行文字。<br>
<div class=spctrl></div>
　　[p]：将缓冲区内的字符贴到光标所在位置。注意：所有与&#8220;y&#8221;有关的复制命令都必须与&#8220;p&#8221;配合才能完成复制与粘贴功能。<br>
<div class=spctrl></div>
　　6）. 替换<br>
<div class=spctrl></div>
　　[r]：替换光标所在处的字符。<br>
<div class=spctrl></div>
　　[R]：替换光标所到之处的字符，直到按下[ESC]键为止。<br>
<div class=spctrl></div>
　　7）. 回复上一次操作<br>
<div class=spctrl></div>
　　：如果您误执行一个命令，可以马上按下，回到上一个操作。按多次&#8220;u&#8221;可以执行多次回复。<br>
<div class=spctrl></div>
　　8）. 更改<br>
<div class=spctrl></div>
　　[cw]：更改光标所在处的字到字尾处<br>
<div class=spctrl></div>
　　[c#w]：例如，[c3w]表示更改3个字<br>
<div class=spctrl></div>
　　9）. 跳至指定的行<br>
<div class=spctrl></div>
　　[ctrl]+[g]列出光标所在行的行号。<br>
<div class=spctrl></div>
　　[#G]：例如，[15G]，表示移动光标至文章的第15行行首。<br>
<div class=spctrl></div>
　　4、Last line mode下命令简介<br>
<div class=spctrl></div>
　　在使用[last line mode]之前，请记住先按[ESC]键确定您已经处于[command mode]下后，再按[：]冒号即可进入[last line mode]。<br>
<div class=spctrl></div>
　　A) 列出行号<br>
<div class=spctrl></div>
　　[set nu]：输入[set nu]后，会在文件中的每一行前面列出行号。<br>
<div class=spctrl></div>
　　B) 跳到文件中的某一行<br>
<div class=spctrl></div>
　　[#]：[#]号表示一个数字，在冒号后输入一个数字，再按回车键就会跳到该行了，如输入数字15，再回车，就会跳到文章的第15行。<br>
<div class=spctrl></div>
　　C) 查找字符<br>
<div class=spctrl></div>
　　[/关键字]：先按[/]键，再输入您想寻找的字符，如果第一次找的关键字不是您想要的，可以一直按[n]会往后寻找到您要的关键字为止。<br>
<div class=spctrl></div>
　　[?关键字]：先按[?]键，再输入您想寻找的字符，如果第一次找的关键字不是您想要的，可以一直按[n]会往前寻找到您要的关键字为止。<br>
<div class=spctrl></div>
　　D) 保存文件<br>
<div class=spctrl></div>
　　[w]：在冒号输入字母[w]就可以将文件保存起来。<br>
<div class=spctrl></div>
　　E) 离开vi<br>
<div class=spctrl></div>
　　[q]：按[q]就是退出，如果无法离开vi，可以在[q]后跟一个[!]强制离开vi。<br>
<div class=spctrl></div>
　　[qw]：一般建议离开时，搭配[w]一起使用，这样在退出的时候还可以保存文件。 
<img src ="http://www.cnitblog.com/nana/aggbug/65893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/nana/" target="_blank">你向前迈了一步后，就不要再留恋过去的风景</a> 2010-05-09 10:53 <a href="http://www.cnitblog.com/nana/archive/2010/05/09/65893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>