FakeVim Modes and Commands
In the FakeVim mode, most keystrokes in the main editor are intercepted and interpreted in a way that resembles Vim. Most of the supported commands can be followed by a motion command or executed in visual mode, or they work with registers, or can be prefixed with a number of repetitions.
The following sections describe the commands emulated in the supported modes and how they diverge from Vim in functionality:
- Normal
- Visual
- Command line (:)
- Insert and replace
For more information about using Vim, see Documentation on the Vim web site.
Normal and Visual Modes
- Basic movement, such as
h/j/k/l
,<C-U>
,<C-D>
,<C-F>
,<C-B>
,gg
,G
,0
,^
,$
- Word movement, such as
w
,e
,b
- Inner/a movement, such as
ciw
,3daw
, ya{ f
andt
movement[ and \c ]
movement- { and } paragraph movement
- Delete/change/yank/paste with register
- Undo and redo
<C-A>
and<C-X>
increase or decrease a number in decimal, octal, or hexadecimal format (for example128<C-A>
on or before"0x0ff"
changes it to"0x17f"
).
repeats the last change/search
,?search
,*
,#
,n
,N
- most of regular expression syntax is used in Vim except that\<
and\>
are the same as\b
in QRegExp@
andq
(macro recording and execution) special keys are saved as<S-Left>
- Marks
gv
goes to last visual selection; can differ if text is edited around it- Indentation using
=
,<<
,>>
, with movement, count, and in visual mode - to upper/lower, such as
~
,gU
,gu
i
,a
,o
,I
,A
, andO
enter insert mode- Scroll window, such as
zt
,zb
,zz
- Wrap line movement, such as
gj
,gk
,g0
,g^
,g$
Command-Line Mode
:map
,:unmap
,:inoremap
, and so on:source
sources vimrc files line-by-line:substitute
substitutes an expression in a range:'<,'>!cmd
filters through an external command (for example, sorts the lines in a file with:%!sort
):<range>sor[t][!]
:.!cmd
inserts the standard output of an external command:read
:yank
,:delete
,:change
:move
,:join
:20
goes to an address:history
:registers
,:display
:nohlsearch
:undo
,:redo
:normal
:<
,:>
set formatoptions=
, see:h fo-table
in the Vim documentation. Currently supported letters:fo-j
Insert Mode
<C-O>
executes a single command and returns to insert mode<C-V>
inserts a raw character<insert>
toggles replace mode
Options
Use :set ...
to set the options listed in the following table:
Long Name | Short Name | Arguments |
---|---|---|
autoindent | ai | |
backspace | bs | indent , eol , start |
blinkingcursor | bc | |
clipboard | cb | |
expandtab | et | |
hlsearch | hls | |
ignorecase | ic | |
incsearch | is | |
iskeyword | isk | A combination of the following characters: @ , 48-57 , _ , 192-255 , a-z , A-Z |
relativenumber | rnu | |
scrolloff | so | |
shiftwidth | sw | |
showcmd | sc | |
smartcase | scs | |
smartindent | si | |
smarttab | sta | |
startofline | sol | |
tabstop | ts | |
tildeop | top | |
usecoresearch | ucs | |
wrapscan | ws |
Vimrc Example
" highlight matched set hlsearch " case insensitive search set ignorecase set smartcase " search while typing set incsearch " wrap-around when searching set wrapscan " show pressed keys in lower right corner set showcmd " tab -> spaces set expandtab set tabstop=4 set shiftwidth=4 " keep a 5 line buffer for the cursor from top/bottom of window set scrolloff=5 " X11 clipboard set clipboard=unnamed " use ~ with movement set tildeop " mappings nnoremap ; : inoremap jj <Esc> " clear highlighted search term on space noremap <silent> <Space> :nohls<CR> " reselect visual block after indent vnoremap < <gv vnoremap > >gv " MOVE LINE/BLOCK nnoremap <C-S-J> :m+<CR>== nnoremap <C-S-K> :m-2<CR>== inoremap <C-S-J> <Esc>:m+<CR>==gi inoremap <C-S-K> <Esc>:m-2<CR>==gi vnoremap <C-S-J> :m'>+<CR>gv=gv vnoremap <C-S-K> :m-2<CR>gv=gv
See also Edit like in Vim and FakeVim.
© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.