news 2026/5/12 10:59:55

vim新手入门配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vim新手入门配置

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 种核心模式,所有操作都基于模式切换:

  • 普通模式:默认模式,执行命令、复制粘贴、移动光标

  • 插入模式:编辑文字(输入内容)

  • 命令行模式:保存、退出、搜索、替换


一、模式切换(最基础!必背)

  1. 普通模式 → 插入模式(开始打字)

    • i:在光标前插入(最常用)

    • a:在光标后插入

    • o:在当前行下方新建一行

  2. 插入模式 → 普通模式

    • ESC键(或你配置的jk/kj,快速退出)

  3. 普通模式 → 命令行模式

    • 输入:即可


二、光标移动(鼠标 + 命令双支持)

你的配置已开启鼠标,可以直接点击 / 滚轮;纯键盘操作:

  • 上下左右:↑ ↓ ← →

  • 快速跳行: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!:强制退出(不保存修改)


七、你专属配置的快捷键(重点!)

这是我给你优化的快捷操作,比原生命令更顺手:

  1. Ctrl+S:快速保存(全模式可用)

  2. F2:打开 / 关闭行号

  3. F3:粘贴模式(粘贴代码不混乱)

  4. jk/kj:快速退出插入模式(不用按 ESC)

  5. Ctrl+A:全选文本


八、实用小命令

  • :set nu:临时显示行号

  • :set nonu:临时关闭行号

  • >>:整行向右缩进

  • <<:整行向左缩进


极简速记(新手只记这 8 个)

  1. i→ 打字

  2. ESC/jk→ 停止打字

  3. dd→ 删除行

  4. yy→ 复制行

  5. p→ 粘贴

  6. u→ 撤销

  7. Ctrl+C/V→ 系统复制粘贴

  8. :wq→ 保存退出

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 10:59:11

网易云音乐自动打卡助手:如何轻松实现每日300首听歌升级攻略

网易云音乐自动打卡助手&#xff1a;如何轻松实现每日300首听歌升级攻略 【免费下载链接】neteasy_music_sign 网易云自动听歌打卡签到300首升级&#xff0c;直冲LV10 项目地址: https://gitcode.com/gh_mirrors/ne/neteasy_music_sign 还在为网易云音乐每日300首听歌任…

作者头像 李华
网站建设 2026/5/12 10:46:58

SoC设计挑战与门阵列技术解决方案

1. SoC设计的两大核心挑战在嵌入式系统开发领域&#xff0c;系统级芯片(SoC)设计始终是工程师们面临的最复杂任务之一。我从事ARM架构的SoC开发已有八年时间&#xff0c;参与过从消费电子到工业控制的各种项目&#xff0c;深刻体会到设计过程中最令人头痛的两个问题&#xff1a…

作者头像 李华
网站建设 2026/5/12 10:44:54

Encaustic风格商业授权雷区预警:从NFT上链到印刷出版,你用的提示词可能已触发版权链路断裂(附法律+技术双维度合规清单)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Encaustic风格的数字艺术本质与版权锚点 蜡质媒介的数字转译逻辑 Encaustic&#xff08;热蜡绘画&#xff09;传统上依赖蜂蜡、树脂与颜料在加热状态下的层叠、刮擦与重熔。其数字映射并非简单滤镜模拟…

作者头像 李华
网站建设 2026/5/12 10:43:24

Python轻量级任务编排引擎maestro:开发者友好的工作流自动化实践

1. 项目概述&#xff1a;一个面向开发者的轻量级任务编排与执行引擎最近在梳理团队内部一些自动化流程时&#xff0c;发现很多脚本、任务散落在各处&#xff0c;执行依赖混乱&#xff0c;日志分散&#xff0c;出了问题排查起来像大海捞针。我们尝试过一些重量级的调度平台&…

作者头像 李华
网站建设 2026/5/12 10:40:31

基于多智能体架构的AI编程助手模板:开箱即用的开发环境搭建指南

1. 项目概述&#xff1a;一个开箱即用的AI编程助手模板如果你和我一样&#xff0c;日常开发中总在重复搭建AI辅助编程的环境&#xff0c;从配置API密钥、调试模型参数到设计交互流程&#xff0c;每次都要折腾半天&#xff0c;那么你一定会对这个项目感兴趣。MZINN7/coding-agen…

作者头像 李华
网站建设 2026/5/12 10:39:40

读书笔记-PostgreSQL实战

文章目录第1章 安装与配置基础第2章 客户端工具2.1. pgAdmin4简介2.2 psql功能及应用2.2.1 使用psql连接数据库2.2.2 psql元命令介绍2.2.3 psql导入、导出表数据2.2.4 psql的语法和选项介绍2.2.5 psql执行sql脚本2.2.6 psql如何传递变量到SQL2.2.7 使用psql定制日常维护脚本2.2…

作者头像 李华