读写文件
回顾上节课内容🤔
-
命令行的光标管制
- 方向键 ⬅️️➡️️️ 能够管制左右挪动
- shift+⬅️️➡️️️依照 word 左右挪动光标
- ctrl+b 到结尾 begin
- ctrl+e 到结尾 end
- ctrl+w 向前删除一个 word
- ctrl+u 删除到结尾
-
历史命令的遍历
- 方向键↑️↓️️️
-
命令行的历史记录
:history
:his -5
:his s
-
进入命令历史记录编辑
- 命令行状态下 ctrl+f
- 或者失常模式下 q:
- 抉择、编辑、回车
-
应用寄存器
- 命令行状态下 ctrl+r
- 而后输出寄存器的名称就能够了
- 命令模式能够读写文件吗?🤔
关上文件
-
咱们个别关上文件的办法是在
shell
外面vi oeasy.txt
-
如果咱们间接进入了
vi
还能够再关上文件吗?- 能够!
- 用
:e oeasy.txt
- 就能够关上
oeasy.txt
e
意味着edit
-
不分明的话
- 能够
:h :e
看到手册!
- 能够
-
如果咱们不晓得要关上文件的名字
- 能够执行
:!ls
看到相应的名字
- 能够执行
- 能够关上目录么?
- 试试!👊
关上目录
- 间接
:e .
-
能够关上当前目录
.
代表当前目录:pwd
能够看到当前目录- 就是运行
vi
的目录
- 高低方向键抉择咱们须要编辑的文件
- 而后回车开始编辑这个文件
netrw 插件
netrw 插件
-
右上角看到插件名称和版本
- netrew
- v165
:h netrw
常用命令
-
向上一层D
DeleteR
Renames
sort 切换模式x
非凡 在 File Manager 中关上
执行命令
- 有些命令没有快捷键
-
新建文件夹
!mkdir oeasy
-
新建文件
e oeasy.rs
读取文件
- 曾经关上了一个缓存文件
oeasy.txt
-
咱们能够用
:r
进行读取- 比方有个
oeasy.css
在当前目录下 - 咱们能够
:r oeasy.css
- 比方有个
-
这样是插入整个文件,咱们也能够管制范畴
:1,3r oeasy.css
就是只插入oeasy.css
的1-3
行- 还能够把命令的后果插入以后文件
:r !ls
- 这会让
!ls
的输入后果流到以后光标地位
- 简单的也能够
:r !ls -lah
-
也能够管制
range
:4,9r !ls -lah
- 只
read
输入后果的4-9
行
-
:h :r
- 查问 r 命令的帮忙手册
- 手册通知咱们
r
意味着read
固定列宽
:h gq
具体管制
# 先更新源
sudo apt update
#fortune 能够输入谚语 在 <linux> 教程那局部有介绍
sudo apt install fortune
#应用 fortune 生成谚语
fortune -l
#进入 vi
:r !fortune -l
:set nopaste
-
:set textwidth=30
- 管制文字宽度为 30
-
gq3k
- 本行和上面三行
gq
管制宽度
- 本行和上面三行
- 那能够再扭转宽度么?
扭转宽度
:set textwidth=50
gq8k
应用管道
# 先安软件 fortune、boxes、lolcat 在 <linux> 教程那局部有介绍
sudo apt install fortune boxes catlol
#应用 fortune 生成谚语
fortune -l
#把谚语通过管道送入 boxes
fortune -l | boxes -d cat
#改成黑白
fortune -l | boxes -d cat | lolcat
#进入 vi
:r !fortune -l | boxes -d cat
扩大命令区
- 能够设置
:set cmdheight=3
增大命令区高度
- 的确能够减少命令区高度
- 不过,这并不到底
-
回顾一下
-
失常模式下能够应用 Q 进入 Ex 命令行模式
- 而后
:visual
切换回来
- 而后
-
或者失常模式下 q: 进入搜寻命令的模式
- 搜到后,批改好,回车执行
-
写文件
-
咱们先查
:h :w
:w
意味着write
:w o3z.txt
把以后文件内容写到o3z.txt
-
加上{range}
:3,8w o3z.txt
把第 3 到第 8 行写到o3z.txt
-
如果
o3z.txt
不存在怎么办?:w! o3z
先建设文件再写入- 强制写
- 然而如果曾经存在的文件会造成笼罩
-
想要追加 append 应该如何
:w o3z.txt >>
把内容追加写入到o3z.txt
面对解体
-
vi oeasy.txt
- 写上一些货色
- 而后等一小段时间
- 并不保留
-
新开一个终端
ls -a .oeasy.txt.*
- 发现已存了一个.oeasy.txt.swp
-
把原来的终端关上
- 相当于原来的终端解体了
- 因为第一个终端没有保留文件
oeasy.txt
不存在
-
vi oeasy.txt
- 会揭示我尽管没有
oeasy.txt
- 然而替换文件
swp
是有的 - 方才没存到文件的货色
- 这样能够复原
- 会揭示我尽管没有
-
vi -R oeasy.txt
- 这样能够复原
多人编辑
- 一个终端关上并编辑
oeasy.txt
- 另一个终端也想关上并编辑
oeasy.txt
- 这个时候有一些细节
-
倡议
- 察看两个文件的工夫
- 用较新的文件
- 应防止相似的情景
-
如果须要同时写一个文件
- 倡议用
git
之类的 版本控制工具
- 倡议用
总结
- 咱们这次钻研了文件读写
-
关上是
e
,edit:e oeasy.txt
:e .
-
读是
:r
,read:1,3r o2z.txt
范畴读:4,9r !ls -lah
读 shell 命令运行后果
-
写是
:w
,write:w o3z.txt
间接写:3,8w o3z.txt
范畴写:w o3z.txt >>
追加写:w! o3z
强制写
- 命令行能够进行批量替换么?🤔
- 下次再说 👋
[Github 地址] (https://github.com/overmind19…)
[Gitee 地址] (https://gitee.com/overmind198…)
[蓝桥实验楼 邀请码 FJWYIMGB] (https://www.lanqiao.cn/course…)