" ==============================================
" 基础设置
" ==============================================
" 关闭兼容模式,使用 Vim 高级功能
set nocompatible
" 启用语法高亮
syntax on
" 显示行号
set number
" 显示相对行号(可选)
" set relativenumber
" 高亮当前行
set cursorline
" 显示状态栏(底部信息)
set laststatus=2
" 显示当前编辑的文件名
set statusline=%F\ %m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]
" 记住上次编辑位置
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
" ==============================================
" 缩进与 Tab 设置
" ==============================================
" 自动缩进
set autoindent
set smartindent
" Tab 转换为 4 个空格
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
" 回退时像 IDE 一样删除 4 个空格
set smarttab
" ==============================================
" 搜索与匹配
" ==============================================
" 搜索时高亮匹配
set hlsearch
" 搜索时实时匹配(输入即搜索)
set incsearch
" 忽略大小写(除非输入大写字母)
set ignorecase
set smartcase
" ==============================================
" 文件与编码
" ==============================================
" 使用 UTF-8 编码
set encoding=utf-8
set fileencodings=utf-8,gbk
" 自动检测文件类型
filetype plugin indent on
" ==============================================
" 其他优化
" ==============================================
" 鼠标支持(可选)
set mouse=
" 禁用备份文件和交换文件
set nobackup
set noswapfile
" 保留撤销历史
set undofile
set undodir=~/.vim/undodir
" 启用剪贴板(与系统共享)
set clipboard=unnamed
" ==============================================
" 快捷键映射
" ==============================================
" 禁用方向键(强制使用 hjkl)
"noremap <Up> <Nop>
"noremap <Down> <Nop>
"noremap <Left> <Nop>
"noremap <Right> <Nop>
" 保持块选择模式下的光标形状(可选,需终端支持)
set virtualedit=block
" 快速保存
nnoremap <Leader>w :w<CR>
" 快速退出
nnoremap <Leader>q :q<CR>
" 清除高亮
nnoremap <Leader><Space> :nohlsearch<CR>
" ==============================================
" CTags 配置(代码跳转)
" ==============================================
" 设置 CTags 文件路径(默认在项目根目录找 tags 文件)
set tags=./tags;,tags;
" 快捷键:Ctrl + ] 跳转到定义,Ctrl + t 返回
nnoremap <C-]> g<C-]>
nnoremap <C-t> <C-t>
" ==============================================
" 插件管理(vim-plug)
" ==============================================
call plug#begin('~/.vim/plugged')
" 1. 文件浏览(NERDTree)
Plug 'preservim/nerdtree'
nnoremap <Leader>n :NERDTreeToggle<CR>
" 2. 代码补全(coc.nvim,需安装 Node.js)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" 3. 状态栏美化(lightline.vim)
Plug 'itchyny/lightline.vim'
" 4. 模糊查找(fzf.vim)
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
nnoremap <Leader>f :Files<CR>
" 5. 代码注释(vim-commentary)
Plug 'tpope/vim-commentary'
" 6. Git 集成(vim-fugitive)
Plug 'tpope/vim-fugitive'
" 7. 自动括号匹配(auto-pairs)
Plug 'jiangmiao/auto-pairs'
" 8. 多光标编辑(vim-multiple-cursors)
Plug 'terryma/vim-multiple-cursors'
"块操作
Plug 'mg979/vim-visual-multi', {'branch': 'master'}
" 9. 语法检查(ALE,需安装对应 linter)
Plug 'dense-analysis/ale'
" 10. 主题(gruvbox)
Plug 'morhetz/gruvbox'
call plug#end()
colorscheme gruvbox
set background=dark
浙公网安备 33010602011771号