乐趣区

关于vim:oeasy教您玩转vim-51-读写文件

读写文件

回顾上节课内容🤔

  • 命令行的光标管制

    • 方向键 ⬅️️➡️️️ 能够管制左右挪动
    • 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 Delete
  • R Rename
  • s sort 切换模式
  • x 非凡 在 File Manager 中关上

执行命令

  • 有些命令没有快捷键
  • 新建文件夹

    • !mkdir oeasy
  • 新建文件

    • e oeasy.rs

读取文件

  • 曾经关上了一个缓存文件 oeasy.txt
  • 咱们能够用 :r 进行读取

    • 比方有个 oeasy.css 在当前目录下
    • 咱们能够 :r oeasy.css
  • 这样是插入整个文件,咱们也能够管制范畴

    • :1,3r oeasy.css 就是只插入 oeasy.css1-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…)

退出移动版