- 使用vim ~/.vimrc创建并打开新文件
复制一下内容:
bash
" ========== 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保存
-
- vim常见命令:
Vim 核心命令(新手必备)
Vim 有 3 种核心模式,所有操作都基于模式切换:
-
普通模式:默认模式,执行命令、复制粘贴、移动光标
-
插入模式:编辑文字(输入内容)
-
命令行模式:保存、退出、搜索、替换
一、模式切换(最基础!必背)
-
普通模式 → 插入模式(开始打字)
-
i:在光标前插入(最常用) -
a:在光标后插入 -
o:在当前行下方新建一行
-
-
插入模式 → 普通模式
ESC键(或你配置的jk/kj,快速退出)
-
普通模式 → 命令行模式
- 输入
:即可
- 输入
二、光标移动(鼠标 + 命令双支持)
你的配置已开启鼠标,可以直接点击 / 滚轮;纯键盘操作:
-
上下左右:
↑ ↓ ← → -
快速跳行:
gg(第一行)、G(最后一行) -
行首 / 行尾:
0(行首)、$(行尾)
三、编辑操作(删除 / 撤销 / 重做)
- 删除(普通模式下)
-
x:删除光标所在字符 -
dd:删除整行 -
dw:删除一个单词
- 撤销 / 重做(救命快捷键)
-
u:撤销上一步操作 -
Ctrl + r:重做(撤销后反悔)
四、复制 / 粘贴 / 剪切(支持系统剪贴板)
结合你配置的 Ctrl+C/V,两种方式都能用:
方式 1:系统通用(推荐新手)
-
鼠标选中文字 →
Ctrl+C复制 -
任意模式 →
Ctrl+V粘贴 -
Ctrl+A:全选
方式 2:Vim 原生命令
-
yy:复制当前行 -
p:粘贴到光标下方 -
dd:剪切当前行
五、搜索与替换
- 搜索(普通模式)
-
/关键词:向下搜索(例:/test) -
n:下一个匹配结果 -
N:上一个匹配结果
- 替换(命令行模式)
-
: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→ 保存退出