参数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. Swoole 源码分析之 WebSocket 模块

    首发原文链接:Swoole 源码分析之 WebSocket 模块 大家好,我是码农先森. Swoole 源码分析之 WebSocket 模块 引言 WebSocket 是一种在单个 TCP 连接上进行 ...

  2. Vue cli之传递数据

    1.父组件的数据传递给子组件 // 父组件 <Menu title="来自Home的数据" :clickNum="num"></Menu> ...

  3. windows安装mysql8(5分钟)

    1.下载 MySQL https://dev.mysql.com/downloads/mysql/ 下载完成后,解压缩到你的目录里. 2.配置 MySQL 的配置文件 创建一个文件,名称为:my.in ...

  4. 震惊!docker镜像还有这些知识你都知道吗

    震惊!docker镜像还有这些知识你都知道吗? 镜像搜索 语法 [root@hmm docker-hello]# docker search -h Flag shorthand -h has been ...

  5. vant做城市列表

    vant: https://youzan.github.io/vant/#/zh-CN/ 安装 cnpm i -S vant 按需加载配置 # 在 babel.config.js 中配置 module ...

  6. INFINI Labs 产品更新 | 修复 Easysearch 跨集群复制索引同步问题,Gateway 内存异常增长等问题

    INFINI Labs 产品又更新啦~,本次更新主要对 Easysearch.Gateway.Console.Agent 等产品功能进行优化和相关 Bug 修复,解决了内存异常增长等问题,以下是详细说 ...

  7. pandas、spark计算相关性系数速度对比

    pandas.spark计算相关性系数速度对比 相关性计算有三种算法:pearson.spearman,kenall. 在pandas库中,对一个Dataframe,可以直接计算这三个算法的相关系数c ...

  8. windows server 2016 远程桌面连接,发生身份验证错误。 要求的函数不受支持

    远程桌面连接,发生身份验证错误. 要求的函数不受支持 客户端:WIN7 服务端:windows server 2016 在被远程的机器上-远程设置中-取消"仅允许运行使用网络级别身份验证的远 ...

  9. JAVA发送邮件报错: 535 Error: authentication failed, system busy。

    解决方法: 1.设置 -> 微信绑定 -> 开启安全登录 -> 生成新密码 2.使用生成的新密码替换邮箱登录密

  10. Mysql int类型字段插入表达式,值为0或1

    CREATE TABLE `t_user` ( `uId` INT(11) DEFAULT NULL, `uName` VARCHAR(20) DEFAULT NULL, `uPwd` VARCHAR ...