Vim编辑快捷键

B站视频

光标移动

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
posted @ 2025-10-07 09:24  飞花阁  阅读(81)  评论(0)    收藏  举报
//雪花飘落效果