10 cool Vim editor tips users should know

1. Opened a file with vim but does not have permission to write, forgot to do sudo? No worries, you can still write to the file if user has sudo rights.

:w !sudo tee %

2. Revert document to 5min back. Opposite of “:earlier” is “:later”.

:earlier 5m

3. Execute external command and dump output in current window.

:.! [command]

Add current date in the fileopened.

:.! date

4. Delete commands

diw to delete the current word.

di( to delete within the current parenthesis.

di” to delete the text between the quotes.

More can be found at

:help text-objects

5. Turn vim into hex editor. Open file with “-b” to avoid any damage.

:%!xxd

Revert:

:%!xxd -r

6. Searching

/pattern       - search forward for pattern
?pattern       - search backward
n              - repeat forward search
N              - repeat backward
*              - search for word currently under cursor
g*             - search for partial word under curso

Some variables available to set:

:set ignorecase - case insensitive
:set smartcase  - use case if any caps used 
:set incsearch  - show match as search proceeds
:set hlsearch   - search highlighting

7. Variables

:set            - shows vars different from defaults
:set all        - shows all values
:set foo?       - shows the value of foo
:set foo+=opt   - add opt to the value w/o changing others
:set foo-=opt   - remove opt from value
:set foo&       - reset foo to default value
:setlocal foo   - only the current buffer

:verbose set foo?   - tells you where it was last set

8. Replace

Replace occurrences of 'foo' with 'bar' in the whole file

:%s/foo/bar/g

Replace occurrences of ‘foo’ with ‘bar’ in the current line

:s/foo/bar/g

Replace everything with confirmation first, note the ‘c’ below

:%s/foo/bar/gc

Replace words exactly matching ‘foo’ with confirmation first

:%s/\<foo\>/bar/gc

Replace everything with case insensitive and confirmation first, note the ‘c’ and ‘I’ below

:%s/foo/bar/gic

9. Create horizontal and vertical windows. ‘-o’ for horizontal and ‘-O’ for vertical windows.

vim -o file1 file2

vim -O file1 file2

10. Get help

:help ‘incsearch’

:help :substitute