vim使用(长文讲解)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

前言

在编程世界中,Vim 是一款令人又爱又恨的工具。它像一把瑞士军刀,功能强大却需要时间磨合。对于编程初学者而言,Vim 的命令行式操作可能显得陌生;而对中级开发者来说,Vim 的高效性与灵活性则是提升编码效率的核心工具。本文将从零开始,用循序渐进的方式讲解 Vim 使用 的核心技巧,结合实际案例和代码示例,帮助读者跨越学习门槛,逐步掌握这一经典编辑器的精髓。


基础操作入门:从启动到退出

启动与模式切换

启动 Vim 的最简单方式是通过命令行输入 vim 文件名。例如,vim hello.py 将打开或新建一个名为 hello.py 的文件。Vim 的独特之处在于其 模式化操作

  • 正常模式(Normal Mode):默认模式,用于移动光标、执行命令。
  • 插入模式(Insert Mode):输入文本的模式,通过按 ia 等键进入。
  • 命令模式(Command Mode):以 : 开头的命令行界面,用于保存、退出等操作。

比喻:可以把 Vim 比作地铁系统,正常模式是站台,命令模式是控制中心,而插入模式是车厢——只有切换到正确的位置,才能完成目标操作。

移动光标:比鼠标更快的方式

在正常模式下,Vim 的移动命令远比鼠标高效:

  • hjkl:分别对应左、下、上、右移动(想象这四个键在键盘上形成一个方向盘)。
  • 0$:跳转到行首和行尾。
  • ggG:跳转到文件开头和结尾。

案例

10G  
e  

编辑文本:插入、删除与复制

  • 插入文本:按 i 在光标前插入,按 a 在光标后插入,按 o 在下一行新建行。
  • 删除操作x 删除光标后的字符,dd 删除整行,dw 删除一个单词。
  • 复制与粘贴yy 复制当前行,p 粘贴到光标后。

技巧:在命令前加数字可批量操作,例如 5dd 删除 5 行,3yy 复制 3 行。

保存与退出:常见的退出场景

Vim 的退出命令常让新手困惑:

  • :w:保存文件但不退出。
  • :q:退出文件(仅当未修改时生效)。
  • :wq:保存并退出。
  • :q!:强制退出且不保存。

实战场景

:wq  
:q!  

高级功能详解:提升效率的关键

正则表达式与搜索

Vim 的搜索功能结合正则表达式,能快速定位和替换文本:

  • /关键词:向下搜索关键词,按 n 继续向下,N 向上。
  • :%s/old/new/g:替换全文中的“old”为“new”(g 表示全局替换)。

案例

:%s/apple/banana/g  

宏命令:重复操作的自动化

宏(Macro)可录制并重复一序列操作:

  1. q 后跟一个字母(如 a)开始录制。
  2. 执行一系列操作(如删除、替换)。
  3. q 结束录制。
  4. 输入 @a 执行宏,@@ 重复上次宏操作。

比喻:宏如同录制一段“操作录像”,能将重复性任务自动化,节省大量时间。

窗口与标签页:多文件协同

Vim 支持多窗口和标签页管理:

  • :split:vsplit:水平或垂直分割窗口。
  • :tabe 文件名:打开新标签页。
  • Ctrl + W + 方向键:在窗口间切换。

案例

:vsplit main.py  

配置优化:打造个性化工作流

自定义配置文件(.vimrc)

Vim 的配置文件 .vimrc 可存放个性化设置,例如:

" 设置行号  
set number  
" 设置缩进为 4 空格  
set tabstop=4  
" 开启高亮搜索  
set hlsearch  

插件管理:扩展 Vim 的功能

通过插件管理工具(如 vim-plug)可安装插件增强功能:

  1. 安装 vim-plug
    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \  
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim  
    
  2. .vimrc 中配置插件:
    call plug#begin('~/.vim/plugged')  
    Plug 'scrooloose/nerdtree'  # 文件管理插件  
    Plug 'neoclide/coc.nvim'    # 代码补全  
    call plug#end()  
    
  3. 输入 :PlugInstall 安装插件。

快捷键优化:减少重复劳动

自定义快捷键可提升操作效率:

" 将“保存并退出”绑定到 F2  
nnoremap <F2> :wq<CR>  
" 快速跳转到上次编辑位置  
nnoremap <C-o> :normal! ``<CR>  

实战案例:用 Vim 编写 Python 脚本

场景描述

假设需要编写一个简单的 Python 脚本 calculator.py,实现加减乘除功能。

步骤分解

  1. 启动 Vim 并新建文件

    vim calculator.py  
    
  2. 进入插入模式并编写代码
    i 进入插入模式,输入以下代码:

    def add(a, b):  
        return a + b  
    
  3. 保存并退出:按 Esc 键回到正常模式,输入 :wq 保存退出。

  4. 修改代码并使用宏
    假设需为其他运算函数添加注释:

    • 录制宏:qa(开始录制),输入注释内容后按 Esc,移动到下一行,q(结束录制)。
    • 执行宏:@a 即可重复操作。
  5. 搜索与替换
    若需将所有 def 替换为 def function_

    :%s/def /def function_/g  
    

结论

Vim 的学习曲线虽然陡峭,但掌握其核心功能后,它将成为开发者提升效率的利器。从基础的移动与编辑,到高级的宏命令和插件配置,每一层技巧都能显著缩短编码时间。本文通过案例演示、代码示例和形象比喻,帮助读者逐步理解 Vim 使用 的逻辑与优势。记住,熟练操作需要持续练习——就像学习驾驶汽车,最初可能手忙脚乱,但一旦掌握方向盘,就能在代码世界中自由驰骋。

最新发布