vim 简单明了基础配置

5 阅读1分钟
" ===============================
" 基础体验
" ===============================

set nocompatible          " 关闭兼容模式(必须)
syntax on                 " 语法高亮
filetype plugin indent on " 文件类型检测 + 缩进

set encoding=utf-8
set fileencodings=utf-8,gbk,gb2312,latin1

" ===============================
" 显示 & 界面
" ===============================

set number                " 显示行号
set cursorline            " 高亮当前行
set showcmd               " 显示未完成命令
set showmode              " 显示当前模式
set ruler                 " 右下角显示行列
set laststatus=2          " 永远显示状态栏

set nowrap                " 不自动换行(写代码更舒服)

" ===============================
" 缩进 & 格式
" ===============================

set tabstop=2             " 一个 tab 显示为 2 个空格
set shiftwidth=2          " 自动缩进 2 个空格
set expandtab             " tab 转为空格
set autoindent            " 自动缩进
set smartindent           " 智能缩进(C / JS / TS 都适用)

" ===============================
" 搜索体验
" ===============================

set incsearch             " 输入时实时搜索
set hlsearch              " 高亮搜索结果
set ignorecase            " 忽略大小写
set smartcase             " 有大写时才区分大小写

" 清除高亮(用得多,但不算骚操作)
nnoremap <leader><space> :nohlsearch<CR>

" ===============================
" 编辑体验
" ===============================

set backspace=indent,eol,start " backspace 像现代编辑器
set clipboard=unnamedplus      " 使用系统剪贴板(macOS / Linux)

set undofile               " 持久 undo
set undodir=~/.vim/undo

set hidden                 " 允许切换 buffer 不保存
set updatetime=300         " 更快触发 CursorHold

" ===============================
" 文件 & 安全
" ===============================

set nobackup
set nowritebackup
set noswapfile

" ===============================
" 编码友好
" ===============================

set list
set listchars=tab:▸\ ,trail:·