参数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. 机器学习策略篇:详解理解人的表现(Understanding human-level performance)

    理解人的表现 人类水平表现这个词在论文里经常随意使用,但现在告诉这个词更准确的定义,特别是使用人类水平表现这个词的定义,可以帮助推动机器学习项目的进展.还记得上个博客中,用过这个词"人类水平 ...

  2. 如何查看Linux的系统信息?

    在Linux服务器上,可以通过几个简单的命令来查看操作系统的详细信息. 1.使用uname命令获取操作系统基本信息,包括内核名称.网络节点名称.内核版本.架构等. uname -a 2.查看`/etc ...

  3. Understanding Swift’s value type thread safety - 代码分析(一)

    结构体并不代表线程安全,swift在此上未做保证 func testScenarioA() throws { var store: Int = 0 DispatchQueue.concurrentPe ...

  4. mac http&git代理配置

    git代理清除git config --global --unset http.proxygit config --global --unset https.proxy 输出代理:$echo $htt ...

  5. NOIP模拟90(多校23)

    T1 回文 解题思路 原来 \(n^3\) 可以过 500 ... 先枚举一下路径长度,对于同一路径长度点数最多是 \(n\) 个,我们可以接着枚举从 \((n,m)\) 出发的路径长度相同的点. 然 ...

  6. android端http请求重发问题定位过程

    昨天生产系统上报出一个问题:用户做一次扫码交易,出现了两条交易记录.幸好支付渠道对支付码有限制只成功了一笔,没有出现多扣钱的问题.现在我们要排查一下,为什么做一次操作会出现两条交易记录.我们的后台服务 ...

  7. Redis 常用的数据结构简介与实例测试【Redis 系列二】

    〇.都有哪些数据结构? Redis 提供了较为丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合).Zset(有序集合). 随着 Redis 版本的 ...

  8. JavaScript语法形式3 外链式

      定义 script 标签,在 script 标签中,通过src属性导入外部js文件,并且加载执行外部js文件中国的程序代码内容 因为代码执行顺序问题,一般定义 script 标签 在 body标签 ...

  9. a标签的title属性 换行

    使用 title 属性,可以让鼠标悬停在超链接上的时候,显示该超链接的文字注释. <a href="#" title = "123">超链接< ...

  10. SD-WAN中二层组网与三层组网的区别

    前言 随着企业网络需求的不断增长和变化,SD-WAN作为一种现代网络技术,为企业提供了更灵活.高效的网络解决方案.在SD-WAN中,二层组网和三层组网是两种常见的部署模型,它们有着各自的特点和适用场景 ...