news 2026/1/1 14:29:10

Vim实用技巧不装插件也能高效

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vim实用技巧不装插件也能高效

服务器上改配置文件,只有vim能用。

很多人的vim使用方式:打开文件 → 疯狂按i → 改完按Esc → 试各种方式退出 → :wq!

其实vim用好了效率很高。这篇分享一些实用技巧,都是原生功能,不用装插件。

先把基础搞对

模式

vim有几种模式:

  • Normal模式:默认模式,用来移动和操作
  • Insert模式:输入文字,按i进入
  • Visual模式:选择文本,按v进入
  • Command模式:执行命令,按:进入

核心思想:Normal模式才是常态,大部分时间在这个模式下。

移动

方向键能用,但hjkl更快(手不用离开主键盘区):

h - 左 j - 下 k - 上 l - 右

更高效的移动:

w - 下一个单词开头 b - 上一个单词开头 e - 当前单词结尾 0 - 行首 ^ - 行首第一个非空字符 $ - 行尾 gg - 文件开头 G - 文件结尾 30G - 跳到第30行 Ctrl+f - 向下翻页 Ctrl+b - 向上翻页 % - 跳到匹配的括号

进入Insert模式

别只会按i:

i - 在光标前插入 a - 在光标后插入 I - 在行首插入 A - 在行尾插入 o - 在下方新开一行 O - 在上方新开一行

比如想在行尾加内容,按A比按$li少一个键。

保存退出

:w - 保存 :q - 退出 :wq - 保存退出 :q! - 不保存退出 :x - 保存退出(同:wq) ZZ - 保存退出(Normal模式下) ZQ - 不保存退出

编辑操作

vim的编辑操作遵循一个模式:操作符 + 动作

操作符:

  • d - 删除
  • c - 修改(删除并进入Insert模式)
  • y - 复制
  • v - 选择

动作:

  • w - 到下一个单词
  • $ - 到行尾
  • 0 - 到行首
  • G - 到文件尾
  • gg - 到文件头
  • iw - 当前单词
  • i" - 引号内
  • i( - 括号内

组合起来:

dw - 删除一个单词 d$ - 删除到行尾 d0 - 删除到行首 dd - 删除整行 3dd - 删除3行 dG - 删除到文件尾 cw - 修改一个单词 c$ - 修改到行尾 cc - 修改整行 yy - 复制整行 3yy - 复制3行 yw - 复制一个单词 p - 粘贴到光标后 P - 粘贴到光标前

文本对象

这是vim最强大的地方:

diw - 删除当前单词(不含空格) daw - 删除当前单词(含空格) di" - 删除引号内的内容 da" - 删除引号及其内容 di( - 删除括号内的内容 di{ - 删除大括号内的内容 dit - 删除标签内的内容(HTML) ci" - 修改引号内的内容 ci( - 修改括号内的内容

比如有这样的代码:

print("Hello, World!")

光标在引号内任意位置,按ci"可以直接修改引号里的内容。

撤销重做

u - 撤销 Ctrl+r - 重做 . - 重复上次操作

点号是神器。比如删除了一行(dd),然后移到其他地方按.,又删除一行。

查找替换

查找

/pattern - 向下查找 ?pattern - 向上查找 n - 下一个匹配 N - 上一个匹配 * - 查找光标下的单词 # - 反向查找光标下的单词

替换

:s/old/new/ - 替换当前行第一个 :s/old/new/g - 替换当前行所有 :%s/old/new/g - 替换全文所有 :%s/old/new/gc - 替换全文,每次确认 :10,20s/old/new/g - 替换10-20行

实用场景

删除所有空行:

:g/^$/d

删除所有包含某字符串的行:

:g/pattern/d

在所有行末尾加分号:

:%s/$/;/

删除行尾空格:

:%s/\s\+$//

多文件操作

打开多个文件

vimfile1 file2 file3

在vim里切换:

:n - 下一个文件 :N - 上一个文件 :e file - 打开另一个文件 :ls - 列出所有打开的文件 :b2 - 切换到第2个文件

分屏

:sp file - 水平分屏 :vsp file - 垂直分屏 Ctrl+w w - 切换窗口 Ctrl+w h/j/k/l - 切换到指定方向的窗口 Ctrl+w = - 让所有窗口一样大 :only - 只保留当前窗口

标签页

:tabnew file - 新标签页打开文件 gt - 下一个标签页 gT - 上一个标签页 :tabclose - 关闭标签页

实用配置

在服务器上编辑~/.vimrc:

" 显示行号 set number " 相对行号(跳转方便) set relativenumber " 语法高亮 syntax on " 搜索高亮 set hlsearch " 搜索时即时匹配 set incsearch " 忽略大小写(搜索时) set ignorecase set smartcase " Tab设置 set tabstop=4 set shiftwidth=4 set expandtab " 显示匹配的括号 set showmatch " 自动缩进 set autoindent " 显示光标位置 set ruler " 允许backspace删除 set backspace=indent,eol,start " 显示当前模式 set showmode " 编码 set encoding=utf-8 " 不产生swap文件 set noswapfile " 搜索到文件末尾自动回到开头 set wrapscan

复制到服务器上一次,以后都能用。

命令行技巧

执行shell命令

:!ls - 执行ls :r !date - 把date命令的输出插入到文件 :w !sudo tee % - 以root权限保存(忘记sudo vim时)

录制一系列操作,然后重复执行:

qa - 开始录制到寄存器a ... - 执行操作 q - 停止录制 @a - 执行宏a 10@a - 执行宏a 10次

比如需要给20行都加上引号:

qa - 开始录制 I" - 在行首加引号 <Esc>A" - 在行尾加引号 <Esc>j - 移到下一行 q - 停止录制 19@a - 对剩下19行执行

寄存器

vim有多个剪贴板(寄存器):

"ayy - 复制当前行到寄存器a "ap - 从寄存器a粘贴 "+yy - 复制到系统剪贴板 "+p - 从系统剪贴板粘贴

标记

在文件里打标记,方便跳转:

ma - 在当前位置打标记a 'a - 跳到标记a '' - 跳回上次位置

快速参考卡片

# 移动 h/j/k/l 方向 w/b 单词 0/$ 行首/行尾 gg/G 文件头/尾 Ctrl+f/b 翻页 # 编辑 i/a 插入 o/O 新行 x 删字符 dd 删行 yy 复制行 p 粘贴 u 撤销 . 重复 # 文本对象 diw 删词 ci" 改引号内 di( 删括号内 # 查找 /pattern 查找 n/N 下/上一个 :%s/a/b/g 全局替换 # 文件 :w 保存 :q 退出 :e file 打开 :sp/:vsp 分屏

vim的学习曲线确实陡,但值得。

不用一下子全学会,先把基础移动和编辑搞熟,其他的用到再查。

用几次就记住了。

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

腾讯混元HunyuanVideo-Foley:AI音效生成终极指南

腾讯混元HunyuanVideo-Foley&#xff1a;AI音效生成终极指南 【免费下载链接】HunyuanVideo-Foley 项目地址: https://ai.gitcode.com/tencent_hunyuan/HunyuanVideo-Foley HunyuanVideo-Foley是腾讯混元实验室最新开源的端到端视频音效生成模型&#xff0c;仅需输入视…

作者头像 李华
网站建设 2026/1/1 13:26:35

3分钟快速上手:开源录屏神器Cap的完整使用指南

3分钟快速上手&#xff1a;开源录屏神器Cap的完整使用指南 【免费下载链接】Cap Effortless, instant screen sharing. Open-source and cross-platform. 项目地址: https://gitcode.com/GitHub_Trending/cap1/Cap 还在为寻找一款简单易用的录屏工具而烦恼吗&#xff1f…

作者头像 李华
网站建设 2025/12/29 10:17:51

Transformer模型训练加速秘诀:PyTorch-CUDA-v2.7镜像解析

Transformer模型训练加速秘诀&#xff1a;PyTorch-CUDA-v2.7镜像深度解析 在大模型时代&#xff0c;一个常见的场景是&#xff1a;研究者深夜提交训练任务&#xff0c;结果发现环境报错——“CUDA version mismatch”。排查两小时后才发现是本地PyTorch版本与系统CUDA不兼容。这…

作者头像 李华
网站建设 2025/12/29 10:16:08

GitHub热门项目推荐:PyTorch-CUDA-v2.7镜像助力AI开发

GitHub热门项目推荐&#xff1a;PyTorch-CUDA-v2.7镜像助力AI开发 在深度学习项目中&#xff0c;最让人头疼的往往不是模型设计本身&#xff0c;而是环境配置——“为什么代码在我电脑上跑得好好的&#xff0c;换台机器就报错&#xff1f;”、“CUDA not found”、“nvcc versi…

作者头像 李华
网站建设 2025/12/29 10:15:33

AutoTable:重新定义数据库表结构管理的智能自动化框架

AutoTable&#xff1a;重新定义数据库表结构管理的智能自动化框架 【免费下载链接】AutoTable 基于java实体上的注解完成数据库表自动维护的框架 项目地址: https://gitcode.com/dromara/auto-table 在快速迭代的现代软件开发中&#xff0c;数据库表结构的频繁变更是技术…

作者头像 李华