參數argument
回憶上次
- 上次瞭解了 窗口
window
- 窗口是用來裝緩衝
buffer
的 buffer
是在內存裏面加載的硬盤文件-
窗口的切分
:sp[lit]
水平切分:vsp[lit]
垂直切分
-
窗口的切換
- ctr-w再k切換到當前窗口上面的窗口
- ctrl-w再j切換到當前窗口下面的窗口
- ctrl-w再h切換到當前窗口左面的窗口
- ctrl-w再l切換到當前窗口右面的窗口
-
窗口的隱藏和全屏
-
:hid[e]
可以隱藏當前窗口- 隱藏的
window
中buffer
不保存 - 除非
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]
全屏
- ctr-w再s 相當於
-
多窗口操作
- 所有窗口都有
- 全退出
: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
- 這樣就可以橫向打開
3
個window
,每個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 - 藍橋雲課)