参数argument

回忆上次

  • 上次了解了 窗口 window
  • 窗口是用来装缓冲buffer
  • buffer是在内存里面加载的硬盘文件
  • 窗口的切分

    • :sp[lit] 水平切分
    • :vsp[lit] 垂直切分
  • 窗口的切换

    • ctr-w再k切换到当前窗口上面的窗口
    • ctrl-w再j切换到当前窗口下面的窗口
    • ctrl-w再h切换到当前窗口左面的窗口
    • ctrl-w再l切换到当前窗口右面的窗口
  • 窗口的隐藏和全屏

    • :hid[e]可以隐藏当前窗口

      • 隐藏的windowbuffer不保存
      • 除非autowrite设置了
    • :on[ly]可以全屏当前窗口

      • 其他的窗口都进入:hide状态
  • laststatus 可以设置状态栏
  • terminal 可以开启终端
  • 上次主要就是window,还挺方便
  • 尤其多文件操作
  • 这个还有什么可玩的吗?

总结简化出窗口的全键盘操作

  • 新建与退出

    • ctr-w再s 相当于:sp[lit] 上下分割
    • ctrl-w再v 相当于:vsp[lit] 左右分割
    • ctrl-w再q 相当于:q[uit]
    • ctrl-w再o 相当于on[ly]全屏
  • 多窗口操作

    • 所有窗口都有
    • 全退出:qall
    • 全保存:wall
    • 全保存并退出:wqall
    • 强制退出:qall!
  • 选择当前窗口

    • ctrl-w再h 选择左边的窗口
    • ctrl-w再j 选择下边的窗口
    • ctrl-w再k 选择上边的窗口
    • ctrl-w再l 选择右边的窗口
  • 调整宽度

    • ctrl-w再= 所有窗口尽量高度宽度都相等
    • ctrl-w再- 当前窗口高度降低
    • ctrl-w再+ 当前窗口高度升高
    • ctrl-w再< 当前窗口宽度降低
    • ctrl-w再> 当前窗口宽度升高

同时打开三个文件

  • 首先man vi查到打开三个文件的方式

    • vi o1 o2 o3

      • 命令是vi
      • o1 o2 o3是参数列表( arguments list)
      • 列表里有3个参数 argument
      • 我们可以在 :ar[gs] 查看所有参数

操作参数列表

  • arga

    • 添加到参数列表
    • argument add
    • :arga o4

      • 添加 o4 到参数列表
      • :args 可以看见 o4 进入了参数列表
    • :arga ~/.vimrc 添加一个实际存在的文件

      • :args 可以看见 .vimrc 进入了参数列表
      • ls 可以看到他也进入了 buffer list
      • b .vimrc 可以把当前 window 切换到 .vimrc 这个 buffer
  • :argd

    • 从参数列表删除
    • argument delete
    • argd o4

      • 从参数列表删除o4
      • :args
      • 可以看见 o4 从参数列表消失
    • argd /home/shiyanlou/.vimrc

      • 从参数列表删除 .vimrc
      • :args
      • 可以看到.vimrc从参数列表消失
      • 但是 buffer 还在
  • 参数argument和缓存buffer之间什么关系?

参数argument和缓存buffer

  • arguements是在打开vim时候打开的参数 arguement 文件列表

    • 一开始打开的文件进入参数列表
    • 在内存中加载成为一个个缓冲buffers
    • 也进入缓冲列表 :buffers
  • 这个时候再新打开文件:e o5

    • o5会进入buffers list
    • 但是不会进入arguments list
  • 如果想让他进入的话

    • 就需要:arga o5
  • 想在arguments list删除的话

    • 就需要:argd o5
  • 想在buffers list删除的话

    • 可以bd3或者bd o2
  • 参数 argument 列表和缓存 buffer 列表 关系

    • 他们两个除了开始的时候是一致
    • 后来完全是两个列表
    • 需要分别维护
  • 我们为什么理清这些东西呢

    • 因为以后可能会有针对 缓冲buffers 文件列表的批处理
    • 也会有针对 参数arguments 文件列表的批处理

多参数多窗口

  • 参数多于1的时候可以直接打开多个窗口

    • 开关是-o
    • vi -o o1 o2 o3
    • 这样就可以横向打开3window,每个argument对应一个
  • 或者vi -O o1 o2 o3

    • 纵向打开3个文件

vim中打开多个文件

  • 首先在terminal做准备

    • ls -lah > oeasy.txt
    • cp oeasy.txt o2z.txt
    • vi
    • :arga *.txt
  • 有没有进入参数argument列表

    • :args
  • 有没有进入缓冲buffer列表?

    • :buffers
  • 如果:arga */*.txt

    • 可以加载一层目录下面的txt文件
  • 退出vim之后
  • 再来观察

    • e *.txt不能执行
    • e 不支持通配符
    • e o3z.txt可以把文件加载到buffer list
    • 但不进入argument list

直接打开

  • 多个文件作为argments list参数列表
  • terminal中运行

      - `sudo find / -mindepth 3 -maxdepth 4 -name passwd`
    - 可以用`sudo`权限找到所有3层目录到4层目录中
    - 名字含有`passwd`的文件列表
  • 这个文件列表可以交给vi作为argments list参数列表

    • sudo find / -mindepth 3 -maxdepth 4 -name passwd | xargs vi
  • 这样打开之后

    • argments list 参数列表
    • buffers list 缓冲列表
    • 都自动加载好了
  • 如果有不需要的

    • 可以:bd4删除缓冲buffer
    • :argd filename来删除参数argument
  • 如果有需要添加的

    • :e filename 添加缓冲buffer
    • :arga filename 添加 参数argument

总结

  • 我们这次参数列表 arguments list
  • 所谓参数列表指的是 vim 打开的 参数列表
  • 参数会加载到内存中成为 buffer
  • 参数的控制

    • :arga filename 添加 参数
    • 此操作支持*可以打开多个文件
    • :argd filename来删除参数
    • :args 查询参数列表
  • 缓冲的控制

    • :bd filename来删除缓存
    • :e filename来打开缓存
    • ls可以列出缓存列表
  • 可以在terminal中配合find来找到文件

    • 然后作为参数给vim
    • sudo find / -mindepth 3 -maxdepth 4 -name passwd | xargs vi
  • 精准地控制了参数列表或者缓冲列表
  • 这两个可以怎么用呢?
  • 下次再说

[Github地址] (GitHub - overmind1980/oeasyvim: 这是oeasy制作的的一套关于vim的教程 可以在 https://www.lanqiao.cn/teacher/courses/2840 做实验 邀请码FJWYIMGB 本教程从0基础开始,到精通vim配置,和高级命令。希望能让vim是你的开发更高效。)

[Gitee地址] (overmind1980/oeasyvim)

[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)

oeasy教您玩转vim - 64- # 参数argument的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  5. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  6. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  8. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  9. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  10. oeasy教您玩转linux010107那啥在哪 whereis

    回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:

随机推荐

  1. 鸿蒙HarmonyOS实战-Stage模型(卡片数据交互)

    一.卡片数据交互 HarmonyOS卡片数据交互是指在基于鸿蒙操作系统的设备上,卡片界面之间进行数据的传输和交互. HarmonyOS的卡片是一种轻量级的应用界面,可以在设备的屏幕上显示信息和提供操作 ...

  2. etcd MVCC 存储结构及流程

    什么是 MVCC MVCC 是 Multi-Version Concurrency Control 的缩写,即多版本并发控制.它是一种并发控制的方法,用于在数据库系统中实现事务的隔离性.MVCC 是一 ...

  3. docker 监控数据整合

    安装docker #开启内核转发 echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf sysctl -p wget -O /etc/yum.repo ...

  4. Java 中 hashCode 和 equals 方法是什么?它们和 == 各有什么区别?

    在 Java 中,hashCode 和 equals 方法都是 Object 类的方法.它们的作用分别如下: hashCode 方法返回对象的哈希码,用于支持基于哈希表的集合,如 HashMap.Ha ...

  5. 采用Dapr 的IoT 案例

    CNCF 发布了一篇Dapr 的IoT 案例:Tempestive uses Dapr and K8s to track IoT messages | CNCF.Tempestive 是一家物联网解决 ...

  6. 《Android开发卷——实时监听文本框输入》

       在实际开发中,有时候会让用户发布一些类似微博.说说的东西,但是这个是有限制长度的,除了在文本输入框限制长度外,还要在旁边有一条提示还能输入多少个字的"友好提示". 1.文本框 ...

  7. __proto__和[[Prototype]]的区别

    __proto__和[[Prototype]]的区别 先看下面这一段代码: const obj1 = Object.create(null); // very plain object obj1.__ ...

  8. FEL - Fast Expression Language

    开源好用的表达式计算语言FEL,可惜了官网文档不在国内,我来copy个过来. Fel是轻量级的高效的表达式计算引擎 Fel在源自于企业项目,设计目标是为了满足不断变化的功能需求和性能需求. Fel是开 ...

  9. 01-Python介绍、安装与入门

    Python介绍 关于Python Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言. 解释型:Python将代码边解释边运行,而不是像C一样编译.类似解释型的语言还有JAVA. ...

  10. LLM技术全景图:技术人必备的技术指南,一张图带你掌握从基础设施到AI应用的全面梳理

    LLM技术全景图:技术人必备的技术指南,一张图带你掌握从基础设施到AI应用的全面梳理 LLM 技术图谱(LLM Tech Map)是将 LLM 相关技术进行系统化和图形化的呈现,此图谱主要特点是&qu ...