Linux

发布于 更新于

AI总结: 本文介绍了一个通用的.vimrc配置,主要用于解决服务器上Vim的中文乱码问题和将Tab键转换为空格。配置包括基本设置、编码设置、Tab和缩进设置、显示设置、搜索设置以及其他实用功能。建议在键映射部分增加更多常用快捷键以提高工作效率,并考虑添加注释以便于后续维护和理解。

通用.vimrc配置

主要用来解决服务器上vim中文乱码, 以及tab转空格问题

" 基本设置  
set nocompatible              " 关闭 Vi 兼容模式,使用 Vim 增强功能  
filetype on                   " 启用文件类型检测  
filetype plugin on            " 启用文件类型插件  
filetype indent on            " 启用文件类型缩进  
syn on                        " 开启语法高亮功能  

" 编码设置(支持中文)  
set encoding=utf-8            " Vim 内部使用 UTF-8  
set fileencoding=utf-8        " 默认保存为 UTF-8  
set fileencodings=utf-8,gbk,gb2312,cp936  " 自动识别编码  
set termencoding=utf-8        " 终端编码  

" Tab 和缩进设置  
set tabstop=4                 " Tab 显示为 4 个空格宽度  
set shiftwidth=4              " 自动缩进宽度为 4 个空格  
set expandtab                 " 将 Tab 转换为空格  
set smarttab                  " 根据 shiftwidth 插入空格  
set softtabstop=4             " 按 Tab 键时插入 4 个空格  
set autoindent                " 自动缩进  
set smartindent               " 智能缩进  

" 显示设置  
set number                    " 显示行号  
" set relativenumber            " 显示相对行号  
" set cursorline                " 高亮当前行  
set showcmd                   " 显示输入的命令  
set ruler                     " 显示光标位置  
set wrap                      " 自动换行  
set linebreak                 " 在单词边界换行  

autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
autocmd InsertEnter * se cul    " 用浅色高亮当前行  

" 搜索设置  
set hlsearch                  " 高亮搜索结果  
set incsearch                 " 增量搜索  
set ignorecase                " 搜索时忽略大小写  
set smartcase                 " 智能大小写(配合 ignorecase)  

" 其他实用设置  
set backspace=indent,eol,start " 允许退格键删除缩进、换行符等  
set wildmenu                  " 命令补全增强 按TAB键时命令行自动补全  
" set mouse=a                   " 启用鼠标支持  
set clipboard=unnamedplus     " 使用系统剪贴板(需 Vim 支持 +clipboard)  

" 键映射  
nnoremap <Tab> >>             " Normal 模式下 Tab 增加缩进  
nnoremap <S-Tab> <<           " Normal 模式下 Shift+Tab 减少缩进  
inoremap <S-Tab> <C-d>        " Insert 模式下 Shift+Tab 减少缩进  

map <silent> <C-A> gg v G $   " Ctrl+A 选中所有内容  

" 取消高亮搜索结果  
nnoremap <leader>/ :nohlsearch<CR>  

" 默认 leader 键是 '\', 可根据需要调整  
let mapleader = ","           " 将 leader 键改为 ','  

" 保存和退出  
nnoremap <leader>w :w<CR>     " 快速保存  
nnoremap <leader>q :q<CR>     " 快速退出