1. 使用vim ~/.vimrc创建并打开新文件
复制一下内容:
超级精简版:
syntax on " 开启语法高亮 set number " 显示行号 set tabstop=4 " 设置制表符为4个空格 set softtabstop=4 " 设置软制表符为4个空格 set shiftwidth=4 " 设置自动缩进为4个空格 set expandtab " 将制表符扩展为空格 set autoindent " 自动缩进 set fileformat=unix " 设置文件格式为unix set showcmd " 在状态栏显示正在输入的命令 set cursorline " 高亮当前行 set backspace=indent,eol,start " 设置退格键的行为 set incsearch " 开启增量搜索 set hlsearch " 搜索时高亮显示结果 set ignorecase " 搜索时忽略大小写 set smartcase " 如果搜索模式包含大写字符,则对大小写敏感进阶版:
" ========== 1. 基础界面设置 ========== set nocompatible " 禁用 vi 兼容模式,开启 Vim 增强功能 filetype plugin indent on " 开启文件类型检测、插件加载和智能缩进 syntax on " 开启语法高亮 set number " 显示绝对行号 set relativenumber " 显示相对行号(跳转代码更方便) set cursorline " 高亮当前光标所在行 set ruler " 右下角显示光标位置(行号、列号) set showmode " 左下角显示当前模式(INSERT/VISUAL) set showcmd " 显示未完成的命令(比如输入的快捷键) set laststatus=2 " 始终显示状态栏 set cmdheight=1 " 命令行高度,减少占用空间 set t_Co=256 " 开启 256 色支持,适配终端主题 set bg=dark " 适配深色终端背景 " ========== 2. 编码与中文支持(解决乱码) ========== set encoding=utf-8 " Vim 内部使用 UTF-8 编码 set termencoding=utf-8 " 终端编码使用 UTF-8 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,latin1 " 打开文件时的编码优先级 set ambiwidth=double " 解决中文符号宽度错乱问题 " ========== 3. 缩进与制表符(代码编辑核心) ========== set tabstop=4 " Tab 键显示为 4 个空格宽度 set softtabstop=4 " 插入模式下按 Tab/退格键的缩进宽度 set shiftwidth=4 " 自动缩进、>> << 缩进的宽度 set expandtab " 将 Tab 自动转换为空格(避免不同环境缩进错乱) set autoindent " 自动继承上一行的缩进 set smartindent " 智能缩进(适配代码语法) set cindent " C/C++ 风格的精准自动缩进 " ========== 4. 搜索优化 ========== set hlsearch " 高亮搜索结果 set incsearch " 增量搜索(输入时实时匹配) set ignorecase " 搜索时忽略大小写 set smartcase " 智能大小写:搜索词含大写时,自动切换为严格匹配 set nowrapscan " 搜索到文件末尾后不循环回头部 " ========== 5. 编辑体验优化 ========== set mouse=a " 全模式开启鼠标支持(终端里也能点击跳转光标) set backspace=indent,eol,start " 退格键可删除缩进、换行、开头字符 set scrolloff=5 " 光标上下保留 5 行上下文,避免贴边滚动 set sidescrolloff=10 " 光标左右保留 10 列上下文 set wrap! " 关闭长行自动折行 set linebreak " 折行时在单词边界断开,不拆分单词 set whichwrap+=<,>,h,l " 允许光标在行首/行尾用方向键跨行 set noerrorbells " 关闭错误提示音 set vb t_vb= " 关闭视觉响铃,避免闪屏 set timeoutlen=300 " 快捷键响应超时时间(单位ms) set ttimeoutlen=50 " 终端按键序列超时时间 " ========== 6. 备份与撤销优化 ========== set nobackup " 关闭自动备份(不生成 filename~ 文件) set nowritebackup " 写入文件时不生成临时备份 set noswapfile " 关闭 swap 交换文件(避免目录生成 .filename.swp) set undofile " 开启持久化撤销(关闭文件再打开,仍能撤销之前的操作) set undodir=~/.vim/undodir " 统一存放撤销文件 set viminfo='100,<500,s10,h,! " 限制历史记录大小,提升启动速度 " ====================== 新增:系统剪贴板 + Ctrl+C/V 复制粘贴(核心) ====================== set clipboard=unnamedplus " 绑定 Vim 剪贴板 = 系统剪贴板(跨软件复制粘贴) " 可视模式(选中文字):Ctrl+C 复制到系统剪贴板 vnoremap <C-c> "+y " 普通模式:Ctrl+V 粘贴系统剪贴板内容 nnoremap <C-v> "+p " 插入模式:Ctrl+V 直接粘贴(不用切模式) inoremap <C-v> <ESC>"+pa " 全选快捷键(Ctrl+A)保留 nnoremap <C-a> ggVG " ========== 7. 实用快捷键映射 ========== " 快速保存:Ctrl+s nnoremap <C-s> :w<CR> inoremap <C-s> <ESC>:w<CR>a " 快速退出插入模式:jk(不用按远的 ESC 键) inoremap jk <ESC> inoremap kj <ESC> " 快速打开/关闭行号 nnoremap <F2> :set nu! nu?<CR> " 粘贴模式切换(解决粘贴代码时缩进错乱) nnoremap <F3> :set paste! paste?<CR> " 括号自动补全 inoremap ' ''<ESC>i inoremap " ""<ESC>i inoremap ( ()<ESC>i inoremap [ []<ESC>i inoremap { {}<ESC>i inoremap < <><ESC>i保存后退出。
运行命令:sudo apt update && sudo apt install vim-gtk3 -y
这个配置的功能:
鼠标
点击任意位置跳转光标
滚轮上下滚动代码
拖拽鼠标选中文字(和 VSCode 一样)
Ctrl+C / Ctrl+V
鼠标选中文字 →
Ctrl+C复制任意位置 →
Ctrl+V粘贴插入模式 / 普通模式都能用
额外快捷键
Ctrl+A全选Ctrl+S保存
2. vim常见命令:
Vim 核心命令(新手必备)
Vim 有 3 种核心模式,所有操作都基于模式切换:
普通模式:默认模式,执行命令、复制粘贴、移动光标
插入模式:编辑文字(输入内容)
命令行模式:保存、退出、搜索、替换
一、模式切换(最基础!必背)
普通模式 → 插入模式(开始打字)
i:在光标前插入(最常用)a:在光标后插入o:在当前行下方新建一行
插入模式 → 普通模式
ESC键(或你配置的jk/kj,快速退出)
普通模式 → 命令行模式
输入
:即可
二、光标移动(鼠标 + 命令双支持)
你的配置已开启鼠标,可以直接点击 / 滚轮;纯键盘操作:
上下左右:
↑ ↓ ← →快速跳行:
gg(第一行)、G(最后一行)行首 / 行尾:
0(行首)、$(行尾)
三、编辑操作(删除 / 撤销 / 重做)
1. 删除(普通模式下)
x:删除光标所在字符dd:删除整行dw:删除一个单词
2. 撤销 / 重做(救命快捷键)
u:撤销上一步操作Ctrl + r:重做(撤销后反悔)
四、复制 / 粘贴 / 剪切(支持系统剪贴板)
结合你配置的 Ctrl+C/V,两种方式都能用:
方式 1:系统通用(推荐新手)
鼠标选中文字 →
Ctrl+C复制任意模式 →
Ctrl+V粘贴Ctrl+A:全选
方式 2:Vim 原生命令
yy:复制当前行p:粘贴到光标下方dd:剪切当前行
五、搜索与替换
1. 搜索(普通模式)
/关键词:向下搜索(例:/test)n:下一个匹配结果N:上一个匹配结果
2. 替换(命令行模式)
:s/旧词/新词:替换当前行第一个匹配项:%s/旧词/新词/g:替换整个文件所有匹配项(最常用)
六、保存 / 退出(命令行模式,输入:执行)
:w:保存(也可以用你配置的Ctrl+S):q:退出:wq:保存并退出:q!:强制退出(不保存修改)
七、你专属配置的快捷键(重点!)
这是我给你优化的快捷操作,比原生命令更顺手:
Ctrl+S:快速保存(全模式可用)F2:打开 / 关闭行号F3:粘贴模式(粘贴代码不混乱)jk/kj:快速退出插入模式(不用按 ESC)Ctrl+A:全选文本
八、实用小命令
:set nu:临时显示行号:set nonu:临时关闭行号>>:整行向右缩进<<:整行向左缩进
极简速记(新手只记这 8 个)
i→ 打字ESC/jk→ 停止打字dd→ 删除行yy→ 复制行p→ 粘贴u→ 撤销Ctrl+C/V→ 系统复制粘贴:wq→ 保存退出