这篇文章非常好,发表在慕课网上,为了常常温习,因此收集到我的博客上了。如果作者感觉不合适,随时通知我删除。首发地址 http://www.imooc.com/article/13275

阅读收获

  • 见识下最炫酷的编辑器是什么样的.
  • 顺手可以学习下.

目录

键盘方法论: 在键盘面前,你就是钢琴手!

最牛编辑器: Vim. 第一节

最牛编辑器: Vim. 第二节

最牛编辑器: Vim. 第三节

上面三节课大家都要学会, 都是干货, 我把自己常用的Vim 操作都列出来了. 没有一个是用不上的.

Vim 自身的功能虽然有限,但是还是有很多插件可以供使用的. 下面的几个插件非常好用(Fuzzy finder, rails … , 具体见 .vimrc文件)

针对多个文件进行 查找和替换

使用插件: Greplace

  1. Gsearch -F '要替换的字符串' . -R --include=*rb
    这里的 -F, -R --include=*rb 这些参数,跟grep中的一样。
  2. 在返回的结果中,把该替换的替换。
  3. Greplace 然后选择 y/a/n 来决定是否替换。
  4. 最后, 输入 wa 保存所有文件的改动。

自动补全

凡是在 Vim 缓冲区中(近期打开过的文件)的代码,都可以补全。

  • 从上到下选择候选词: ctrl + n
  • 从下到上选择候选词: ctrl + p

多重复制与粘贴

现在在 Windows, Mac 和 Linux下的复制操作,都不支持多种复制。 很奇怪。

Vim中支持。 使用YRShow 插件。

在我的个人配置中, , + a 即可。原始命令: :YRShow 。 在弹出的“复制历史列表”中, 上下移动, 找到合适的后直接按回车即可。

设置背景 是亮还是暗

切换背景色(很多默认的linux 其实vim很难看的)

  • :set background=dark 深色背景色
  • :set background=light 亮色北京色

代码配色

每个人心中的代码配色都不同。 你的呢?

:colorscheme <主题名> 主题名包括: desert, deepblue, vividchalk 等等。 (不少需要到网上下载)

分割屏幕

让一个27寸显示器显示多个窗口是很酷的事儿(虽然我个人很少用)

  • 竖屏分割: vs (vertical split缩写)
  • 横屏分割: sp (split缩写)
  • 来回跳换: ctrl + w + w (跳到下一个小窗口), 或者 ctrl + w + <j/k/h/l> (跳到某个方向的小窗口)

注释多行

这里使用了插件: nerd-commentor. 我为它配置了自己的快捷键。

  1. 选中多行 (shift + v)
  2. ,cb (逗号 c b 三个键要快速按)

    取消注释: 使用传统的替换即可。

为多行代码格式化

多行选中后, 按 = 即可。 (注意:不是100%好用。 因为有的代码本身就是不完整的)

快速跳到当前光标所属文件(如果可能的话)

在 Rails的 路由或者 视图文件中,很好用。gf 即可。 (gf = go to file)

  • 在 View 中, 快速跳到一个 partial.
  • config/routes.rb 中跳到controller, 如下图所示。

Rails插件

Rails插件允许我们快速的在各种文件中跳来跳去(相信Vim 也有 Django, Spring, angular, 这样的插件, 有兴趣的朋友可以看看。)

  • 跳转到 controller: ctrl + c
  • 跳转到 model : ctrl + m
  • 跳转到 view : 先移动到对应的action, 再 ctrl + v

显示/隐藏行数

  • :set number 显示行数
  • :set nonumber 取消行数

折叠/取消折叠过长的行

  • :set wrap 折叠
  • :set nowrap 取消折叠

粘贴模式

Vim 正常模式下的粘贴,会导致粘贴的代码一行接一行的缩进。 如果要取消这种缩进的话,就要进入到 “粘贴模式”. (记得在这个模式下,无法使用 ctrl + t 命令来快速打开文件。 )

  • :set paste 进入到粘贴模式
  • :set nopaste 取消粘贴模式

代码左移/右移 与 重复上一次操作。

在我们格式化代码时会用到。 极度好用。

记住:你写的任何代码都要人肉加上良好的格式化。 能为你个人减少大量错误。

  • 左移: 选多行后, <shift + ,
  • 右移: 选多行后, >shift + .
  • 重复上次操作: .

写在最后

上面介绍的所有vim技巧,都是我回忆出来的, 是我在过去7年中一直在用的技巧. 各位同学需要每一样都要掌握.

【转载】世界上最牛的编辑器: Vim 3 (原创动图演示所有例子!)相关推荐

  1. 【译】数据显示:中国的程序员是世界上最牛的程序员?

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面:一直觉得中国的程序员想法多,肯钻研肯学习,但却不知道原来中国的程序员是世界上最牛的程序员.说来可能不信,但根据Hac ...

  2. 不要迷恋哥,哥不只是传说(再【转】世界上最牛的程序员)

    原文链接网址:[转]世界上最牛的程序员 话说偶当年还在大学求学的时候,以为最牛的就是教程序设计和数据结构的的那两个谢顶老头,直到偶看到了下面的神奇的传说(粗体部分). MIT BBS上说微软电话面试的 ...

  3. python代码编辑器-世界上最好的Python编辑器是什么?

    原标题:世界上最好的Python编辑器是什么? 世界上最好的 Python 编辑器或 IDE 是什么?炫酷的界面.流畅的体验,我们投 PyCharm 一票,那么你呢?本文介绍了 PyCharm.Jup ...

  4. 世界上最牛的100张照片

    <script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.sele ...

  5. 世界上最牛的电脑天才 ,其能力和水平不服都不行!

    郭盛华(GuoShengHua),男,汉族,1989年,生于广东肇庆,他创办了世界上最厉害的网络安全组织东方联盟,发布过很多知名软件作品和技术研报,他对计算机科学领域的革命性贡献可以说是巨大的.郭盛华 ...

  6. 【Linux】软件包管理器yum和编辑器vim(部分动图演示)

    工具的本质也是指令 文章目录 一.Linux 软件包管理器 yum 1.什么是软件包 2.第一个软件rzsz 3.yum的扩展 二.Linux编辑器-vim使用 1.vim的基本概念 2.vim的基本 ...

  7. 世界上最牛的网络设备,价格低廉,其貌不扬......

    夜深人静,电视和电脑都已经关机休息,但是我还在默默工作,我安静地趴在你家中的某个地方,7*24小时不眠不休,任劳任怨,目的只有一个,能让你舒服地躺在床上,畅快地刷手机! 没错,这就是我,大家司空见惯的 ...

  8. 国产程序员--世界上最牛逼的程序员!

    国产程序员就是这么牛逼 0. 如果软件正在占领全世界,为什么程序员得不到尊重? 遍身罗绮者,不是养蚕人. 1. 中国大陆的盗版Windows系统都是怎么做出来的? 复制.粘贴. 2. 中国梦和美国梦的 ...

  9. 【转】世界上最牛的程序员

    MIT BBS上说微软电话面试的一道题就是"Who do you think is the best coder, andwhy?". 我觉得挺有意思的,也来凑个热闹.排名不分先后 ...

  10. Docker是世界上最牛逼的CaaS!

    Docker是世界领先的CaaS(Container-as-a-Service平台).Docker是目前集装箱生态系统中最主要的工具.容器是一种将软件与二进制文件以及使软件在共享操作系统时,独立运行所 ...

最新文章

  1. 关于ajax跨域请求(cross Domain)
  2. 预计2024年全球医疗AI市场超100亿美元
  3. Android 获取SD卡的图片资源
  4. 报道称:Check Point正在洽谈收购CyberArk
  5. 修改自增主键初始化_数据库自增ID用完了会怎么样?
  6. 太突然!多所高校永久关闭
  7. 监控系统之weblogic,apache,tuxedo的监控项的整理
  8. Python----进程之间共享数据(全局变量)
  9. MyEclipse安装插件的几种方法
  10. hdu1002——A + B Problem II
  11. svm 10折交叉验证 matlab,怎么用10折交叉验证程序?
  12. Unity 粒子特效相对位置和大小的调整
  13. java 文字串叠字检查_Java 正则表达式详细实例解析
  14. 封装系统时删除pagefile.sys及hiberfil.sys文件
  15. 群晖NAS使用Docker安装迅雷离线下载出现the active key is not valid.
  16. 记一次锐捷网络虚拟化(VSU)故障处理
  17. matlab m序列扩频,基于matlab的移位寄存器法m序列的产生
  18. Fiddler原理+雷电模拟器进行APP抓包
  19. 遍历指定jar包中class文件名并输出到文件中
  20. ECMAScript 2016(ES7) 的新特性总结

热门文章

  1. 基于JSP的图书管理系统
  2. python生日快乐代码简单_Python编程代码:当你的亲人朋友生日时,给他运行这个程序,生日快乐弹窗!...
  3. linux运行bak,linux 备份学习
  4. cadence元件编号更新_OrCAD教程:如何对元件进行替换与更新
  5. 微信小程序-获取QQ音乐直链
  6. 平面设计中的网格系统pdf_哪些设计师必看平面设计书籍,写给设计师
  7. 新书推荐 |《点石成金:访客至上的Web和移动可用性设计秘笈(原书第3版)》...
  8. 王道考研操作系统笔记(第五章)附:王道考研408所有PPT和思维导图
  9. C语言程序设计题解pdf,C语言程序设计题解与上机指导.pdf
  10. LINUX移植——LED驱动移植