day12 vim编辑器
day12vim编辑器
什么是vim
- vim是Linux中一个强大的文本编辑器
- vim功能比vi更加强大
为什么要使用vim
- 编辑文件
- 写脚本
- 批量修改
- 查找内容
- 语法检测高亮显示
vim的三种工作模式
命令模式
- 最开始使用vim命令打开文件时,即进入命令模式
- 跳转光标
G:(shift+g)将光标快速跳转到文件的最后一行
gg:将光标跳转到文件的开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
$:(shift+4)将光标跳转到行末
^:(shift+6)将光标跳转到行首
复制粘贴
yy:复制光标所在行的内容
Nyy:(YNY)N代表阿拉伯数字,复制光标所在行及后N行内容
p:将复制的内容,粘贴到光标所在行的下一行
P:将复制的内容,粘贴到光标所在行的上一行
删除剪切
dd:剪切,删除光标所在行的内容
Ndd|dNd:剪切,删除指定行数的内容
dG:删除光标所在行到文件末尾所有行的内容
D:将光标所在字符删除一直删到行末
x:剪切,删除光标所在字符
X:剪切,删除光标所在字符的前一个字符
撤销替换
r:替换光标所在的字符
R:批量替换字符,替换光标所在字符及后面所有字符,直到按ESC结束
u:撤销上一步操作
Ctrl+r:恢复撤销
编辑模式(输入模式)
# 进入编辑模式的标识,左下⻆ -- INSERT --
a:在光标所在字符之后,进入编辑模式
A:将光标跳转到行末,并进入编辑模式
o:在光标所在行的下一行(另起一行)进入编辑模式
O:在光标所在行的上一行,进入编辑模式
i:在光标所在字符之前进入编辑模式
I:将光标移动到行首,并进入编辑模式
s:删除光标所在字符,并进入编辑模式
S:删除光标所在行一整行内容,并进入编辑模式ESC
从编辑模式切换命令模式
# Esc
末行模式(底行模式)
文件的保存和退出
# 进入末行模式 只能从命令模式中进入
# 方式一: 输入:
# 方式二: 输入/
:w 保存
:q 退出
:wq 保存并退出
:w! 强制保存
:q! 强制退出
:wq! 强制保存并退出
跳转行号
# 命令模式中,跳转行号 Ngg
Ngg:N代表阿拉伯数字,将光标跳转到指定的行
内容的查找和替换
# 内容查找
/string:查找想查找的字符串,输入回车后会高亮显示
按n:向下查找下一个字符串
按N:向上查找上一个字符串
# 内容替换
:原内容/要替换的内容/
:/root/hjx/ # 把root替换成hjx
:s/root/hjx/ # s:查找并替换
:s/root/hjx/g # g:全局(默认只替换第一行内容)
:%s/root/hjx/g # %:代替所有行
# 一般用: %s###g
把 /sbin/nologin 替换成 /bin/bash
%s/\/sbin\/nologin/\/bin\/bash/g
# %s#/sbin/nologin#/bin/bash#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 files
末行模式下其他功能
# 显示行号
简写:set nu
# 自动缩进
:set ai
# 不区分大小写
:set ic
#查看文件中的结尾和制表符,特殊符号
:set list
# 取消设置
:set no(nu|ai|ic|list)
vim视图模式
试图模式,是属于命令模式之下的一种模式
- 块试图模式
ctlr+v:进入可块视图模式
-- VISUAL BLOCK --
# 按照光标删除选中所有字符 x
# 批量修改文件
按ctrl+v进入可块视图模式
移动光标
按方向键
Ngg
G
按shift+i进入编辑模式
输入#
按Esc退出编辑模式
- 行视图模式
shift+v:进入行视图模式
vim扩展选项
# 文件对比命令:diff (不推荐)
# 文件对比命令:vimdiff (推荐)
#vim 同时编辑多个文件
-o:水平分割
-O:垂直分割
# ctrl+ww:切换文件
# 编辑文件指定行:vim+N
N代表阿拉伯数字
思维导图
3.30练习题
(要求写出步骤,如果有不懂得,为什么不看看zls的博客呢)
1.请把/etc/passwd 复制到/root/目录下,并重命名为test.txt
✗ 16:38:12 root@localhost.localdomain,10.0.0.158:~ # cp -a /etc/passwd /root/test.txt
2.用vim打开test.txt并设置行号
vim test.txt
shift+: set nu
3.分别向下、向上翻两页
向下:ctrl+f
向上:ctrl+b
4..把光标移动到第10行
10gg
5.让光标移动到行末,再移动到行首
行末:$
行首:^
6.移动到test.txt文件的最后一行
shift+g
7.搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索
/string
8.把从第一行到第三行出现的root 替换成--alex--
1,3s#root#--alex--#g
9.还原上一步操作
u
10.复制第2行并粘贴到11行下面,再还原一下
先2gg跳转光标到第二行,yy复制,11gg跳转光标11行,小写p粘贴,再u还原
11.把光标移动到20行,删除本行,再还原
先20gg跳转光标到第二十行,dd删除,u撤回
12..删除从5行到10行的所有内容,再还原
5gg跳转光标第5行,5dd删除光标下面5行,u撤回
12.复制从11行到15行的内容并粘贴到8行上面···
11gg跳转光标到11行,5yy复制11-15行,8gg光标到第八行,大写的P粘贴第八行上面
13.把13行到18行的内容移动文件的尾部
13gg,5dd,GG光标跳转尾部,小写p
14.光标移动到首行,把/sbin/nologin改成/bin/bash
gg光标移动首行,将光标移到/sbin/nologin后面,X删除/sbin/nologin,R直接输入/bin/bash
15.在第一行下面插入新的一行,并输入"# Hello Word!"
gg o 输入Hello Word!
16.保存文档并退出
:wq
18.如何查看磁盘的block
df -h
19.如何查看磁盘的inode
df -hi
选择题
20.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件的类型为( A )
-rw-r--r--. 1 root root 970 Nov 5 2018 yum.conf
A.普通文件
B.硬链接
C.符号链接
D.目录
21.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件的类型为( D )
drwxr-xr-x. 2 root root 187 Nov 5 2018 yum.repos.d
A.普通文件
B.硬链接
C.符号链接
D.目录
22.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件的类型为( C )
lrwxrwxrwx. 1 root root 14 Mar 25 20:05 system-release -> centos-release
A.普通文件
B.硬链接
C.符号链接
D.目录
21.下面哪个Linux命令可以一次显示一页内容?( C )
A. pause
B. cat
C. more
D. grep
22.用"rm -i"系统会提示什么来让你确认( B )
A.命令行的每个选项
B.是否真的删除
C.是否有写的权限
D.文件的位置
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!