从零学起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可控制左/下/上/右,但总觉得没有方向键用着直观。因此,实践中潜移默化的记忆是最有效的,本文仅作抛砖引玉之用。

相关推荐
我叫黑大帅几秒前
什么是 mmap?
linux·c++·操作系统
chuxinweihui2 分钟前
Socket编程UDP
linux·网络·网络协议·udp·通信
Ronin30522 分钟前
【Linux网络】Socket编程:UDP网络编程实现Echo Server
linux·网络·udp·网络通信·socket编程
霖.2429 分钟前
service的两种代理实现
linux·服务器·容器·kubernetes
Lin_Aries_042139 分钟前
基于 GitLab 的自动化镜像构建
linux·运维·docker·容器·自动化·gitlab
hkhkhkhkh1231 小时前
Git push 失败(remote unpack failed: Missing tree)解决方案
linux·git
Eloudy1 小时前
制作 Bash Shell 方式的软件发布安装包的原理和方法
linux·bash
霖.241 小时前
K8s实践中的重点知识
linux·云原生·kubernetes
truesnow1 小时前
速通 awk:一篇文章带你理解 awk 原理,大量实战案例让你马上成为 awk 专家
linux
Lyre丶2 小时前
Ubuntu 24.04 LTS 安装GAMIT
linux·经验分享·学习·ubuntu·gamit