Vim入门指南

姓名:张志文 学号:19021210649
【嵌牛导读】
vim是一种很好用的编辑器,今天来介绍一下vim的入门
【嵌牛鼻子】
vim
【嵌牛提问】
vim该如何入门呢?
【嵌牛正文】

理准备

学习任何一门技能都会存在学习曲线,不同的技能学习曲线不尽相同,不过学习 vim 的朋友,看着下面这个 90° 的学习曲线,可能需要喝杯 82 年的咖啡压压惊 😂。

image

不过,毛主席都说过,任何敌人都是纸老虎,所以我们对于学习 vim 在做好充分心理准备的情况下,也没必要太打消自己的信心,小时候我们学卖油翁时也学过最朴素的道理:无他,但手熟尔,只要训练充分得当,我们也可以像卖油翁将油轻松倒过铜钱般掌握好 vim,所以,我们做好了玩 hard 模式的心理准备就可以上路啦。

小试牛刀

磨刀霍霍

要把玩 vim 首先要进入到 vim 的normal模式,才能拿到它那把锋利的道具,进入normal模式的方式有两个,一个是按住esc键,一个是按住ctrl+[键。

image

手柄移动

玩过电脑游戏的朋友们应该都有这样的经历,需要控制游戏人物上下左右移动,一般是 wasd,vim 也一样,假设我们使用 vim 来阅读源码,这种场景一般会使用normal模式,在normal模式下对应上下左右的快捷键分别是kjhl,这是使用 vim 时最基本的快捷键,是不是特别容易?另外我们在浏览代码时,下移一行的需求基本是最频繁的,所以这里猜测 vim 把j键用作下移,另外j键上有一个小突起特别适合快速起步,从这里看出 vim 的键设置其实是非常人性化的。

image

砍瓜切菜

很多时候我们在写完初版程序,做自我代码 review 时,经常会有删除一行或者多行的需求,如果我们使用notepad或者sublime类似的文本编辑器,需要先选中多行然后按退格键做删除,在使用 vim 时,我们只要保证我们在normal模式下,连续敲击dd键,即可删除当前光标所处的行,d2d即可删除当前行和其下一行,这样简单推理dnd就可以删除从当前行往下的n-1行啦,是不是很方便很简单?

落地为安

在我们阅读完代码,做了相应删除和编辑之后,最不能忘记的事情就是实时保存了,不然遇到断电或者系统崩溃就白瞎了,和其他编辑器使用meta+s键保存不一样,vim 需要进入命令行模式,进入命令模式的前提是处在normal模式,在normal模式下敲击:,然后编辑器下方就会出现一个类似终端的小窗口,输入w即可保存,如果想要保存后立马关闭当前文档,输入x或者wq即可。

这样我们就完成了 vim 三步走,浏览-->编辑--->保存,怎么样,是不是就和玩了一个小游戏一局一般,看起来难度也没 90° 那么大嘛。

高级特性

上面一节我们讲了我们平时使用文本编辑器的基本三步,现在我们来看看 vim 为什么被称为编辑器之神,它到底有哪些奇淫技巧,操作如此之强。

移动

在一般文本编辑器中移动是一件非常痛苦的事情,比如上下左右这种最基本的移动,我们要离开我们的打字区域,手指跑到键盘的右下角按上下左右键来移动,这无疑会让我们离开我们我们的舒适区。
但是,在 vim 的normal模式下移动是一个非常有趣的事情,通过 vim 提供的预设快捷键,我们可以在舒适区快速方便的移动,完全停不下来。
在列出 vim 的移动快捷键之前,我们先来普及一下几个基本的概念:

  • 层次:字母-->单词-->句子-->段落-->函数-->文档;
  • 首尾:单词首部-->单词尾部-->行首-->行尾-->段落首部-->段落尾部-->文档首部-->文档尾部;

与这些概念对应的在 vim 中移动的快捷键分别是:

  • 字母级别移动:参阅小试牛刀中 vim 手柄的快捷键上(k)下(j)左(h)右(l)
  • 单词级别移动:下一个单词首部(w),下一个单词尾部(e),上一个单词头部(b),上一个单词尾部(ge);
  • 行级别移动:行首(0或者^)、行尾($);
  • 段落级别移动:段落首部({),段落尾部(});
  • 文档级别移动:文档头部(gg),文档尾部(G);

编辑

删除

删除单词以及以上层次一般是一个组合键:d+级别键

  • 删除字符:删除光标前字符(X),删除光标后字符(x);
  • 删除单词:删除下一个单词(dw),删除前一个单词(db);
  • 删除行:删除当前行dd,删除当前行和下一行(dj),删除当前行和上一行(dk);
  • 删除段落:删除光标后段落(d}),删除光标前段落(d{);
  • 删除文档:删除光标前文档(dgg),删除光标后文档(dG);

其他

  • 撤销:u(undo);
  • 重做:ctrl+r(redo);
  • 复制:复制也类似删除,是组合键,格式为:y+级别键(yank);
  • 粘贴:pP(paste);

快速重复

动作+次数+方向

在熟悉了以上浏览和编辑的大部分快捷键后,使用 vim 的快速重复模式可以加速你的操作。
比如浏览代码时你想快速向下移动 4 行,删除时想快速向右删除 3 个单词,如果你只会上面的基础快捷键,那么你还是得重复多次,对于追求高效编码的你来说,是不能接受的。
vim 提供了一套模式:动作+次数+方向,其中动作可选,对于刚刚的需求来说,只需要使用4jd3w即可完成需求,是不是非常快捷,快来试试吧!

搜索/替换

一般我们在定位问题时会使用搜索,在重构时会使用到替换。
vim 也提供了强大的搜索/替换功能,并且支持正则搜索和正则替换,灰常强大。
使用 vim 的搜索和替换,我们需要从 vim 的normal模式进入到命令模式,在normal模式下按:即可进入命令行模式。

  • 搜索:/key(向下搜索关键词 key)或者?key(向上搜索关键词 key);
  • 替换:%s/source/dest/g或者1,10s/source/dest,其中%s表示全文替换,1,10s表示只对 1-10 行做替换,source表示被替换的单词,dest表示要被替换的单词,g表示该行若命中多个关键词则会都替换;
  • 正则替换:这算是 vim 替换里面比较高级的功能,下面我们来演示一个例子,把文中的morningking hello都替换成hello morningking,我们需要敲入:%s/\(hello\) \(morningking\)/\2 \1/g,这里使用到了正则里面的捕获分组,是不是很强大?

文件操作

vim 也提供了文件操作,如保存,退出,放弃,前提也是需要进入命令行模式。

  • 保存:w
  • 退出:q
  • 放弃:q!

其中保存退出可以结合使用,如wq,当然也可以使用快捷键x一键保存退出

其他

限于篇幅,以上列出了 vim 常用的高级特性,当然,vim 的高级特性远不止如此,比如还可以使用宏、折叠、选择模式、分屏、书签、缓冲区等,不过由于不太常用,这里暂时先不一一列举

本文内容为转载,版权归作者所有

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 初衷 俗话说工欲善其事,必先利其器,对于程序员来说,如果要高效的编码,那么掌握某类文本编辑器的快捷键是非常有必要的...
    morning_king阅读 622评论 2 11
  • 原文:https://www.cxyquan.com/1287.html 0. 前言 0.1 简介 vim 被誉为...
    凯睿看世界阅读 511评论 0 0
  • vi的基本概念 三种状态:命令模式(command mode)、插入模式(Insert mode)和底行模式(la...
    mihope阅读 591评论 0 50
  • 曾经在思科的工厂测试系统`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超过2年半,现在...
    戈多在地狱阅读 1,744评论 1 13
  • 李潇南阅读 557评论 0 0