vim入门

什么是vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。

上述是百度百科的解释,简单的讲vim就是在vi的基础上改进的、高度定制化的一个文本编辑器,也是一个上古神器。想要驾驭vim,前提是你得花时间学习和动手去操作才能够掌握。”纸上得来终觉浅,绝知此事要躬行“,如果只看了教程,但手不去动,是没办法学会的,而不看教程就去操作vim那也如同无头苍蝇一样,打开vim就到处乱飞,说到这里我已经有了第一次打开vim操作时的画面感了。所以,看了这篇文章或者别的教程之后,还需要你花上1~2天的时间去练习,才能真正的入门。这个过程可能会很难受或者很痛苦,但这一切都是值得的,借用往届大佬说过的一句话,“学会它后,你将在Linux的世界里畅行无阻。”

如何使用?

首先我们需要了解vim的三种模式和一些常用的命令:

  1. 命令模式(Command mode)我更喜欢称之为: 正常模式(Normal mode)

启动vim时便是正常模式,当前模式的键盘动作都是vim的命令,例如:通过键盘hjkl移动光标,x删除当前光标的字符...,或者输入i进入插入模式,输入英文冒号:进入底线命令模式,其他模式可以使用Esc键返回正常模式。

常用命令:

移动光标 h、j、k、l 键:
         ^
         k              提示: h 的键位于左边,每次按下就会向左移动。
   < h       l >              l 的键位于右边,每次按下就会向右移动。
         j                    j 键看起来很象一支尖端方向朝下的箭头。
         v
x 删除当前字符
dd 删除当前行
yy 复制当前行
p 粘贴到光标前
  1. 输入模式(Insert mode) 我更喜欢称之为: 插入模式(Insert mode)

在正常模式输入小写i键进入插入模式,所谓插入模式,顾名思义,跟我们平时使用IDE或记事本一样,可以用平时的操作方式移动、剪切、粘贴、换行和输入文本。常用命令也就是跟我们平时使用记事本一样,当然IDE里的一些组合键是没办法使用的。

  1. 底线命令模式(Last line mode)

正常模式中输入英文的冒号即可进入,该模式可以输入单个或多个字符命令进行文本操作或者设置vim的操作。

常用命令:

:q 退出
:q! 强制退出
:w 保存 后面可接文件名
:wq 强制性写入文件并退出
:x 写入文件并退出
:e 打开文件 后面可接文件名
:set number 显示行号
:set nonumber 禁止显示行号

总结:正常模式可以使用vim的各种文本操作命令,插入模式就和记事本一样,底线命令模式可以对文本进行保存退出和一些设置命令...

这三种模式的运作逻辑应该都明白了,后面会细讲一些常用的使用命令。

开始使用vim

一般情况下,系统都自带vim,所以我们可以直接通过终端输入vim进入。

  1. 终端下输入vim进入,只是一个欢迎界面,不要慌...

或者我们也可以在终端输入vim into_pit.txt回车,就不会看到上面的欢迎界面了。

  1. 摁i键进入插入模式,输入文字看看效果。

可能有人发现了 我的界面底部有个--INSERT-- 而自己的终端是没有的,这个就要用到底线命令模式去设置了。

  1. Esc键返回正常模式。

  2. 输入: set showmode回车 (打开底部显示当前模式,这个设置对于像我这种新手很有帮助)。

  1. 回车后回到了正常模式,摁i键就可以看到底部显示当前是插入模式了,输入空格。

为什么不是在位置的末尾输入?这时候就需要了解的常用的几个进入插入命令:

i 光标处进入插入模式 大写I行首
a 光标后进入插入模式 大写A行末
o 在下一行插入新行并进入插入模式 大写O上一行

插入模式基础的命令就差不多了,当然还有一些其他进入插入模式的组合命令例如ce向后删除字符并进入插入模式,当然想了解插入模式其他摁键例如shift+方向键翻页等组合键操作,可以自行去了解一下。

  1. 保存并退出vim,输入:wq(或者:x) 如果提示没有文件名则在末尾加上文件名,这时候就可以退出vim了。

恭喜你,底线命令模式和插入模式都学会了,接下来开始学习正常模式。

  1. 使用终端输入vim into_pit.txt 回到该文件。

这时候我们可以使用vim的一些移动或者删除的命令,可以使用hjkl移动光标或者gg跳到首行,G跳到末行。

通过移动将光标跳到其中的一个空行输入dd可删除当行,多删几个。

将光标移动到-以下都是回车- 双击y 单击p,多粘贴几行。

可以看到如下效果:

一些常用的命令,需要自己多去玩玩和动手操作操作:

移动光标 h、j、k、l 键:
         ^
         k              提示: h 的键位于左边,每次按下就会向左移动。
   < h       l >              l 的键位于右边,每次按下就会向右移动。
         j                    j 键看起来很象一支尖端方向朝下的箭头。
         v
0 数字0 跳到行首
^ 跳到从行首开始第一个非空白字符
$ 跳到行尾
gm 跳到行中
gg 跳到第一行
G 跳到最后一行
nG 跳到第n行
:n 跳到第n行
gj 下行
gk 上行

w 跳到下个单词开头(小写w标点或空格分离的单词,大写W空格分离的单词)
b 跳到上个单词开头 同w相反
e 跳到下个单词尾部 同上
ge 跳到上个单词尾部
fx 跳到下一个为x的字符(大写F为上一个)
tx 跳到下一个为x的字符前 同上

gd 光标定义
ctrl+o 跳转到上一个位置
ctrl+i 跳转到下一个位置

ctrl+f 下一页
ctrl+b 上一页

[[ 跳转到上一个顶级函数(比如C语言以大括号分隔)
]] 跳转到下一个顶级函数
[{ 跳转到上一处未匹配的{ ( 同理还有{(/ )
]} 跳转到下一处未匹配的} 同上

yy 复制整行
dd 删除当前行 并复制到寄存器
p 粘贴到光标后 大写P光标前
x 删除当前单词 大写X向前删除

u 撤销操作
U 撤销整行操作
CTRL-R 恢复到撤销操作前

cc 改写当前行并进入插入模式
s 替换字符(删除光标处字符,并进入插入模式,前可接数量)

v 标记(大写V按行标记)
v0 标记当前位置到行首(v$到行末...)
viw 选中当前单词(vi] 选中中括号...)

ctrl+v 区域、列选择 通过hjkl移动光标后进行操作,例如x删除
(大写i进入插入字符#双击Esc可添加多行注释)

还有很多正常模式下的移动命令和文本编辑操作大家可以多挖掘一下,我就不一一举例了,很多命令都是有规律的,很快就记得住了。先动动手指感受一下hjkl的魅力,可以选择上述其中一些常用命令先入门,也可以在终端输入vimtutor,进入vim自带的交互式教程了解更全面的入门基础教程。如果喜欢折腾的小伙伴,vim的高度定制化也会给你很多伸展的空间。vim现在也可以当做IDE使用,包括很多插件可以给你提供开发所需的功能场景,例如SpaceVim就是现成开箱即可食用的Vim-IDE。也可以将自己的IDE设置成vim模式,vscode的扩展搜索vim即可安装并使用vim模式。

我相信,看完这篇文章并强制将自己的IDE设置成vim模式,士别三日后,定当刮目相待,你的编码操作也会行云流水、炉火纯青,用上此远古神器后功力大增并力压群雄。

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

推荐阅读更多精彩内容