Using FakeVim Mode

In the FakeVim mode, you can run the main editor in a manner similar to the Vim editor. To run the editor in the FakeVim mode, select Edit > Advanced > Use Vim-style Editing or press Alt+V,Alt+V.

Supported Modes and Commands

In the FakeVim mode, most keystrokes in the main editor will be 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 on 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 and t 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 example 128<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
  • @ and q (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, and O 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 provides very basic line-by-line sourcing of vimrc files
  • :substitute substitutes an expression in a range
  • :'<,'>!cmd filters through an external command (for example, sorts the lines in a file with :%!sort)
  • :.!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
  • :<, :>

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 following options:

  • autoindent
  • clipboard
  • backspace
  • expandtab
  • hlsearch
  • ignorecase
  • incsearch
  • indent
  • iskeyword
  • scrolloff
  • shiftwidth
  • showcmd
  • smartcase
  • smartindent
  • smarttab
  • startofline
  • tabstop
  • tildeop
  • wrapscan

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
  

Mapping FakeVim Commands

To map commands entered on the FakeVim command line to actions of the Qt Creator core, select Tools > Options > FakeVim > Ex Command Mapping.

To map user commands to keyboard shortcuts, select Tools > Options > FakeVim > User Command Mapping. The user command mapped to the shortcut is executed by FakeVim as if you were typing it (as when replaying a macro).

Specifying FakeVim Options

To make changes to the Vim-style settings, select Tools > Options > FakeVim > General.

"FakeVim options"

To preselect the indentation settings specified for the text editor, select Copy Text Editor Settings. To preselect the Qt coding style, select Set Qt Style. To preselect a simple indentation style, select Set Plain Style. You can then change any of the preselected settings.

To use a Vim-style color scheme, select Tools > Options > Text Editor > Fonts & Color. In the Color Scheme list, select Vim (dark).

Quitting FakeVim Mode

To quit the FakeVim mode, unselect Tools > Options > FakeVim > Use FakeVim or press Alt+V,Alt+V.

You can temporarily escape FakeVim mode to access the normal Qt Creator keyboard shortcuts like Ctrl-R for Run by pressing , first.