
Linux下常见的文本编辑器有:
诸如此类,但我们只需要掌握vi/vim即可
vi编辑器是linux和unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
vi编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
vim是vi的增强版,比vi更容易使用。vi的命令几乎都可以在vim上使用。
•vi/vim是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等。 •vi/vim只是一个文本编辑工具,只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等 •全屏幕显示
vi/vim编辑器有三种编辑模式,分别是:
	命令模式
	输入模式
	末行模式| 编辑模式 | 作用 | 
|---|---|
| 命令模式 | 用户执行命令,比如复制行、粘贴行等 | 
| 输入模式 | 用于输入文本、修改文本等 | 
| 末行模式 | 用于查找文本、保存修改等 | 
vi/vim三种编辑模式之间的转换的方式:
打开文件方式:文件打开后默认处于命令模式下
vim filename        //打开文件
vim +n filename     //打开文件并定位到第n行
vim +/pattern filename      //打开文件并定位到第一次被/pattern匹配到的内容行首关闭文件方式:末行模式关闭文件
| 命令 | 意义 | 
|---|---|
| q | 退出 | 
| q! | 不保存退出 | 
| w | 保存但不退出 | 
| w! | 强行保存 | 
| wq | 保存并退出 | 
| wq! | 强行保存并退出 | 
| x | 强行保存并退出 | 
命令模式关闭文件
ZZ		//保存退出命令模式下移动光标的方式
	h:向左移动一个字符
        l:向右移动一个字符
        j:向下移动一个字符
        k:向上移动一个字符
        #h:向左移动#个字符
        #l:向右移动#个字符
        #j:向下移动#个字符
        #k:向上移动#个字符
    以单词为单位移动
        w:移动到下一个单词的词首
        e:跳至当前或下一个单词的词尾
        b:跳至当前或上一个单词的词首
        #w:以当前光标为起点跳至第#个单词的词首
        #e:以当前光标为起点跳至第#个单词的词尾
        #b:以当前光标为起点跳至第#个单词的词首
    行内跳转
        0:数字0,跳转到绝对行首
        ^:跳转到行首的第一个非空白字符
        $:跳转到绝对行尾
    行间跳转
        gg:跳转到第一行
        G:跳转到最后一行
        #gg:跳转到第#行
        #G:跳转到第#行
    翻屏
        ctrl+f:向下翻一屏
        ctrl+b:向上翻一屏
        ctrl+d:向下翻半屏
        ctrl+u:向上翻半屏命令模式下字符编辑:
| 编辑命令 | 意义 | 
|---|---|
| x | 删除光标所在处的单个字符 | 
| #x | 删除光标所在处及其向后共#个字符 | 
| xp | 交换光标所在处的字符及其后面字符的位置 | 
命令模式下删除字符:d
命令模式下d命令与其它命令组合使用:
  d$:表示删除当前光标所在位置到行尾的内容
  d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容
  d0:表示删除当前光标所在位置到绝对行首的内容
  dd:删除当前光标所在行整行
  #dd:删除包括当前光标所在行在内的#行
  D:删除当前光标所在行的内容,保留空行
  dG:从光标所在行删除到文件尾末行模式下d命令的使用:
语法:“:StartADD,EndADDd”
这里的StartADD与EndADD是指一个范围,例如:
:1,5d	//表示删除第1到第5行末行模式下范围表示方法:
| 表示方法 | |
|---|---|
| . | 光标所在当前行 | 
| $ | 最后一行 | 
| +# | 光标所在行往后#行 | 
| $-# | 倒数第#行 | 
| % | 全文 | 
命令模式下复制命令:yy
命令模式下粘贴命令:p
p:小写p
    若删除或复制的为整行内容,则粘贴至光标所在行的下方
    若删除或复制的为非整行,则粘贴至光标所在字符的后面
P:大写p
    若删除或复制的为整行内容,则粘贴至光标所在行的上方
    若删除或复制的为非整行,则粘贴至光标所在字符的前面命令模式下替换:r
R:替换模式,替换多个字符
r#:将当前光标的字符替换为#,这里的#可以是任何字符命令模式下撤销编辑:u
u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
#u:直接撤销此前的#次编辑操作
ctrl+r:还原最近一次的撤销操作
.(点):重复前一次编辑操作可视化模式: 可视化模式下可以对选取的内容进行前面讲的所有编辑操作
v:按字符选取内容
V:按矩形块(行)选取内容末行模式下文本查找:
/pattern:从上往下查找匹配的内容
?pattern:从下往上查找匹配的内容
n:从上往下查找匹配到的内容的下一条
N:从下往上查找匹配到的内容的下一条末行模式下查找并替换:s s命令只能在末行模式下使用
语法:ADDR1,ADDR2 s/pattern/string/gi
1,5 s/user/name/g		//表示把第一行到第五行的所有user替换为name末行模式下显示或取消显示行号:
set nu:显示行号
set nonu:取消显示行号