vi/vim编辑器

gedit 图形编辑器

vim三种工作模式
1、命令模式
2、插入模式 编辑模式
3、末行模式 尾行模式

vim的命令:

vim [选项] 文件...
-o 上下分栏编辑多个文件
-O 左右分栏编辑多个文件
文件切换: ctrl+w+w

# vim /etc/passwd
--光标的移动(不是特别常用)
h:向左移动

j:向下移动

k:向上移动

l:向右移动

 

--行内跳转
[Home]:快速移动到光标所在行的行首 ^(Shift+6)
[End]:快速移动到光标所在行的行尾 $(Shift+4)


--行间跳转
gg:快速回到文本首行

ngg:跳转到第n行 n为数字

6gg 等同于 6G

G:快速回到文本的末行


--删除
x:删除光标所在位置的字符

X:删除光标前面的一个字符

d(delete):删除、剪切

dw:删除从光标位置开始的一个单词

d0和d^:删除光标前一个字符到此行行首

D和d$:删除从当前字符开始到此行行尾

dd:删除当前行

ndd:删除从当前行开始的n行 5dd

dgg:删除光标所在行到文本的行首

dG:删除光标所在行到文本的最后一行

 

--复制
y:

yw:复制一个单词

yy:复制当前行
nyy:复制从当前行开始的n行 n为数字


--粘贴
p:paste
y+p 实现的是复制粘贴的功能
d+p 实现的是剪切粘贴的功能
P:粘贴到光标所在行的上一行
p:粘贴到光标所在行的下一行
--撤销
u: undo


--重做
Ctrl-r :对撤销的撤销操作。


--替换
r:替换光标所在位置的一个字符
R:替换从光标所在位置开始的一串字符,直到按下[Esc]结束替换


编辑模式:a i o A I O
i:在光标前插入
I:在光标所在行的第一个字符前插入内容
a:在光标后插入
A:在行尾插入
o:在光标所在行的下一行插入新行
O:在光标所在行的上一行插入新行

末行模式: s,w,r,q,d,y
:n 光标定位到n行 n表示数字
:y 复制
:3y 复制文件的第3行
:3,8y 复制文件的第3行到第8行
:起始行,结束行
:d 删除
:5,7d 删除文件的第5行至第7行
:q : 退出
:q! :强制退出(不保存退出)
:wq :保存退出
:wq! :强制保存退出
:w : 保存
:w 文件路径 另存为
:r : 将其他文件内容读入到本文件中光标所在行的下一行
:r 文件路径
:set ts=4 : 设置table键的宽度为4个空格
:set nu : 显示行号
:set nonu :取消显示行号

vim的查找:
/关键字:正向查找
n:向下查找
N:向上查找
:noh 取消高亮

vim的替换:

s :s/// :s### :s??? :s@@@
%s /\/sbin\/nologin/666/g //支持转义符
:s/old/new/ 用new替换old
例子:
:s/root/R00T/ //将光标所在行的第一个root替换为R00T
:s/old/new/g 全局替换,替换一整行中所有匹配到的内容
例子:
:s/root/R00T/g //将光标所在行的所有root替换为R00T
:%s/old/new/g 全篇替换,替换整篇文章中所有匹配到的old为new
%表示所有行
例子:
:%s/root/R00T/g //将文件中的所有root替换为R00T
:开始行,结束行s/old/new/g 将从开始行到结束行之间的old替换为new
例子:
:8,15s/0/00/g //将文件中的第8行到第15行的所有0替换成00
:15,19s/^/#/ 将文件中的第15行到第19行的行首添加#符号
:15,19s/^#// 将文件中的第15行到第19行的行首#符号删除
:15,19s/$/@/ 将文件中的第15行到第19行的行尾添加@符号
:15,19s/@$// 将文件中的第15行到第19行的行尾@符号删除

vim的配置文件
/etc/vimrc 所有用户生效
~/.vimrc 只对当前登陆用户生效
# vim /etc/vimrc
在最后一行添加一行 set nu,这样打开每个文件都显示行号,即时生效

可视化模式:
ctrl+v 支持块选 选中后可执行的操作:复制:y 删除:d
小应用:批量注释 :
1. 将光标定位到需要批量注释的首(尾)行
2. ctrl+v,使用向上或向下选中所有需要注释的行
3. 按I进入插入模式,插入#
4. Esc+Esc

可视
进入:v
可视块
进入:ctrl v
可视行
进入:V


命令模式:
行内跳转:
行首: Home, ^
行尾: End, $
行间跳转:
ngg: n是一个数字,表示将光标定位到第n行的行首,默认是1
G: 将光标定位到末行的行首
复制: y
复制行: nyy:从光标所在行开始,复制n行,默认是1
ygg:复制从行首到光标所在的行
yG:复制从光标所在的行到行尾
复制单词: yw:复制单词(注意将光标定位到词首)
删除(剪切):
删除行及单词: d 基本用法同复制
删除行: ndd:从光标所在行开始,删除n行,默认是1
dgg:删除从行首到光标所在的行
dG:删除从光标所在的行到行尾
删除单词: dw:删除单词(注意将光标定位到词首)
d^:删除光标之前所有的内容
d$:删除光标及之后所有的内容
删除单个字符: x 删除光标所在位置的字符
粘贴: p
粘贴行: 将所复制或剪切的行复制到光标所在位置的下一行
粘贴单词:将所复制或剪切的单词粘贴到光标所在位置的后面
撤销: u
替换:
替换单个字符: r
替换连续字符: R

插入模式:
i:在光标前插入
I:在本行的第一个非空白字符前插入
a:在光标后插入
A:在行尾插入
o:在光标所在行的下一行插入新行
O:在光标所在行的上一行插入新行

尾行模式:
1).查找关键词: /关键词,n将光标定位到下一个关键词,N将光标定位到上一个关键词
2).命令: s,y,d,r,w,q
s:替换
:s /old/new/ 将光标所在行的第一个old替换成new
:s /old/new/g 将光标所在行的所有old替换成new
:%s /old/new/g 将整个文件中所有old替换成new
y:复制
:ny 复制第n行
:n,my 复制第n行到第m行
d:删除 (用法同y)
r:读入文件
:r filename 将文件读入到光标所在行的下面
w:写入文件
:w 保存修改
:w filename 将本文件内容写入到另一个文件
:n,mw filename 将本文件的第n行至第m行内容写入到另一个文件
q:退出
:q 不保存退出
:q! 强制不保存退出
:wq 保存退出
3).设置(可以写入到/etc/vimrc文件中永久生效)
:set nu 显示行号
:set nonu 不显示行号
:set ts=4 设置table键的宽度为4个空格
:nohl 取消高亮

 

posted @ 2020-10-27 16:20  湖北香蕉王  阅读(172)  评论(0)    收藏  举报