Vim 进阶指南:如何让你的手速更上一层楼?
liebian365 2025-04-01 19:29 9 浏览 0 评论
背景
Vim 是一款流行的、高效的、全屏幕的文本编辑器,它被广泛用于开发、编译、校对和其他与文本相关的工作。Vim 具有强大的功能,如自动完成、跳转、高亮和重复等等,使得用户能够更快速、更高效地进行文本编辑。
上次介绍了 《Vim 图文指南,上手竟和打字一样简单》,虽然 Vim 易于上手,但入门级的可能让广大 IT 朋友不过瘾,这次为大家介绍一些 Vim 进阶方面的内容。
如果觉得文章不错,希望大家点赞、在看和转发。在繁忙的工作同时,祝广大 IT 工程师能自我提升,进一步满足工作需求。
1. N 种模式
首先,vim 编辑器有三种模式,其实不止三种模式,只是为了更好入门,一般介绍三种模式,这里列出四种。
- 一般模式:你打开 Vim 就是一般模式;
- 编辑模式:按 i、a、o 可以进入的模式;
- 命令行模式:按 : 可以进入的模式;
- 可视模式:按 v 即可进入可视模式,一般会组合多个按键使用。
2. 不一样的 Vim
2.1 初始移动
移动光标的方式有多种,除了传统的 h、j、k、l,就是你键盘中间 偏→的4个键。
还有很多会告诉你导航键也是可以的,其实在新手期,建议你禁用上下左右等导航键,还是使用 hjkl 导航更方便。
2.2 初始移动
除了上面的方法,还有更进阶的方法,比如 ^ 是定位到行首,$ 是定位到行尾,e 和 w 都可以定位到词尾,你可以自己试一试这两个的区别,耗子叔专门有篇文章讲过这个。
另外,你还可以试下 viw 和 b,viw 是三个连着一起按,b 是定位到词首,O 是当前行的下方新增一行并进入编辑模式。
b " 定位到词首
viw " 可视模式全选光标所在关键字
上面的一些方法组合起来,日常的 Vim 光标移动就没什么问题了,如果你发现了什么更好的方法,欢迎留言区告诉我。
2.3 退出有几种方式
传说中的老梗,资深程序员也不知道的 Vim 退出方式,其实常见的无外乎几种:
: quit " 命令行模式输哦
: wq " 保存并退出
ZZ " 一般模式下按哦
2.4 拆分屏幕
如果你想分屏的话,可以使用:
: split " 横向拆分
: vsplit " 纵向拆分
日常的一些使用技巧就讲完了,还有很多技巧可以通过翻书、查资料获取,在科普Vim 配置技巧之前,放一张老图。
3、配置初始
Vim 是可配置的,新手有一些常见的配置,简单说可以通过布尔值来改变它的行为:
:set number
:set nonumber
你还可以使用带值的选项,比如::set numberwidth=3
4、映射入门Vim 里的映射无外乎三种,imap、nmap 和 vmap,但由于递归问题,一般在 Vim 里建议使用 noremap,因此上面的三种模式就变成 inoremap\nnoremap\vnoremap。:nnoremap - xx
当然,在 Vim 里按常理说万物皆可映射,但是需要考虑你的按键习惯。
5、甜点时刻
最后,给大家留一份 GPT 生成的 Vim 配置文件,发现 GPT 生成的配置文件逻辑清楚,书写规范,你可以根据自己喜好和需求来配置。
" Vim 配置文件
" 设置文件类型检测
filetype plugin indent on
" 启用语法高亮
syntax enable
" 设置缩进
set tabstop=4 " Tab 键宽度为 4 个空格
set shiftwidth=4 " 自动缩进的空格数
set expandtab " 将 Tab 转换为空格
" 显示行号和状态栏
set number " 显示行号
set relativenumber " 相对行号
set laststatus=2 " 总是显示状态栏
" 搜索设置
set hlsearch " 高亮显示搜索结果
set incsearch " 实时匹配搜索
" 显示设置
set showmatch " 高亮显示匹配的括号
set ruler " 在状态栏显示光标位置
set cursorline " 高亮显示当前行
" 快捷键映射
nnoremap :w " 使用 F5 键保存文件
nnoremap :nohlsearch " 使用 F8 键取消搜索高亮
" 自定义映射
" 在这里添加你的自定义映射
" 示例:将 h 映射为水平拆分窗口
nnoremap h :split
" 插件管理器
" 在这里添加你喜欢的插件管理器,例如 Vundle、Pathogen 或 Vim-Plug
" 自定义插件设置
" 在这里添加你的插件配置,例如主题、代码补全、文件浏览等
" 其他个性化设置
" 在这里添加其他你喜欢的个性化设置,例如颜色方案、缩进规则等
" 结束配置文件
最后,学习并非一蹴而就,有更好的方法,也需脚踏实地,仰望星空。
相关推荐
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
-
明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
-
首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
-
齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...
- Qt界面——搭配QCustomPlot(qt platform)
-
这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
-
老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
-
用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
-
前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...
- 掌握Visual Studio项目配置【基础篇】
-
1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
-
随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...
- Visual Studio Community 2022(VS2022)安装图文方法
-
直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...
- Qt添加MSVC构建套件的方法(qt添加c++11)
-
前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...
- Qt为什么站稳c++GUI的top1(qt c)
-
为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...
- qt开发IDE应该选择VS还是qt creator
-
如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...
- Qt 5.14.2超详细安装教程,不会来打我
-
Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...
- Cygwin配置与使用(四)——VI字体和颜色的配置
-
简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
- Qt界面——搭配QCustomPlot(qt platform)
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
- 掌握Visual Studio项目配置【基础篇】
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
- Visual Studio Community 2022(VS2022)安装图文方法
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)