Linux

发布于 更新于

AI总结: 本文介绍了一个通用的.vimrc配置,旨在解决服务器上Vim的中文乱码问题以及将Tab转换为空格的需求。配置内容包括基本设置、编码设置、Tab和缩进设置、显示设置、搜索设置、其他实用设置、键映射以及保存和退出的快捷方式。 优化建议: 1. 考虑在编码设置中添加对其他常见编码格式的支持,以便于处理不同来源的文件。 2. 在搜索设置中,可以添加set nowrapscan以防止搜索到文件开头或结尾时自动循环,提升搜索体验。 3. 在显示设置中,可以考虑启用相对行号,以便于在代码编辑时更好地进行行间跳转。 4. 针对键映射部分,可以将常用命令的映射进行分类,增加注释以提高可读性。 5. 考虑在配置中加入插件管理器的配置,以便于后续扩展功能。

通用.vimrc配置

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

" 基本设置
set nocompatible              " 关闭 Vi 兼容模式,使用 Vim 增强功能
filetype on                   " 启用文件类型检测
filetype plugin on            " 启用文件类型插件
filetype indent 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                 " 在单词边界换行

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

" 其他实用设置
set backspace=indent,eol,start " 允许退格键删除缩进、换行符等
set wildmenu                  " 命令补全增强
" 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 减少缩进

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

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

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