vi与vim编辑器

一、vi 与vim
1.所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在;很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的crontab, visudo, edquota 等指令);vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法癿正确性,方便程序设计;因为程序简单,编辑速度相当快速。
vi基本分为三个模式:
一般模式:以vi打开一个文件直接进入一般模式,可进行删除、复制、粘贴等操作,无法编辑文件内容
编辑模式:按下“a,A,i,I,r,R”任意一个字母进入编辑模式,在界面左下方出现“insert”或“replace”要回到一般模式,按下“esc”即可。
命令行模式:输入“、/ ?”将光标移到最下面一行,提供查找数据的操作,读取、保存、大量替换字符、离开vi、显示行号等。
例:编辑f2,按i可以插入,编辑完内容按“esc”在地下一行输入“:wq”
在这里插入图片描述
2.快捷键操作
1)h或“home”光标向左移一个字符
l或“end”光标向右移一个字符
j或“pgdn”光标向左移一个字符
k或“pgup”光标向左移一个字符
2)Ctrl+f 向下翻动一页 Ctrl+d向下翻动半页
Ctrl+b向上翻动一页 Ctrl+u向上翻动半页
3) 0或者“home”移动到行首,“^”移动到行首第一个非空白字符,$ 或者“end”,移动到行尾
1G或gg跳到文件的行首,G跳到文件的行尾
4)/word向下查找"word"字符串 n向下查找word 字符串
?word向上查找“word”字符串 N向上查找word 字符串
5)dd删除一整行,dw删除当前单词,de从一个单词当前位置往后删除这个单词,db从一个单词当前位置往前删除这个单词,ndd删除光标所在的向下几行,nyy复制光标所在的向下几行
x在一行字向后删除一个字符,X向前删除一个字符
p将以复制的数据在光标下一行粘贴,P将以复制的数据在光标上一行粘贴
d1G 删除光标所在到第一行的所有数据,y1G 复制光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据, yG 复制光标所在到最后一行的所有数据
d0删除光标所在处到该行的最前面一个字符,y复制光标所在处到该行行首的所有数据
d$ 删除光标所在处到该行的最后一个字符 , y$ 复制光标所在处到该行行尾的所有数据
:1,10 co 5 复制 1-10 行到第 5 行后面
6) i从光标所在处插入,I当前所在行的第一个非空格符开始插入
a当前光标所在的下一个字符处开始插入,A当前光标所在的最后一个字符处开始插入
o当前光标所在行的下一行处开始插入O当前光标所在行的上一行处开始插入
r替换光标所在的那一个字符一次,R一直替换光标所在的文字
7) :w —编辑的数据写入硬盘文件
:w!—文件为只读时,强制写入文件
:wq—保存后离开
:q!—强制离开不保存文件
:q—离开vi
ZZ—文件没有改动不保存离开,文件改动保存离开
:w filename —编辑的数据保存为另一个文件
:r filename—在编辑的数据中,读入另一个文件数据
:e filename 在当前文件直接打开一个新的文件 进行编辑
:n1,n2 w filename 将n1到n2的内容保存成filename文件
:! command 暂时离开vi到命令行模式执行command的显示结果
: set nu 显示行号;:set nonu 取消行号
8)
在这里插入图片描述

例:vi /etc/passwd
s /old /new 当前行中查找到的第一个字符“old”替换为“new”
1)将第一行的root替换为tom
: s /root/tom
在这里插入图片描述
2) : s /old/new/g 当前行查找到的所有字符串“old”替换为“new”
将第六行的sync全部替换为root
6G跳到第六行 : s /sync/root/g
在这里插入图片描述
  1. : s.old/new/g在行号“#,#”范围内替换所有的“old”为“new” 第一到六行nologin替换为login
    :1,6 s /nologin/login/g
    在这里插入图片描述
    4):% s/old/new/g在这整个文件范围内 替换所有的“old”为“new”
    :% s/nologin/login/g
    在这里插入图片描述
    5) : s /old/new/c 对每个替换动作提示用户进行确认
    : s /root/tom/c
    在这里插入图片描述
    9)以单词为单位移动
    w: 移至下一个单词的词首
    e: 跳至当前或下一个单词的词尾
    b: 跳至当前或前一个单词的词首
    10)显示忽略或区分字符大小写
    :set ignorecase
    :set ic
    :set noic
    11)设定自动缩进
    :set autoindent
    :set ai
    :set noai
    12)查找到的文本高亮显示或取消
    :set hlsearch
    :set nohlsearch
    13)语法高亮
    :syntax on
    :syntax off

猜你喜欢

转载自blog.csdn.net/yangxiaoyan12/article/details/83004859