set nocompatible " 关闭 Vi 兼容模式
filetype on " 开启文件类型检测
filetype plugin on " 加载文件类型插件
filetype indent on " 加载文件类型缩进
syntax enable " 开启语法高亮
syntax on " 开启语法高亮
set number " 显示行号
set relativenumber " 显示相对行号(可选)
set autoindent " 自动缩进
set smartindent " 智能缩进
set cindent " C风格缩进
set tabstop=4 " Tab显示为4个空格
set shiftwidth=4 " 自动缩进使用4个空格
set expandtab " 将Tab转换为空格
set softtabstop=4 " 编辑时Tab键插入4个空格
set showmatch " 显示匹配的括号
set cursorline " 高亮当前行
set scrolloff=5 " 光标上下保留5行
set hlsearch " 高亮搜索结果
set incsearch " 实时搜索
set ignorecase " 搜索忽略大小写
set smartcase " 智能大小写
set encoding=utf-8 " 使用UTF-8编码
set fileencodings=utf-8,gbk " 文件编码检测顺序
set backspace=indent,eol,start " 正常使用退格键
set mouse=a " 启用鼠标
set hidden " 允许切换buffer而不保存
set autowrite " 自动保存
set history=1000 " 历史命令记录数
set undolevels=1000 " undo次数限制
set wildmenu " 命令行补全以菜单形式显示
set wildmode=longest:full,full
set clipboard=unnamedplus " 共享系统剪贴板(Linux)
" set clipboard=unnamed " 共享系统剪贴板(macOS)
colorscheme desert " 设置颜色主题
set background=dark " 背景色为暗色
set t_Co=256 " 启用256色
set termguicolors " 启用真彩色(如果终端支持)
set showcmd " 显示当前输入的命令
set laststatus=2 " 总是显示状态栏
set ruler " 显示光标位置
set wrap " 自动换行
set linebreak " 在单词边界换行
set textwidth=0 " 不限制行宽
" jk 退出插入模式
inoremap jk <Esc>
" 使用分号作为冒号(更快)
nnoremap ; :
" 使用空格作为leader键
let mapleader = " "
" 快速保存
nnoremap <leader>w :w<CR>
" 快速退出
nnoremap <leader>q :q<CR>
nnoremap <leader>wq :wq<CR>
nnoremap <leader>qa :qa<CR>
" 快速切换窗口
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 <C-Up> <C-w>+
nnoremap <C-Down> <C-w>-
nnoremap <C-Left> <C-w><
nnoremap <C-Right> <C-w>>
" 清除搜索高亮
nnoremap <silent> <leader>/ :nohlsearch<CR>
" 快速打开vimrc
nnoremap <leader>ev :vsplit $MYVIMRC<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>
" 快速跳转到行首行尾
nnoremap H ^
nnoremap L $
" 标签页操作
nnoremap <leader>tn :tabnew<CR>
nnoremap <leader>tc :tabclose<CR>
nnoremap <leader>th :tabprev<CR>
nnoremap <leader>tl :tabnext<CR>
" 自动重新加载外部修改的文件
set autoread
autocmd FocusGained,BufEnter * checktime
" 高亮行尾多余空格
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
" 自动补全括号
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
inoremap ' ''<Left>
inoremap " ""<Left>
" 保存时自动删除行尾空格
autocmd BufWritePre * %s/\s\+$//e
Vimrc配置文件
_
BlogsClub - 博客所有权认证
2026-01-04
已抵达博客尽头