假Vim 模式和命令
在 假Vim 模式下,主编辑器中的大多数按键都被截获并按照类似 Vim 的方式解释。大部分支持的操作可以跟随着移动命令,或者在可视模式下执行,或者与寄存器一起工作,或者可以前缀一个重复次数。
以下章节描述了在支持的模式下模拟的命令以及它们在功能上与 Vim 的差异
- 普通模式
- 可视模式
- 命令行 (:)
- 插入和替换
有关使用 Vim 的更多信息,请参阅 Vim 网站的文档。
普通和可视模式
- 基本移动,例如
h/j/k/l
,<C-U>
,<C-D>
,<C-F>
,<C-B>
,gg
,G
,0
,^
,$
- 单词移动,例如
w
,e
,b
- 内部/a 移动,例如
ciw
,3daw
,ya{ f
和t
移动[ 和 \c ]
移动- { 和 } 段落移动
- 带有寄存器的删除/更改/剪切/粘贴
- 撤销和重做
<C-A>
和<C-X>
以十进制、八进制或十六进制格式增加或减少数字(例如128<C-A>
在或之前"0x0ff"
更改为"0x17f"
).
重复最后一个更改/search
,?search
,*
,#
,n
,N
- 大部分正则表达式语法在 Vim 中使用,除了\<
和\>
在 QRegExp 中与\b
相同@
和q
(宏录制和执行)特殊键保存为<S-Left>
- 标记
gv
移动到最后的可视选择;如果文本在其周围被编辑,则可能不同- 使用
=
、<<
、>>
进行缩进,带有移动、计数和视觉模式 - 转换为大写/小写,例如
~
、gU
、gu
i
、a
、o
、I
、A
和O
进入插入模式- 滚动窗口,如
zt
、zb
、zz
- 换行移动,如
gj
、gk
、g0
、g^
、g$
命令行模式
:map
、:unmap
、:inoremap
等:source
逐行源 vimrc 文件:substitute
在范围内替换表达式:'<,'>!cmd
通过外部命令过滤(例如,使用:%!sort
对文件中的行进行排序):<range>sort[t][!]
:.!cmd
插入外部命令的标准输出:read
:yank
、:delete
、:change
:move
、:join
:20
跳转到地址:history
:registers
、:display
:nohlsearch
:undo
、:redo
:normal
:<
,:>
set formatoptions=
,请参阅 Vim 文档中的:h fo-table
。目前支持字母:fo-j
插入模式
<C-O>
执行单个命令并返回插入模式<C-V>
插入原始字符<insert>
切换替换模式
选项
使用 :set ...
设置以下表格中列出的选项
长名 | 短名 | 参数 |
---|---|---|
autoindent | ai | |
backspace | bs | indent 、eol 、start |
blinkingcursor | bc | |
clipboard | cb | |
expandtab | et | |
hlsearch | hls | |
ignorecase | ic | |
incsearch | is | |
iskeyword | isk | 以下字符的组合:@ 、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 示例
" 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
另请参阅像 Vim 一样编辑和FakeVim。
©2024 The Qt Company Ltd. 本文件中的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 以及相应的标志是 The Qt Company Ltd 在芬兰和其他国家和地区的商标。所有其他商标均为其各自所有者的财产。