-O split
-o tabs
+linenumber
+/match
Outside vim, we can do some cool magic to open vim in a way we want to use it.
I’m not talking about fancy flags to alter how vimrc, init.vim, or
init.lua will be loaded, more about how to open vim at the right spot.
Buffer
We can open multiple files, all specified files will be loaded as a buffer. No magic and a lot of people don’t even know they opened multiple files.
# Open vim with two files.
❯ vim afile bfile
# Now if we list buffers we can see both of them.
:ls
1 %a "afile" line 1
2 "bfile" line 0
Split
While I’m working on something and I don’t have a vim already open, the best way to start vim for me is to open the file and the corresponding test file in a nice even split.
❯ vim -O afile bfile
With this, we end up with a 50-50 vertical split, left side afile and right
side bfile.
With -o we get the same but horizontal.
Tabs
Some people like opening tabs and switch between tabs. I did not meet a case
when it was useful for me, but it does not mean it’s useless. With -p we can
open specified files as tab pages.
Command
Maybe one of the lesser known options is the + (and -) which executes a
command on start-up. We can specify more than one.
+: Executes after configuration and the first file is loaded.-: Executes before any configuration.
Why is it good? We can do a lot of things with it, but maybe the most useful would be to specify a line number, or open the file at the fist match for an expression.
# Open file and place the cursor at line 33.
❯ vim file +33
# Open file and place the cursor to the first match on errro to fix this typo.
❯ vim file +/errro
We can go to the extremes with using substitution and quit vim.
❯ vim afile +"%s/old/new/g" +wq
But please use sed -i for that instead.