Created
August 24, 2025 06:26
-
-
Save JaHIY/af124617de640919fe6281e50b557e8e to your computer and use it in GitHub Desktop.
minimal vimrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" ==================== 核心跨平台配置 ==================== | |
set nocompatible " 禁用 Vi 兼容模式 | |
set fileencodings=utf-8,gbk,cp936,bigucs,latin1 " 中文编码兼容 | |
" === 平台差异化设置 === | |
if has('win32') " Windows 专属配置 | |
source $VIMRUNTIME/mswin.vim " 启用 Windows 快捷键(Ctrl+C/V) | |
behave mswin " 鼠标模式适配 Windows | |
endif | |
" ==================== 界面与显示 ==================== | |
syntax enable " 语法高亮 | |
set background=dark " 深色背景(Monokai 风格要求) | |
colorscheme slate " 使用内置 slate 方案(最接近 Monokai 的深灰背景) | |
" 自定义高亮组(覆盖内置颜色,逼近 Monokai 风格) | |
highlight Comment ctermfg=249 guifg=#A6A6A6 " 注释:浅灰(原 Monokai 风格) | |
highlight Constant ctermfg=215 guifg=#FD971F " 常量:亮橙色 | |
highlight Identifier ctermfg=81 guifg=#66D9EF " 变量名:青色 | |
highlight Function ctermfg=148 guifg=#A6E22E " 函数名:亮绿色 | |
highlight Statement ctermfg=197 guifg=#F92672 " 关键词:玫红色 | |
highlight PreProc ctermfg=141 guifg=#AE81FF " 预处理器:紫色 | |
highlight Special ctermfg=208 guifg=#FF8C00 " 特殊符号:橙红色 | |
highlight String ctermfg=186 guifg=#E6DB74 " 字符串:黄色 | |
" 界面增强(统一 GVIM/终端) | |
highlight CursorLine ctermbg=235 guibg=#3c3d37 " 当前行背景:深灰 | |
highlight Search ctermbg=58 guibg=#6A6A00 " 搜索高亮:暗黄色背景 | |
highlight Visual ctermbg=238 guibg=#49483E " 选中区域:灰绿色背景 | |
" 终端兼容性优化 | |
if !has("gui_running") | |
set t_Co=256 " 强制 256 色模式 | |
set termguicolors " 若终端支持真彩色则启用 | |
endif | |
" GUI 专属设置 | |
if has("gui_running") | |
if has('win32') | |
set guifont=Consolas:h14 " Windows 字体 | |
elseif has('unix') | |
set guifont=Monospace\ 14 " Linux 字体 | |
endif | |
set guioptions-=T " 隐藏工具栏 | |
set guioptions-=m " 隐藏菜单栏 | |
set guicursor+=a:blinkon0 " 禁用光标闪烁 | |
set smoothscroll " 平滑滚动(Windows Vim 9.1+) | |
endif | |
" ==================== 编辑行为优化 ==================== | |
set autoindent " 自动缩进继承 | |
set smartindent " 智能缩进 | |
set tabstop=4 " Tab 显示为 4 空格 | |
set shiftwidth=4 " 缩进步长 | |
set expandtab " Tab 转空格(避免混用) | |
set nowrap " 禁用自动换行 | |
set backspace=indent,eol,start " 跨行删除支持 | |
set hlsearch " 高亮搜索结果 | |
set incsearch " 实时搜索 | |
set ignorecase " 搜索忽略大小写 | |
set smartcase " 含大写时区分大小写 | |
set nobackup " 禁用备份文件 | |
set noswapfile " 禁用交换文件 | |
set autoread " 外部修改时自动重载 | |
set lazyredraw " 减少复杂操作重绘(Linux 扩展) | |
set ttyfast " 终端快速渲染(Linux 扩展) | |
" ==================== 界面显示 ==================== | |
set number " 显示行号 | |
set relativenumber " 相对行号 | |
set cursorline " 高亮当前行 | |
set showcmd " 显示命令输入 | |
set laststatus=2 " 状态栏常显 | |
set title " 窗口标题显示当前文件名 | |
set scrolloff=5 " 滚动保留上下文 | |
" ==================== Vim 9.1 新特性 ==================== | |
set virtualedit=block " 虚拟光标支持 | |
autocmd BufEnter * set virtualedit+=onemore " 行末虚拟列 | |
" ==================== 快捷键映射 ==================== | |
let mapleader="," " Leader 键 | |
" 通用保存/退出 | |
nnoremap <Leader>w :w<CR> " Leader+w 保存 | |
nnoremap <Leader>q :q<CR> " Leader+q 退出 | |
nnoremap <Leader>x :x<CR> " Leader+x 保存并退出 | |
" 搜索高亮控制 | |
" nnoremap <silent> <Esc> :nohlsearch<CR> " Esc 取消高亮 | |
nnoremap <silent> <Leader>h :nohlsearch<CR> " Leader+h 取消高亮 | |
" 窗口导航 | |
nnoremap <C-h> <C-w>h | |
nnoremap <C-j> <C-w>j | |
nnoremap <C-k> <C-w>k | |
nnoremap <C-l> <C-w>l | |
" 文件浏览器与执行 | |
nnoremap <F2> :Lexplore<CR> " F2 开关文件浏览器 | |
if has('win32') | |
nnoremap <F5> :!%:p<CR> " Windows 执行当前文件 | |
else | |
nnoremap <F5> :!./%:p<CR> " Linux 需加 ./ 前缀 | |
endif | |
" 标签页操作 | |
nnoremap <Leader>tn :tabnew<CR> | |
nnoremap <Leader>tc :tabclose<CR> | |
nnoremap <Leader>tl :tabnext<CR> | |
nnoremap <Leader>th :tabprev<CR> | |
" ==================== 内置功能激活 ==================== | |
packadd! matchit " 增强 % 跳转 | |
filetype plugin indent on " 文件类型检测 | |
" Netrw 文件浏览器统一配置 | |
let g:netrw_banner = 1 " 显示横幅 | |
let g:netrw_liststyle = 3 " 树状列表 | |
let g:netrw_browse_split = 4 " 在已有窗口打开文件(避免窗口泛滥) | |
let g:netrw_winsize = 30 " 窗口宽度占比 | |
let g:netrw_mousemaps = 1 " 启用鼠标标记(Ctrl+单击多选) | |
let g:netrw_keepdir = 1 " 保持浏览历史(`u`/`U`跳转前后目录) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment