oeasy教您玩轉vim - 64- # 參數argument

 

參數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 - 藍橋雲課)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章