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 取消高亮