参数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. 【winform】【Socket】实现你画我猜一:核心功能开发

    我认为得核心:是把客户端画的图画实时传递给其他的客户端.   我的思路是: 1.GDI+绘图加鼠标事件,实现客户端绘图. 2.每记录鼠标有效绘图10个点,就把这10个点通过socket传递给服务器. ...

  2. jsonp原理详解——终于弄明白了JSONP

    什么是JSONP? 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,着用自己的方式来阐释一下这个问题,看看是否有帮助. 1.一个众所周知的问题, ...

  3. OSG编译安装-MSVC

    OSG编译安装-MSVC 1.准备工作 1.1 环境 Windows10 Qt5.14.2 Microsoft Visual Studio2017 cmake-3.20.4-windows-x86_6 ...

  4. nonatomic 带来的线程安全问题

    一.结论 一个对象对外暴露的读写属性,如果这个属性在多个线程中访问,一定会出现crash. 因此对外暴露的属性一定要考虑线程安全问题. 二.看下面的代码 下面的代码一定会crash,除非obj是ato ...

  5. 继承,super,重写,多态,抽象,接口

    继承,super,重写,多态,抽象,接口 继承 extends 用于表示两个类之间的继承关系,继承是OOP的四大特性之一,他允许一个类(称之为子类或派送类) 继承另一个类(称之为父类或基类)的变量和方 ...

  6. centos7下利用qemu搭建arm模拟器

    1 目的 在centos7下使用qemu搭建arm模拟器. 参考博客: centos下利用qemu搭建arm模拟器 - 寒水司天 - 博客园 (cnblogs.com) 从零使用qemu模拟器搭建ar ...

  7. mvn 打包报错:no compiler is provided in this environment

    最近公司换了电脑,系统也从 win7 升级到 win11,开发环境都重新安装了一遍,然后在 idea 用mvn 执行打包命令 mvn clean package 报错: no compiler is ...

  8. 解决使用`npm install`或`npm i`命令之后报`Unexpected token in JSON at position`错误的问题

    网上大多数的教程都是以下几个步骤挨个试一遍,包括 stackoverflow 上也是这么说的 删除node_modules文件夹 删除package-lock.json文件 强制清除npm缓存 npm ...

  9. promise async 和 await

           // promise 是专门用于解决回调地狱的         //         专门用于执行异步程序时使用promise语法         // 语法形式:         // ...

  10. kettle从入门到精通 第十课 kettle switch/case、过滤记录、数值范围

    1.java代码里面有if else .switch-case等流程控制,kettle也有相应控件.下图便用到switch/case.过滤记录.数值范围控件. 2. switch/case步骤 1)步 ...