当前位置: 首页 > news >正文

Vim命令技巧

Vim命令技巧

Vim作为一款强大的文本编辑器,是linux运维必会的技能。然而,对于初学者来说,可能只会一些简单的编辑命令。

1. 删除技巧

1.1 删除单个字符

  • x:删除光标所在位置的字符。

  • X:删除光标前一个字符。
    删除引号内字符
    di"

  • 将光标放在双引号内的任意位置

  • 按下d(删除) +i"(inside double quotes)

  • 会删除两个双引号之间的所有内容,但保留引号

1.2 删除单词

  • dw:删除从光标位置到下一个单词开头的内容。
  • daw:删除光标所在的整个单词(包括周围空格)。
  • diw:删除光标所在的单词(不包括周围空格)。

1.3 删除行

  • dd:删除整行。
  • D:删除从光标位置到行尾的内容。

1.4 删除多行

  • ndd:删除从当前行开始的n行。例如,3dd删除3行。

2. 替换技巧

2.1 替换单个字符

  • r:替换光标所在位置的字符。例如,ra将当前字符替换为a

2.2 替换多个字符

  • R:进入替换模式,从光标位置开始替换字符,按Esc退出。

2.3 全局替换

  • :%s/old/new/g:将文件中所有的old替换为new

  • :%s/old/new/gc:替换时进行确认。

3. 跳转技巧

3.1 行内跳转

  • 0:跳转到行首。
  • ^:跳转到行首第一个非空白字符。
  • $:跳转到行尾。

3.2 文件内跳转

  • gg:跳转到文件开头。
  • G:跳转到文件末尾。
  • nG:跳转到第n行。例如,10G跳转到第10行。

3.3 标记跳转

  • m{a-z}:在当前光标位置设置标记。例如,ma设置标记a
  • {a-z}:跳转到标记位置。例如,a跳转到标记a

4. 移动技巧

4.1 光标移动

  • h:左移。
  • j:下移。
  • k:上移。
  • l:右移。

4.2 单词移动

  • w:移动到下一个单词的开头。
  • b:移动到上一个单词的开头。
  • e:移动到下一个单词的结尾。

4.3 屏幕移动

  • Ctrl + f:向下翻页。
  • Ctrl + b:向上翻页。
  • Ctrl + d:向下翻半页。
  • Ctrl + u:向上翻半页。

5. 高级实用操作技巧

5.1 批量注释

  • Ctrl + v:进入可视块模式,选择多行后按I输入#,再按Esc,即可批量注释。
  • :n1,n2s/^/#/g:将n1到n2行的行首添加#

5.2 批量缩进

  • >>:当前行向右缩进。
  • <<:当前行向左缩进。
  • n>>:从当前行开始的n行向右缩进。

5.3 批量替换

  • :n1,n2s/old/new/g:将n1到n2行之间的old替换为new

5.4 清空所有内容

  • "%d:vi打开文档后,需要清空文档再复制,可以通过此命令快速清空

  • 5.4 保留粘贴格式

场景:从vscode或者其它地方复制代码到vi编辑器经常会出现格式错乱的问题,例如额外的缩进,层级文本错乱或者自动换行问题

1、在普通模式下启用paste模式:set paste2、进入插入模式并粘贴文本i (或按Insert键) ,然后粘贴文本

  • 5.5 转换字符集格式

  • windows上编辑的shell脚本上传到linux系统,由于字符集问题,脚本执行时经常会出现^M: bad interpreter错误

vim中,可以通过如下方法解决(cat -A filename# 显示所有字符)

# 1. 使用 Vim 打开文件vim /tmp/test.sh# 2. 查看当前文件格式:set ff?# 输出:fileformat=dos# 3. 转换为 Unix 格式:set ff=unix 或者:set fileformat=unix# 4. 查看文件内容确认:set list# 可以看到行尾现在只有 $(LF),没有 ^M(CR)
http://www.cnnetsun.cn/news/3411361.html

相关文章:

  • 全域三极公理统一篇——所有分析、代数、拓扑、算子理论同源归一,回归0/1/∞创世本源闭环《全域数学vs传统数学:人类文明进阶200讲》第91讲
  • C#上位机+ONNX Runtime:毫秒级AI视觉缺陷检测系统落地指南
  • 影刀RPA 数据合并:多表关联与拼接
  • 紧急!新修订《行政规范性文件管理办法》生效前72小时,ChatGPT政策比对工具包限时开放(含12类高频冲突条款识别规则集)
  • HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储
  • HarmonyOs应用《重要日》开发第7篇 - 日期处理:dayjs 集成与 DateUtil 封装
  • LMK61E0M DCXO实战:从I2C配置到环路滤波,打造70.656MHz高精度时钟
  • ArcGIS图层的符号绘制顺序(叠放次序)调整
  • Cursor AI布局切换实战手册(从VS Code迁移者必读):12个真实项目踩坑复盘与标准化配置模板
  • 零基础实战:手把手教你用NoneBot2与go-cqhttp搭建QQ机器人
  • Grok安全机制7日崩塌:大模型安全承诺的工程真相
  • 限时返场开源组件集成实践:风险评估与Spring Boot安全集成指南
  • STL之map与unordered_map:面试考红黑树和哈希表,这样答直接满分
  • DLPC910高速接口与像素映射:从电气设计到数据重排的工程实践
  • 网盘直链下载助手终极实战指南:5倍速下载技巧大公开
  • 高速ADC性能优化:从噪声原理到ADC31JB68寄存器配置实战
  • No-Code MVP:用可视化工具72小时验证商业假设
  • 2026年AI编程工具终极对决:我花了三个月,把Claude Code、Cursor、Copilot和国产工具全测了一遍
  • 遗传算法求解N皇后问题的Python实战与工程避坑指南
  • Obsidian五种同步策略详解:怎么根据设备角色设置仅发送、仅接收和双向同步
  • C++多线程TCP服务器实战:从线程池到高并发网络编程
  • Java 23 种设计模式:从踩坑到精通 | 番外:组合 vs 解释器 —— 结构树 vs 计算树
  • 深入解析SM320C6748-HIREL引脚复用:从配置表到工程实践
  • 1846_安全SPI:从协议演进到车规级安全通信的实践解析
  • 基于西门子plc 博图1200 基于西门子plc的药片自动装瓶12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • JLU吉林大学软件学院《计算机网络》核心考点与真题实战解析(2020级适用)
  • PostureGuard:基于智能眼镜的AI坐姿守护助手
  • 从“未能加载System.Net.Http”错误出发:深入解析.NET程序集绑定与版本冲突
  • 【C++提高】高精度加法
  • COST231-WI模型参数解析与MATLAB仿真实践