Vim Tips Wiki
Explore
Main Page
All Pages
Community
Interactive Maps
Community portal
To do
FANDOM
Fan Central
BETA
Games
Anime
Movies
TV
Video
Wikis
Explore Wikis
Community Central
Start a Wiki
Don't have an account?
Register
Sign In
Sign In
Register
Vim Tips Wiki
1,649
pages
Explore
Main Page
All Pages
Community
Interactive Maps
Community portal
To do
Editing
Short mappings for common tasks
Back to page
Edit
Edit source
View history
Talk (0)
We recommend that you
log in
before editing. This will allow other users to leave you a message about your edit, and will let you track edits via your
Watchlist
.
Creating an account
is quick and free.
Anti-spam check. Do
not
fill this in!
__NOTOC__ {{TipImported |id=979 |previous=978 |next=981 |created=2005 |complexity=basic |author= |version=7.0 |rating= |category1=Searching |category2=Usage }} This tip presents suggestions for useful mappings. To qualify, each mapping should be ''short'' and should be useful for a ''common'' task. Other mappings belong in another tip. This is a collection of unrelated mappings. You probably can't use all of them "as-is" at the same time. Assign your own left-hand-side as you see fit. ==Visual mode blockwise indent== This keeps the current visual block selection active after changing indent with '<' or '>'. Usually the visual block selection is lost after you shift it, which is incredibly annoying. <pre> vmap > >gv vmap < <gv </pre> ==Record into register 'q', playback with 'Q'== Set this map: <pre> nnoremap Q @q </pre> For quick recordings just type '''qq''' to start recording, then '''q''' to stop. You don't have to worry about the name this way (you just named the recording 'q'). Now, to play back the recording you just type '''Q'''. This will redefine the standard meaning of 'Q', but all that does is enter "Ex" mode which I can live without. ==Copy== To copy text to the end-of-line, you can press <code>y$</code> or you can use the following and press <code>Y</code> instead. This mapping sets up <code>Y</code> to be consistent with the <code>C</code> and <code>D</code> operators, which act from the cursor to the end of the line. The default behavior of <code>Y</code> is to yank the whole line. <pre> nnoremap Y y$ </pre> ---- To copy an entire line, and paste it before the current line: <pre> nnoremap _ ggY``P </pre> Use a count to specify the line number (default is line 1). For example, <code>12_</code> would copy line 12 to before the current line. ==Delete== In normal mode, you can press <code>D</code> to delete all characters from the cursor to end-of-line. The following mapping allows Ctrl-Delete to do the same, in insert mode: {{help|i_CTRL-\_CTRL-O}} <pre> inoremap <C-Del> <C-\><C-O>D </pre> ==Search== It's easier to press Space than <code>/</code> for searching: <pre> nmap <Space> / nmap <C-Space> ? </pre> ---- Highlight text on the screen matching that under the cursor: Press Ctrl-k to start; each subsequent Ctrl-l matches one more character. Uses marks "x" and "y", and register "z". <pre> map <C-k> mx map <C-l> lmy"zy`x/<C-r>z<CR>`y </pre> ---- Search for word under cursor with [[Searching|* or #]] in new window: <pre> nmap <C-W>* <C-W>s* nmap <C-W># <C-W>s# </pre> ==Quickfix== <pre> " map <F3> and <S-F3> to jump between locations in a quickfix list, or " differences if in window in diff mode nnoremap <expr> <silent> <F3> (&diff ? "]c" : ":cnext\<CR>") nnoremap <expr> <silent> <S-F3> (&diff ? "[c" : ":cprev\<CR>") </pre> ==Movement== <pre> " remap j and k to scroll by visual lines nnoremap j gj nnoremap k gk </pre> Another option is to leave 'j' and 'k' at their default and instead map the cursor keys for use "precision" scrolling by visual lines. Plus this works in insert and visual select modes. <pre> imap <up> <C-O>gk imap <down> <C-O>gj nmap <up> gk nmap <down> gj vmap <up> gk vmap <down> gj </pre> ==Miscellaneous== You can use a more easily accessed key to enter command-line mode to speed your editing, for example: <pre> nnoremap <Space> : </pre> For those with non-QWERTY keyboards, for example a Brazillian ABNT2 keyboard, you can easily avoid built-in Vim commands in your mapping: <pre> nnoremap Γ§ : </pre> ==Comments==
Summary:
Please note that all contributions to the Vim Tips Wiki are considered to be released under the CC-BY-SA
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Help
(
view source
)
Template:Navigation
(
view source
)
Template:TipImported
(
view source
)
Follow on IG
TikTok
Join Fan Lab