Using FakeVim Mode

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 > 高级 > Use Vim-style Editing or press Alt+V,Alt+V .

Supported Modes and Commands

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 文档编制 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 ,譬如 ~ , gU , gu
  • i , a , o , I , A ,和 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 )
  • :<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
  • :< , :>

Insert Mode

  • <C-O> executes a single command and returns to insert mode
  • <C-V> inserts a raw character
  • <insert> toggles replace mode

Options

使用 :set ... to set the options listed in the following table:

Long Name Short Name 自变量
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

							

Mapping FakeVim Commands

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

To map user commands to keyboard shortcuts, select 工具 > 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 工具 > 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 工具 > Options > 文本编辑器 > Fonts & Color . In the Color Scheme list, select Vim (dark) .

Quitting FakeVim Mode

To quit the FakeVim mode, unselect 工具 > 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 运行 by pressing , first.