Skip to content

Instantly share code, notes, and snippets.

@JaHIY
Created August 24, 2025 06:26
Show Gist options
  • Save JaHIY/af124617de640919fe6281e50b557e8e to your computer and use it in GitHub Desktop.
Save JaHIY/af124617de640919fe6281e50b557e8e to your computer and use it in GitHub Desktop.
minimal vimrc
" ==================== 核心跨平台配置 ====================
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