52 lines
1.9 KiB
Markdown
52 lines
1.9 KiB
Markdown
---
|
|
title: "super powers of the arg list"
|
|
date: 2020-01-11T19:44:49+01:00
|
|
draft: false
|
|
snippet_types: ["vim", "search"]
|
|
---
|
|
|
|
Vim help:
|
|
|
|
> The argument list \*argument-list* \*arglist*
|
|
|
|
> If you give more than one file name when starting Vim, this list is remembered
|
|
> as the argument list. You can jump to each file in this list.
|
|
|
|
If you have been using vim a while you will be comfortable with the buffer list but often it's
|
|
full of random files, terminal sessions, and other none file buffers, this is where arglist comes
|
|
in. It starts out as list of files that were initially opened when the vim session was launched ex:
|
|
|
|
```shell
|
|
nvim ./a.txt ./b.txt ./c.txt
|
|
```
|
|
|
|
would start vim with three buffers in both arglist and buffer list. You can cycle through the
|
|
arglist with files via **:next**, **:prev**. Further files opened will not be automatically added to
|
|
the arglist so it's essentially a clean sub list of the buffer list. Helpful commands include
|
|
**:rew** to jump back to the first file you edited this session. Also **:all** which opens all
|
|
buffers of the arglist in splits.
|
|
|
|
Where I find the arglist particularly powerful is for mass file edits. Here is an day to day
|
|
example:
|
|
|
|
1. get files in questing into the arglist either pipe files to vim or from in vim override initial
|
|
arglist.
|
|
- from cli
|
|
```shell
|
|
$ rg -i 'snippet_typ.*vim' --files-with-matches | xargs nvim
|
|
```
|
|
|
|
- from inside vim (harder because no autocomplete)
|
|
```vim script
|
|
:args `rg -i 'snippet_typ.*vim' --files-with-matches`
|
|
```
|
|
|
|
1. now lets change all the posts front-matter to draft = true
|
|
```vim script
|
|
:argdo %s/draft: false/draft: false/g | update
|
|
```
|
|
thats it all the files have been modified and saved. Its best to use this kind of thing with
|
|
version control so during an interactive git add you can verify each modification.
|
|
|
|
For more complex edits I load files into the list a similar way then make quick manual and move to
|
|
next file with **:wn** which also saves.
|