day4.2

day 4.2

vim编辑器

# vim编辑器 
什么是vim?
vim是Linux系统中一个强大的文本编辑器
vim比vi强大

vim能干嘛?
编辑配置文件
写脚本
批量修改
查找内容
语法检测高亮显示

vim视图

vim的三种工作模式

命令模式

# 命令模式
最开始使用vim打开文件时,即进入命令模式
# 跳转光标
G:(shift+g) 将光标快速跳转到文件末尾
gg:将光标跳转到文件开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
$:将光标跳转到行末
^:将贯标跳转到行首
# 复制粘贴
yy:复制光标所在行内容
Nyy:N代表数字,复制光标所在行及后N行内容
p:将复制内容,粘贴到光标所在行的下一行
P(大写):将复制内容,粘贴到光标所在的上一行
# 删除剪切
dd:剪切,删除光标所在行的内容
Ndd|dNd:剪切,删除指定行数内容
dG:删除光标所在行到文件末尾的内容
D:将光标所在字符删除一直删到行末
x:剪切光标所在字符
X:删除光标所在字符前一个字符
# 撤销替换
r:替换光标所在内容
R:批量替换
u:撤销上一步操作
Ctrl+r:恢复撤销

编辑模式

# 进入编辑模式标识,左下角-- INSER --
a:在光标所在字符之后,进入编辑模式
A:将光标跳转到行末,并进入编辑模式
o:在光标所在的下一行,进入编辑模式
O:在光标所在的上一行,进入编辑模式
i:在光标所在字符前,进入编辑模式
r:将光标移动到行首,进入编辑模式
s:删除光标所在字符,进入编辑模式
S:删除光标所在一整行内容,进入编辑模式
从编辑模式切换回命令模式
esc

末行模式

只能从命令模式进入末行模式
# 文件的保存与退出
方式一:输入:
方式二:输入/

:w		保存
:q		退出
:wq(x)	保存退出
shift + zz 保存退出
:w!		 强制保存
:q!	    强制退出
:wq!    强制保存退出
# 内容查找
/(字符):查找想要查找的字符串,输入回车会高亮显示
按n:向下查找下一个字符串
按N:向上查找下一个字符串
# 内容替换
: %s#(原内容)#(要替换的内容)#g
%:表示所有行
s:表示替换
g:表示所替换的内容
c:表示提示
举例
随便查看一个文件
[root@localhost ~]# cat 2.txt 
###ro1ot:x:0:0:root:/root:/bin/bash
##bin1:x:1:1:bin:/bin:/sbin/nologin
##dae1mon:x:2:2:daemon:/sbin:/sbin/nologin
##adm1:x:3:4:adm:/var/adm:/sbin/nologin
##lp:1x:4:7:lp:/var/spool/lpd:/sbin/nologin
##syn1c:x:5:0:sync:/sbin:/bin/sync
##shu1tdown:x:6:0:shutdown:/sbin:/sbin/shutdown
##hal1t:x:7:0:halt:/sbin:/sbin/halt

#全部替换为888
[root@localhost ~]# vim 2.txt 

  1 888888888ro1ot:x:0:0:root:/root:/bin/bash
  2 888888bin1:x:1:1:bin:/bin:/sbin/nologin
  3 888888dae1mon:x:2:2:daemon:/sbin:/sbin/nologin
  4 888888adm1:x:3:4:adm:/var/adm:/sbin/nologin
  5 888888lp:1x:4:7:lp:/var/spool/lpd:/sbin/nologin
  6 888888syn1c:x:5:0:sync:/sbin:/bin/sync
  7 888888shu1tdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  8 888888hal1t:x:7:0:halt:/sbin:/sbin/halt
 $s/#/888/g
 
 
 局部替换
   1 111111111ro1ot:x:0:0:root:fd:/bin/sd                        
  2 888888bin1:x:1:1:bin:/bin:/sbin/nologin
  3 888888dae1mon:x:2:2:daemon:/sbin:/sbin/nologin
  4 888888adm1:x:3:4:adm:/var/adm:/sbin/nologin
  5 888888lp:1x:4:7:lp:/var/spool/lpd:/sbin/nologin
  6 888888syn1c:x:5:0:sync:/sbin:/bin/sync
  7 888888shu1tdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  8 888888hal1t:x:7:0:halt:/sbin:/sbin/halt
  
  s#8#1#g
# 末行模式报错
 文件内容修改后,不保存想退出 :q,必须加!退出
 E37: No write since last change (add ! to override)
 
 针对root用户,只读文件无法修改,保存退出需要加! :wq!
 E45: 'readonly' option is set (add ! to override) 
 
 无法打开这个文件
 E212: Unable to open and write fil
# 末行模式其他功能
:set nu	显示行号
:set ai 自动缩进
:set ic 不区分大小写
:set list 查看文件中制表符等
:set no(ai|ic|no|list)

视图模式

# 块视图模式
Ctrl + v 进入块视图模式

1.x 按光标删除选中的所有字符内容

2.批量修改文件
1)按Ctrl + v进入可视块视图模式
2)移动光标
-1.按下键
-2.Ngg
-3.G
3)按 Shift + i 进入编辑模式
4)输入"字符"
5)按ESC退出编辑模

扩展选项

# 文件对比命令
diff
vimdiff

# 编辑命令
vim -o:水平分割
vim -O:垂直分割

# 切换文件
Ctrl + ww

# 编辑文件指定的行
vim + N: N代表阿拉伯数字
posted @   Gabydawei  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示