How do I make half-page scrolling move through wrapped lines instead of jumping over them in Neovim?
set smoothscroll
By default, Neovim's half-page scroll commands (, , , ) count movement by text lines, not screen rows.
Search Vim Tricks
Searching...set smoothscroll
By default, Neovim's half-page scroll commands (, , , ) count movement by text lines, not screen rows.
set completeopt+=popup
Adding popup to completeopt makes Vim display extra information — such as function signatures or documentation — for the currently highlighted completion it
set colorcolumn=+1
The colorcolumn option highlights one or more vertical columns to help keep lines within a length limit.
set foldlevelstart=N
When Vim opens a file with folds enabled, it uses the foldlevelstart option to decide how many fold levels to open automatically.
:packadd! matchit
Vim's % command jumps between matching brackets by default.
plugins #navigation #plugins #text-objects #matching #normal-mode
:ce
Vim has three built-in ex commands for text alignment that most users never discover: :ce (center), :ri (right-justify), and :le (left-justify).
:set pumblend=10
Neovim's 'pumblend' option controls the pseudo-transparency of the insert-mode completion popup menu (and other floating windows).
:set concealcursor=nvi
When 'conceallevel' is 2 or higher, Vim hides syntax markers—turning raw Markdown like bold into visual bold or collapsing LaTeX commands.
:set spellfile={path}
By default, when you use zg to add a word to Vim's spell-check dictionary, it is saved in a file in your Vim data directory.
:{range}center {width}
Vim has built-in Ex commands for text alignment: :center, :right, and :left.
command-line #ex-commands #formatting #editing #command-line
nnoremap <nowait> {key} {action}
The flag on a mapping tells Vim not to delay waiting for a longer key sequence.
]' and ['
The ]' and [' motions let you traverse every lowercase mark set in the current buffer without needing to remember which registers you used.
:delmarks!
Marks accumulate as you work — ma, mb, mc and so on record positions for later jumps.
:set cmdheight=0
Setting cmdheight=0 in Neovim 0.
:let @/ = @"
After yanking text, you can promote it directly to the search register with :let @/ = @".
zA
The zA command toggles the fold under the cursor together with all nested sub-folds in one keystroke.
gq{motion}
The gq{motion} operator reformats text to fit within Vim's textwidth setting, inserting hard line breaks where lines are too long.
:normal! {cmds}
:normal {cmds} executes normal-mode keystrokes from the command line, but it honors your custom key mappings — so remapped keys produce unexpected results in
command-line #ex-commands #macros #normal-mode #command-line
qqq then qq{commands}@qq
A recursive macro in Vim calls itself at the end of its body, repeating automatically until one of its commands fails.
:echo getregtype('a')
The getregtype() function returns the motion type of a register's content — whether it was yanked characterwise, linewise, or as a visual block.