Vim-args-系列指令
当用 vim 打开多个文件时, file name list 会存储在 argument list 中, 可以通过这个 list 在多个文件中跳转.
注意区分 buffer list (其可以用 :buffers
查看)
所有 argument list 中存在的文件都会存在于 buffer list 中. (反之不一定)
所有 window 有一个共有的 global argument list, 但也可以通过 arglocal
给一个 window 创建一个 local argument list.
args
打印出当前的 argument list.
1 |
|
定义新的 argument list
1 |
|
如:
1 |
|
此时 argument list 为:
1 |
|
且当前编辑的 buffer 变为 hello.
argadd
添加一个 name 到当前的 argument list:
1 |
|
[count]
为添加到 argument list 中的位置. 若忽略, 则放在当前 arg 之后.
示例, 当前为 b
:
1 |
|
注意其不会检测 duplicates, 可以配合 :argdedupe
使用:
1 |
|
argdedupe
移除 argument list 重复的项:
1 |
|
argedit
添加一个 name 到当前的 argument list 并编辑 (若已存在则直接编辑):
1 |
|
相当于先 :argadd
在 :edit
.
argdelete
利用 pattern 匹配删除
从 argument list 中删除匹配 pattern
(%
, *
等) 的项:
1 |
|
如:
1 |
|
利用 index 范围删除
1 |
|
如:
1 |
|
argument
编辑指定 count
位置的 file:
1 |
|
next
编辑 [count]
next file:
1 |
|
Next
编辑 [count]
previous file:
1 |
|
previous
同 Next
.
1 |
|
rewind
编辑 argument list 中的第一个 file:
1 |
|
first
同 rewind
:
1 |
|
last
编辑 argument list 中的最后一个 file:
1 |
|
wnext
写入当前 file, 编辑下一个 file:
1 |
|
wNext
写入当前 file, 编辑前一个 file:
1 |
|
wprevious
同 wNext
:
1 |
|
arglocal
创建一个 global argument list 的复制
1 |
|
但并不会开始编辑.
定义一个新 argument list 给当前 window
1 |
|
argglobal
将 global argument list 应用到当前 window
1 |
|
定义一个新的 global argument list
1 |
|
argsdo
对范围内的 argument list 中的所有文件应用命令:
1 |
|
如:
1 |
|
:update
writes 所有被修改过的文件.
argc()
1 |
|
(winid
指 window id)
返回 argument list 中 files 的数量.
不提供 {winid}
时, 使用当前 window 的 argument list.
当 {winid}
为 -1
时, 使用 global argument list.
当 {winid}
is invalid 时, 返回 -1
.
argv()
1 |
|
返回 argument list 中 {nr}th
file. (指定位置)
当不提供 {nr}
或 {nr}
为 -1
时, 返回整个 List.