GVim vimrc配置

⌚Time: 2025-06-23 23:02:00

👨‍💻Author: Jack Ge

三个模式

Vim 中,核心的三大模式是:普通模式(Normal Mode)插入模式(Insert Mode)命令行模式(Command-Line Mode)。它们是 Vim 高效操作的基础。以下是详细解析:


1. 普通模式(Normal Mode)

示例
在普通模式下按 dd → 删除当前行。


2. 插入模式(Insert Mode)

示例
i 进入插入模式,输入文字后按 <Esc> 退出。


3. 命令行模式(Command-Line Mode)

示例
输入 :wq → 保存并退出。


总结表

模式 进入方式 核心用途
普通模式 <Esc> 或启动 Vim 移动光标、文本操作、命令触发
插入模式 i, a, o 自由输入文本
命令行模式 : 执行保存、退出、替换等命令
可视模式 v, V, Ctrl + v 文本块选择操作
替换模式 R 覆盖原有文本

杂项

set nu "行号显示
syntax on "开启语法显示
set nobackup "不产生备份文件
set noswapfile "不产生swp文件
set noundofile "不产生undo文件
set guifont=Consolas:h22 "设置字体
set showmatch "开启括号匹配
colorscheme evening "自定义配色方案"evening"
set nowrap "禁止自动换行

启动窗口配置

启动时自动切换当前目录,垂直分割窗口,左侧是文件浏览器,右侧是新缓冲区

autocmd VimEnter * cd D:\ProjectSpace\Vim | lefta vsplit | Explore | wincmd l | enew
+---------------------+---------------------+
|                     |                     |
|  文件浏览器         |  空白编辑缓冲区     |
|  (Netrw)            |  (未命名)           |
|                     |                     |
+---------------------+---------------------+

调整窗口占比70%。调整的是当前创建的窗口。在右侧窗口创建命令之后执行就是左右3:7的比例。

autocmd VimEnter * execute "vertical resize " . (&columns * 70 / 100)

也可以写成左侧窗口30%占比方式。

autocmd VimEnter * cd D:\ProjectSpace\Vim | lefta vsplit | Explore | execute "vertical resize " . (&columns * 30 / 100) | wincmd l | enew

文件浏览器设置

let g:netrw_liststyle = 3   " 启用树形显示(1=列表,2=详细列表,3=树形)
let g:netrw_banner = 0      " 隐藏顶部横幅
let g:netrw_browse_split = 4 "文件浏览器默认右侧窗口打开文件

文件浏览器文件命令表格

操作 效果
<Enter> 默认在当前窗口打开(覆盖文件浏览器)
o 水平拆分窗口打开(下方)
v 垂直拆分窗口打开(右侧)
p 预览模式(不切换焦点)
t 新标签页打开
let g:netrw_browse_split = 4 <Enter> 在右侧窗口打开(推荐)

文件浏览器中:

Enter 打开文件或展开目录。

R 刷新列表。

切换窗口

快捷键 作用
Ctrl + w h 切换到 左侧 窗口
Ctrl + w j 切换到 下方 窗口
Ctrl + w k 切换到 上方 窗口
Ctrl + w l 切换到 右侧 窗口

记忆技巧

快速循环切换窗口 | 快捷键 | 作用 | |--------|------| | Ctrl + w w | 按 顺序 循环切换窗口 | | Ctrl + w W | 按 逆序 循环切换窗口 |

使用 :wincmd 命令

在命令模式下输入:

:wincmd h  " 切换到左侧窗口
:wincmd j  " 切换到下方窗口
:wincmd k  " 切换到上方窗口
:wincmd l  " 切换到右侧窗口

适用于脚本或自定义映射。

快捷键映射

注意快捷键映射有可能会替换VIM原来的快捷键功能

ctrl+s保存

"插入模式下ctrl+s映射为命令行模式的:w保存命令,<CR> 代表回车 a在光标后插入
inoremap <C-s> <Esc>:w<CR>a
"普通模式下ctrl+s映射为命令行模式的:w保存命令,<CR> 代表回车
noremap <C-s> :w<CR> 

ctrl+u撤销

"插入模式ctrl+u映射为普通模式的u+a命令
inoremap <C-u> <Esc>ua
"普通模式ctrl+u映射为u命令
noremap <C-u> u

ctrl+r重做

"插入模式ctrl+r映射为普通模式ctrl+r
inoremap <C-r> <Esc><C-r>a
"普通模式ctrl+r本来就是重做

编译

进入命令模式,输入下面的命令编译运行当前c/cpp文件并且运行

!g++ % -o %<.exe && %<.exe

占位符含义

占位符 含义 示例(文件为 main.cpp
% 当前完整文件名 main.cpp
%< 去掉扩展名的文件名 main
%:p 文件的完整绝对路径 /home/user/project/main.cpp
%:h 文件所在目录 /home/user/project

自动保存后编译

:w | !g++ % -o %<.exe && %<.exe

项目文件编译makefile

手动编写makefile文件,之后命令模式

:!mingw32-make