Home / Notes / vi & vim Notes
========================
1. CVS commit the current file:
:!cvs commit -m '[commit message]' %
2. Execute a command and read its input into the current
buffer:
:r![command]
3. Hard wrap text to 80 columns:
a. Set the text width to 80 columns:
:set textwidth=80
or
:set tw=80
b. To format the entire file, go to the start of the file (:gg),
and then:
:gqG
To format the current line only:
:gq$
To format the current paragraph only:
:gq}
c. Alternatively, use :%!fold -w [col]
Sources: http://mark.stosberg.com/Tech/text_editor_review.html#vim
https://stackoverflow.com/questions/3033423/
https://vim.works/2019/03/16/wrapping-text-in-vim/
4. Split a window and edit two files
a. :sp or <CTRL>ws (horizontal split, new window on the top
:vs or <CTRL>vw (vertical split, new window is on the left)
b. <CTRL>ww (move to new window)
c. :edit [file]
To resize a split: <CTRL>w+ (increase size)
<CTRL>w- (decrease size)
To close a split: :only or :q or <CTRL>wo
Sources: https://vim.works/2019/03/03/split-windows-in-vim/
https://vi.stackexchange.com/questions/64/
5. Spell checking the current file:
:!aspell -c %
6. Enable a custom dictionary for additional words for spelling mode:
$ mkdir -p ~/.vim/spell
$ touch ~/.vim/spell/en.utf-8.add
From: https://codeyarns.com/tech/2015-09-30-how-to-make-spellfile-in-vim.html
7. Spelling mode shortcuts:
]s move to the next misspelled word
[s move to the previous misspelled word
z= list suggested spellings for a misspelled word
zw add selected word to the custom dictionary
From: https://www.ncartron.org/vim-spellcheck-cheat-sheet.html
8. Yank multiple lines
[num lines]Y
[num lines]yy
For example, '3yy' would yank the current line and the next two lines.
From: https://vi.stackexchange.com/questions/27148
https://superuser.com/questions/234317
9. Copy or cut the next word:
yiw Copy / yank next word
ciw Cut
From: https://stackoverflow.com/questions/7797068/
10. Delete all text to the end of the file:
dG From current line
:[line number],$d From a particular line
11. Replace all occurrences of 'old' with 'new':
:%s/old/new/g
12. Execute a script being edited without quitting vim:
:!%
From: https://www.tumfatig.net/2024/execute-current-edited-script-in-vim/
12. Navigation:
0 move to the first column of the current line
^ move to the first non-space/tab character of the current line
$ move to the last character of the current line
w move to the next word, exclusive of punctuation
W move to the next word, inclusive of punctuation
b move back one word, exclusive of punctuation
B move back one word, inclusive of punctuation
e move to the end of the current word, exclusive of punctuation
E move to the end of the current word, inclusive of punctuation
H move to the top of the current screen
M move to the middle of the current screen
L move to the bottom of the current screen
1G (or gg) move to the first line of the document
G move to the last line of the document
CTRL-F move forward one screen
CTRL-B move back one screen
From: https://vermaden.wordpress.com/2024/09/23/ghost-in-the-shell-part-8-use-vi-editor/
https://m4xshen.dev/posts/vim-basic-commands
https://www.thegeekdiary.com/basic-vi-commands-cheat-sheet/
https://www.ungerhu.com/jxh/vi.html
https://wiki.arahant.com/Wiki.jsp?page=Vi
https://levelup.gitconnected.com/vim-is-not-about-speed-88968ae4283c?gi=2317b00898a3