Vim编辑快捷键

光标移动
hjkl:上下左右
w:下一个单词开头
b:本单词或上一个单词开头
e:本单词或下一个单词结尾
ge:上一个单词结尾
0:行首
^:从行首开始第一个非空字符
$\ $$:行尾
gg:第一行
G:最后一行
f{char}:下个{char}所在位置
F{char}:反向移动到上一个{char}所在位置
t{char}:下个{char}的前一个字符的位置
T{char}:反向移动到上个{char}的后一个字符的位置
;:重复上一次的字符查找操作
,:反向重复上次的查找命令
选择
iw / aw 选中单词
i( / a( / ib / ab
i{ / a{ / iB / aB
i" / a"
i' / a'
i` / a
i< / a<
i[ / a[
it / at 标签
is / as 句子
ip / ap 段落操作符
可视模式可以帮助快速选中
shift+< 选中部分整体缩小缩进
shift+> 选中部分整体增加缩进
shift+= 自动排版
操作符
d(delete) 删除 dd 删除一行
c(change) 修改(删除并进入插入模式)
y(yank) 复制 yy复制一行
v(visual) 选中并进入可视模式
p 粘贴
u 撤销动作+操作符
ciw 选中单词删除并进入插入模式
yiw 选中并复制单词
diw 选中并删除单词
ci< 选中被<>包围的单词并修改
ndd/cc/yy 向下删除/修改/复制n行,包括当前行
d/c/yf{char} 删除/修改/复制到向后的char字符
d/c/y^/$ 删除/修改/复制到开头/结尾
d/cie 删除/修改整个文件
文件内全部替换
:%s#abc#123#g --注:把abc替换成123
(如文件内有#,可用/替换,:%s/abc/123/g)
(或者: %s/str1/str2/g 用str2替换文件中所有的str1)
文件内局部替换
:20,30s#abc#123 (注:把20行到30行内abc替换成123)
(如文件内有#,可用/替换,:%s/abc/123/g)
3 ) 当前行替换
: s/line/lines/g (表示将光标所在当前行的line全局替换为lines)
快速替换(推荐)
1 /替换字符串
2 cw 输入替换的字符串
3 esc , 然后n或N,
3 . (重复替换)
:%s#<abc>#def 对abc进行全字替换
切换大小写
~ 将光标下的字母改变大小写
3~ 将光标位置开始的3个字母改变大小写
g~ 改变当前行字母的大小写
gUU 将当前行的字母改成大写
guu 将当前行的字母改成小写
gUaw(gUiw) 将光标下的单词改成大写
guaw(guiw) 将光标下的单词改成小写
跳标签页
:tabnew 新建标签页
gt:下一个标签页(或 c-pagedown)
gT:上一个标签页(或 c-pageup)
2gt:下2个标签页
gd:调到定义
gh:显示帮助浮动弹窗
拷贝到系统缓冲区
"+yG
垂直打开分屏
:vsplit 1.in
分屏操作
左右分屏互换:^+w + x
调整宽度:c-w + >/<
调整高度:c-w + +/-
左右焦点切换:^+w(松开) + 方向键
_vimrc 配置文件添加如下代码:
简约版配置
filetype indent plugin on
" C++ syntax enhancement
let c_cpp_syntax_for_h = 1 " .h 文件也按 C++ 高亮(而非 C)
let g:cpp_experimental_template_highlight = 1 " 实验性模板高亮(Vim 8.2+)
" C++ Compile & Run {{{
autocmd FileType cpp nnoremap <F5> :!g++ -std=c++14 -O2 -Wall % -o %<.exe<CR>
autocmd FileType cpp nnoremap <F6> :execute '!"' . expand('%:p:r') . '.exe"'<CR>
inoremap <F2> <ESC>I//
inoremap <F1> <ESC>I<DEL><DEL><DEL>
set ts=4
set nu
set ai
set mouse=a
set shiftwidth=4
inoremap { {<CR>}<ESC>O
inoremap ' ''<ESC>i
inoremap ( ()<ESC>i
inoremap " ""<ESC>i
inoremap [ []<ESC>i
inoremap ` {}<ESC>i
inoremap <c-c> <ESC>gg "+yG
inoremap <F8> <DEL><BACKSPACE>
colorscheme slate
set guifont=Consolas:h18:cANSI
完整版配置
" Startup {{{
filetype indent plugin on
" vim 文件折叠方式为 marker
augroup ft_vim
au!
au FileType vim setlocal foldmethod=marker
augroup END
" }}}
" General {{{
set nocompatible
set nobackup
set noswapfile
set history=1024
set autochdir
set whichwrap=b,s,<,>,[,]
set nobomb
set backspace=indent,eol,start whichwrap+=<,>,[,]
" Vim 的默认寄存器和系统剪贴板共享
set clipboard+=unnamed
" 设置 alt 键不映射到菜单栏
set winaltkeys=no
" }}}
" Lang & Encoding {{{
set fileencodings=utf-8,gbk2312,gbk,gb18030,cp936
set encoding=utf-8
set langmenu=zh_CN
let $LANG = 'en_US.UTF-8'
"language messages zh_CN.UTF-8
" }}}
" GUI {{{
colorscheme zaibatsu
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set cursorline
set hlsearch
set number
" 窗口大小
set lines=35 columns=90
" 分割出来的窗口位于当前窗口下边/右边
set splitbelow
set splitright
"不显示工具/菜单栏
set guioptions-=T
set guioptions-=m
set guioptions-=L
set guioptions-=r
set guioptions-=b
" 使用内置 tab 样式而不是 gui
set guioptions-=e
set nolist
" set listchars=tab:▶\ ,eol:¬,trail:·,extends:>,precedes:<
set guifont=Consolas:h14:cANSI"Inconsolata:h12:cANSI
" }}}
" Format {{{
set autoindent
" set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set foldmethod=indent
syntax on
" }}}
" Keymap {{{
inoremap { {<CR>}<ESC>O
inoremap ' ''<ESC>i
inoremap ( ()<ESC>i
inoremap " ""<ESC>i
inoremap [ []<ESC>i
inoremap ` {}<ESC>i
inoremap <c-cr> <ESC>o
inoremap <c-c> <ESC>gg "+yG
inoremap <c-e> <ESC>ddi
inoremap <F8> <DEL><BACKSPACE>
" }}}
" C++ syntax enhancement
let c_cpp_syntax_for_h = 1 " .h 文件也按 C++ 高亮(而非 C)
let g:cpp_experimental_template_highlight = 1 " 实验性模板高亮(Vim 8.2+)
" C++ Compile & Run {{{
autocmd FileType cpp nnoremap <F5> :w <Bar> !g++ -std=c++14 -O2 -Wall % -o %<.exe<CR>
autocmd FileType cpp nnoremap <F6> :execute '!"' . expand('%:p:r') . '.exe"'<CR>
autocmd FileType c nnoremap <F5> :w <Bar> !gcc -std=c11 -Wall % -o %<.exe<CR>
autocmd FileType c nnoremap <F6> :execute '!"' . expand('%:p:r') . '.exe"'<CR>
" asm syntax enhancement
autocmd BufReadPost *.asm,*.inc :setlocal filetype=nasm

浙公网安备 33010602011771号