关注并置顶【柠檬班】的小哥哥小姐姐

猪年行大运!

Vim是从vi发展出来的一个文本编辑器。

其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

和Emacs并列成为类Unix系统用户最喜欢的编辑器。

1Vim求生手册

很多接触Vim的程序员应该都有过这样的经历:

◆ 受某大 V 的影响看到了 Vim 的高逼格;

◆ 看了某篇学习的文章,自己试了几个命令,在 30 分钟内放弃;

◆ 几个月后、几年后又听到有人在鼓吹 Vim 好用;

◆ 循环...

◆ 忍不了了,花了 2 周时间记各种命令;

◆ 算了,我还是滚回我的sublime吧。

我为什么知道这种情况?

因为我也一遍有一遍的尝试想把 Vim 作为我的主力编辑器,每一次都是伤痕累累的滚回 sublime 了。

分析这里面的原因其实只有一个:我太想用它来装 X 了!

太想感受那种轻飘飘的虚荣感觉。

还没有认识到世界上有 3 类程序员:

◆ 用Vim的程序员

◆ 用Emacs的程序员

◆ 用其他编辑器的程序员

这句话并不是装出来的,Vim真的可以大幅提高工作效率。

如果一个工具真的可以在以后长时间内大幅提高效率,那么花一小点时间,慢慢的使用、进阶绝对是个划得来的生意。

而且,有时候我们不得不在生产环境中直接面对Vim,这种时候通常是紧急的情况(服务器发生故障等)。

如果对Vim不熟悉,那只能是两眼一抹黑了。

大部分人放弃 Vim 可能都是出于这样的原因:期望过高,追求速成。

而本文的目的只在于善意的提醒你:慢一点,别放弃。

2生存下来

追求速成的同学在初次接触 Vim 时通常活不过 30 分钟,太不友好了!

01 那为什么 Vim 可以提高工作效率?

它的设计初衷就可以让你的手指不离开键盘进行所有的操作。

活下来需要注意的事情很简单,认清 Vim,使用最简单的指令。

就跟我们学吉他一样,先看看买的琴,弄清楚 Do Rei Mi 在哪个地方可以演奏出来就可以了。

通常来说我们要流畅的弹出 1 2 3 4 5 6 7 i 需要一段时间,但是第一次弹奏出来以后会很开心。

这个时候并不需要了解什么是把位,怎么切换把位。

通过 vim filename进入 Vim 以后,不能编辑文本,这时候 Vim 在 Normal 模式下。

正如一些笔记软件默认是不开放编辑的,只有点了编辑按钮才能输入。

而像 Sublime 这样的编辑器,你只要打开了某个文件,随时都可以输入。

这样当然提供了便利性,但是很容易造成误操作,改变文件内容和状态。

◆ 如果需要编辑,键盘按 i 就可以进入 Insert 模式,i你可以理解为是此模式的缩写。此时下面会出现插入字样;

◆ 在 Insert 模式下,可以像笔记软件那样编辑文件内容;

◆ 通过 Esc退出 Insert 模式,回到 Normal 模式。

02 在Normal模式下,学会以下内容就入门了:

◆ i 进入 insert 模式,编辑内容;

◆ 光标键(←↓↑→) 进行移动;

◆ 删除光标位置的字符:x

◆ 删除光标那一整行:dd

◆ 粘贴已复制的内容:p

◆ 保存(w)+退出(q):wq

基本上以上操作足以让我们完成很多的操作内容。

现阶段需要做的是将这些指令训练成肌肉记忆,可以每天刻意用Vim来写日记。

编辑一些文档,或者训练不用自动补全和提示写代码的能力。

稍微熟练以后将光标键换成hjkl进行移动,这样更符合手放在键盘上的位置。

如果不记得哪个键是做什么用的,输入:help键名寻求帮助。

养成一个习惯,insert 模式下编辑完,只要有可能做其他事情,有事没事按按 Esc 退回 Normal 模式来保证数据的安全。

如果有必要,借助鼠标操作。

3快速定位阶段

在生存阶段的命令没有到肌肉记忆的程度时,尽量不要逼自己学习过多的命令,欲速则不达。

好东西都需要慢慢享受。

Vim 在 Normal 模式下,所有键都会变成命令执行对应的指令。

01 光标的快速移动

◆ ^ 行首;

◆ $行尾;

◆ :3 跳到第 3 行;

◆ G 跳到最后一行;

◆ :/string 定位文字,string就是要定位的文字,可以是正则表达式。当查找到多个结果时,n 键切换到下一个;

◆ w 下一个单词首;

◆ *下一个相同的单词,# 上一个相同的单词;

◆ % 专门用来匹配括号的。编程语言很多不知道自己处于哪一个括号内。

02 多种插入形式

之前我们说过 i 可以切换到 insert 模式,实际上还有其他键也可以:

◆ a 在光标后一位插入,通常用在行末的时候;

◆ o 在下一行插入;

◆ O在上一行插入;

03 文件操作

除了 :wq 还有其他操作:

◆ :q!不保存强制退出;

◆ :w path_of_filename 保存为 filename 的文件;

◆ :saveas path_of_filename另存为;

◆ :e another_file 打开另一个文件:

◆ :n 或者加file/tab键观察 打开下一个文件,如果加 file 开指定的文件,可以用 tab 键观察补全

04 快速回撤前进

◆ u undo,回撤

◆ Ctrl + r redo,前进

◆ . 做大量重复工作的利器,表示执行上一个指令;

◆ 5. 重复执行上一个指令 5 次;

◆ 5 重复执行 command 这个指令 5 次

4熟练阶段

到目前为止,主流编辑器的基本功能 Vim 通过键盘基本上都实现了。

对于块级操作,命令存在天然的劣势。

毕竟鼠标长按一下可以选择太多的区域,Vim 的块级操作同样不复杂:

◆ Ctrl + v 进入块级操作;

◆ 光标移动,光标键或者其他命令;

◆ I + --, 操作。I 进入插入模式,插入 --;

01 命令v和V表示可视选择,如果我们需要对一段代码左右缩进:

◆ v 进入可视;

◆ 光标移动,光标键或者其他命令;

◆ > 或者

在insert模式下,可以使用ctrl + p自动补全

02 分割布局

◆ :vs file 水平开一个文件

◆ :sp file 垂直开一个文件

03 封神阶段

用 Vim 打造 IDE

宏录制

这个阶段我直接放弃了。不行了,白头发出来了。

可自行搜索...

5总结

◆ 学些Vim的过程真可谓酸爽;

◆ 一个命令用熟练了感动得眼泪掉下来;

◆ 很多枯燥的东西都是有大用处的,这时候能狠下心来啃对自己的心智也是个大的提升;

◆ 虽然离Vim党还有距离,可怎么感觉自己不一样了呢?有懂这种体会的吗?

学习资料

◆ Learn Vim Progressively

◆ Vimdoc user02.txt

本文转载至柠檬班社区

未经允许,谢绝转载

http://www.lemfix.com/topics/151?tdsourcetag=s_pcqq_aiomsg

- END -

今天的分享就到这里了

看完本文有收获?请转发分享给更多人

vim循环下表复制_Vim求生手册,让你离“Vim党”更近一步!相关推荐

  1. vim循环下表复制_Vimrc Init.vim太长了?不存在的

    精简配置 刚开始接触vim,你会被它各种好看的外观以及实用的插件吸引,各种折腾,不知不觉你的vimrc或者init.vim变得特别长,我之前的init.vim有多长? 596行?wtf?每次维护的时候 ...

  2. Vim如何一次复制多次粘贴,初次认识Vim寄存器

    目录 奇怪的Vim复制.粘贴操作 (y + p) Vim寄存器是啥? 咋使用寄存器呢? 终于可以快乐的一次复制多次粘贴了 奇怪的Vim复制.粘贴操作 (y + p) 作为一个Vim "重度患 ...

  3. 使用vim的重不重要_VIM高级操作,经常用vim的应该多学习。多开发效率很有大帮助!...

    Vim是号称"编辑器之神"的文本编辑软件,自从接触Vim以来,基本上都是用Vim来修改和编写代码和配置文件的. 但是我一直只会用最基本的命令,虽然把HJKL的定位键已操纵地很熟练. ...

  4. 解决vim与外界的复制粘贴(不用安装插件)

    默认的vim不带系统剪切板与vim的交互的功能: 要完成vim中的内容复制到系统剪切板,需要vim支持 +clipboard: 在终端输入:vim --version | grep clipboard ...

  5. vim复制粘贴(从系统粘贴到vim中,以及从vim中粘贴到系统中)

    vim与系统剪切板(将vim的内容复制到系统剪切板.或将系统剪切板内容复制到vim中) vim插件检查 要完成vim中的内容复制到系统剪切板,需要vim支持 +clipboard,检查的方法(ubun ...

  6. vim 寄存器 操作_说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。

    来源:hsujee.com/2016/01/13/ 1. 切换Vim模拟器状态 2. ScrollOff 参数 3. 行号定位 4. 进入修改 5. 范围操作 6. 选择文本 7. 复制粘贴 8.一些 ...

  7. vim复制单个字符_vim复制单个字符_[转载]vim下的复制粘贴

    命令 vim中无法使用ctrl+c ctrl+v进行复制粘贴,用起来很不习惯 下面是vim复制粘贴的基本命令: yy复制游标所在行整行.或大写一个Y. 2yy或y2y复制两行. ㄟ ,请举一反三好不好 ...

  8. vim介绍,vim颜色显示,vim一般模式下移动光标,vim一般模式下的复制、剪切和粘贴...

    2019独角兽企业重金招聘Python工程师标准>>> vim介绍 vim是vi的升级版,相较于vi,会显示颜色. 如果系统没有vim工具,需要安装:# yum install -y ...

  9. Windows注册表修改实例完全手册(下)

    注 册表是Windows操作系统的核心.它实质上是一个庞大的数据库,存放有计算机硬件和全部配置信息.系统和应用软件的初始化信息.应用软件和文档文件的 关联关系.硬件设备说明以及各种网络状态信息和数据. ...

最新文章

  1. Nginx 为什么这么快?
  2. 只想安安静静的做个程序员
  3. 2020年推荐系统工程师炼丹手册RecSys版
  4. 网易云信阮良: 让客户能够连接一切,把整个精彩的世界连接起来
  5. spring security原理
  6. C和指针之IO流和缓冲区
  7. 单链表基本操作在主函数中的实现
  8. 【转】BASE64编码规则
  9. Linux下的LD_PRELOAD环境变量与库打桩
  10. 分享:苹果APP更新上架被拒的另一种理由(Safety - Objectionable Content)
  11. python数据导出excel_【python Excel】如何使用python将大量数据导出到Excel中的小技巧之一...
  12. 解决虚拟机卡 鼠标拖动很慢 有效解决办法
  13. Maya vray XYZ皮肤贴图材质节点连接
  14. android 分享小程序到微信,Android 使用友盟分享微信小程序到微信
  15. 网络打印机拒绝访问,无法连接处理方法汇总
  16. 红米note3android版本,小米-红米note3-LOS-安卓9.0.0-稳定版Stable3.0-来去电归属-农历等-本地化增强适配...
  17. Pygame 实现一个简单画图板
  18. 做短视频时如何将文字转为语音?分享三个小方法,教你轻松配音
  19. 乾 乾为天 乾上乾下
  20. display、visibility和opactity的区别

热门文章

  1. 2020最后一个月,近4成应届生未就业,19个头部城市谁最留不住人?
  2. 与年轻人“玩在一起”的QQ音乐,正抢跑音娱赛道?
  3. linux下python安装opencv库_Linux下怎么配置python和opencv
  4. 怎么判断前轮左右的位置_汽车上主要传感器的安装位置,你知道多少?
  5. android o 小米note 3,小米 Note 3 MIUI 10 安卓 8.0 内测开启
  6. kettle kafka mysql_kettle使用kafka组件消费数据,保存到资源库无法打开问题
  7. Java爬虫技术(二)爬取京东iPhone商品信息并生成Json日志
  8. Hadoop环境搭建教学(一)运行环境,集群规划介绍;
  9. python中几种推导式的特殊用法
  10. Python中列表推导式同filter和map的比较