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

从零学起VIM

前言

笔者早年刚入行的时候就接触过Vim,当时还是真正的菜鸟,带我的师父是一个华为骨干员工,犹记得他给我指导如何保存并关闭文本:按Esc,然后输入:wq。还记得自己打开Vim编辑器,一个字符都敲不进去,然后问旁边的同事(此人年纪轻轻,但是擅长linux,我们都叫他XX大佬),他邪魅一笑说“i”,我第一反应就是他故意逗我玩,然后他认真地说“你没有听错,就是键盘上的i”。为何时隔多年我还记得这两件微不足道的小事?原因就是初次接触Vim留给我深刻的印象:神秘感!

讲真,这几年的工作中,我很少用Vim,可能是因为大多使用Windows操作系统。但是后来涉足跨平台开发,甚至是嵌入式,就发现这东西还必须得会!因此,决定来个“朝花夕拾”。考虑到网上类似的教程非常之多,如果仅仅复制粘贴这些文字和命令,那么会非常枯燥无味,人们是不喜欢缺乏灵魂的事物的!你看,纵使我早年接触过Vim,但是因为用进废退,目前凭直觉能想起来的命令就是上述的那两个小故事。每次真的要用,还要在网上搜索一番。

下面我会以一个小白的心态重新认识这个“老朋友”,尽量符合婴儿认识事物的这个过程。

一、Vim安装

运行

OK

下一步

我接受,下一步

下一步

下一步

改安装路径,安装

完成

二、常用命令实践

1.复现小故事情节

新建空文本

鼠标右键,用Vim编辑

按“i”,下面出现”—插入—"字样,然后键入”hello”,再按“Esc”(切换模式,用于执行命令),敲入我师父传授的“:wq”,则成功写入和保存文本!

2.删除字符,删除整行,删除单词

按“x”删除了Hello的首字母H,按”dd”删除了第一行整行,按“dw”删除了单词This。

3.复制粘贴与剪切粘贴

按“yy”复制第一行,用↓键将光标移动到底端,按“p”进行粘贴;接着用↑键将光标移动到第2行,按”dd”剪切该行,用↓键将光标移动到底端,按“p”进行粘贴。

4.跳转移动光标

按“gg”移动到文档开始,按大写”G”移动到文档末尾,按“:3”移动到第三行,由此可以看出行号是从1开始编码而非从0编码。 

5.撤销与重做

光标放到文档开头,按“dd”删除第一行,按“u”撤销删除,按”Ctrl+r”再此删除,按“u”再次撤销删除。

6.块选择

光标放到文档开头,按“v”选择字符,按→和←键选择多字符,再次把光标放到文档开头,按“Ctrl+v”选择块字符,按↓和→选择块区域。

7.设置行号

输入“:set nu”设置行号,输入“set nonu”取消行号。

8.查找替换

输入“:%s/vim/VIM”,全文搜索小写的vim将其全部替换为大写的VIM。

9.拓展 

    0:移动到行首;

    $:移动到行尾;

    ndd:删除n行(包括当前行在内)

    a:在光标后插入;

    o:在当前行下方插入新行;

    O:在当前行上方插入新行;

    :split、:vsplit:分别水平和垂直分割窗口;

    Ctrl + w、Ctrl + w:在窗口之间切换;

    :w:保存文件;

    :q:退出;

    :q!:强制退出,不保存更改。

    三、总结

    vim的命令繁多,但常用的无非就是复制粘贴删除等,能用到查找替换应付常规操作已经足够了。对于笔者而言,把所有命令全死记硬背无疑是一种灾难,提纲挈领,举一反三才能把知识学活。另外,舍弃或许是另一种拥有,比如h/j/k/l可控制左/下/上/右,但总觉得没有方向键用着直观。因此,实践中潜移默化的记忆是最有效的,本文仅作抛砖引玉之用。 

    相关文章:

  1. Zama 的门限密钥管理系统(TKMS)
  2. 如何利用小模型,快速筛选照片
  3. Vulkan学习笔记10—描述符与统一缓冲区
  4. 使用nvm管理npm和pnpm
  5. 支持selenium的chrome driver更新到137.0.7151.119
  6. Java课堂笔记11
  7. 生产者-消费者模式在不同操作系统上的行为差异
  8. 分布式选举算法<一> Bully算法
  9. 要在 Linux 不联网服务器 上部署并运行 Gitee 上的 vue-vben-admin 项目,并且该项目使用的是 pnpm 管理依赖
  10. LLM 支持的基于意图的分类 网络钓鱼电子邮件
  11. 设计模式精讲 Day 6:适配器模式(Adapter Pattern)
  12. 华为云Flexus+DeepSeek征文 | 基于DeepSeek-R1强化学习的多模态AI Agent企业级应用开发实战:从理论到生产的完整解决方案
  13. 在MATLAB中绘制阵列天线的散射方向图
  14. ChangeNotifierProvider 本质上也是 Widget
  15. 我的256天创作纪念日
  16. 二、OpenCV的第一个程序
  17. Arduino入门教程:9、蜂鸣器
  18. CppCon 2017 学习:CNL: A Compositional Numeric Library
  19. Vue3 × DataV:三步上手炫酷数据可视化组件库
  20. 机器学习 (ML) 基础入门指南
  21. 北京软件开发公司排行/抖音视频seo霸屏
  22. 网站建设顶部图片/长沙优化网站厂家
  23. 平台推广公司/seo日常工作都做什么的
  24. 西安营销网站建设/哪里有培训网
  25. 湖北什么网站建设值得推荐/谈谈你对互联网营销的认识
  26. 备案网站/北京网站优化seo