年底了,故事总是会有很多。

刚了一波通宵加班,趁着有时间,过了一遍Vim教程,顺便汇总下常用命令。
对于以 OSX / Linux为开发环境的伙伴们,应该并不陌生。因其轻便,扩展性,可定制化,一直很受开发者追捧。高阶大神,袖中必有深藏。
Vim编辑器简洁易用,在终端上可用来快速查看修改文档。虽然与其他编辑器如WebStrom, VScode相比,功能扩展相对欠缺,对新手朋友不太友好。但胜在多数Linux系统已附带,开箱即用,终端直接使用,无需再多开一个应用窗口。
作为一名前端开发工程师,如果你想秀操作用Vim来写HTML/CSS/JavaScript,我只想说一句,“小伙子,你很6啊!”。
Vim学习的过程不是两三天即可入境,懒惰如笔者,几天不敲,命令忘了七八。时不时还得翻出来看看,至今仍以新手自居。
前言 vi/vim的区别
vim 是 vi 的升级版本,它不仅兼容vi的所有指令,还有新增了一些新的特性。
vi filename
vim filename
// 两者同样的功能,能少敲一个字母,所以我们就用vi吧
“工具总须多磨,方才用的趁手。”
Mac 终端键入 vimtutor 即可进入Vim入门教程,30分钟足以让你应对Vim日常操作。
常规操作
| 命令 |
说明 |
| x |
删除光标下的字符 |
| X |
删除光标左边的字符 |
| s |
修改一个字符(与r的区别,修改后直接进入Insert模式) |
| i |
光标前插入字符 |
| a |
光标后插入字符 |
| A |
行尾插入字符 |
| o |
光标下方新建一行并进入Insert模式 |
| O (字母) |
光标上方新建一行并进入Insert模式 |
| r |
替换字符(单个) |
| R |
替换字符(多个) |
| cw |
替换文本直到单词末尾(ce也可) |
| c$ |
替换文本直到行尾 |
| dw |
删除单词 (de, d2w) |
| d$ |
删除到行尾 |
| D |
删除到行尾 |
| S |
删除到行为,并进入Insert模式 |
| dd |
删除整行 |
| y |
复制 |
| yy |
复制整行 (yw, ye) |
| p |
粘贴到光标之后 |
| P |
粘贴到光标之前 |
| u |
撤销 |
| . |
重复上一次操作 |
| :! |
执行外部名 (:!dir/:ls) |
| % |
查找配对的括号 ), }, ] |
| v motion :w |
选择性保存 |
| Ctrl + D |
查看可能的补全 |
光标移动
| 命令 |
说明 |
| h |
左 |
| l |
右 |
| k |
上 |
| j |
下 |
| 0 (数字) |
行首 |
| $ |
行尾 |
| w |
下一个单词起始处 |
| nw (2w) |
n可为数字,表示移动两个单词 |
| e |
单词末尾(与w的区别) |
| gg |
文件起始处 |
| G |
文件末尾处 |
退出
| 命令 |
说明 |
| :wq |
保存并退出 |
| ZZ |
保存并退出 |
| :q! |
丢弃修改并退出 (q退出,有修改的话q不能退出) |
| :e! |
丢弃修改并打开原文件 |
查找并替换
| 命令 |
说明 |
- vim使用常看
原网址http://www.runoob.com/linux/linux-vim.html 补充参考https://blog.csdn.net/w178191520/article/details/8 ...
- 『力荐汇总』这些 VS Code 快捷键太好用,忍不住录了这34张gif动图
之前写过三篇文章,收获了极其不错的阅读量与转发量: 你真的会用 VS Code 的 Ctrl.Shift和Alt吗?高效易用的快捷键:多光标.跳转引用等轻松搞定 VS Code 中的 Vim 操作 | ...
- 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类
今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在W ...
- 常使用的VIM命令及文件颜色代表含义
编辑模式--->输入模式 i : insert 在光标所在处输入: a:append 在光标所在处后面输入: o:在当前光标所在行的下方打开一个新行: I:在当前光标所在行的行首输入: A:在当 ...
- vim常忘命令
1.复制指定行到当前光标的下一行. #假设当前光标在10行,想把第5行复制到第11行 :5copy. #copy命令有2种简写'co'和't',所以也可以写成下面的格式 :5co. :5t. 参考:h ...
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
常量,字段,构造方法 常量 1.什么是常量 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...
- 在 Linux 打造属于自己的 Vim
Linux 系统中很多东西都是以脚本代码.配置文件的形式存在,使用 Linux 系统时,需经常对这些文件进行编辑.很显然,如果没有文本编辑器,江湖之路寸步难行. 我的选择是 Vim.Vim 是 Lin ...
- vim笔记2
用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能.这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好 零 学会盲打 壹 配置文件先从最简开始,在 ...
- vim的共享系统剪贴板以及缩进相关问题
http://www.cnblogs.com/end/archive/2012/06/01/2531147.html:reg 可以显示可用的寄存器,其中注意两个特殊的寄存器:"* 和 &qu ...
随机推荐
- eclipse中tomcat可以start启动,无法debug启动的解决
设置断点,进行程序调试,但是debug启动tomcat,却无法启动,并且会报超时异常. 原因可能是eclipse和tomcat启动时读取文件发生冲突 去掉所有的断点,然后重新debug启动,再设置断点 ...
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/domain/book.hbm.xml 联网跑一跑
org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/domain/boo ...
- python3+scrapy 趣头条爬虫实例
项目简介 爬取趣头条新闻(http://home.qutoutiao.net/pages/home.html),具体内容: 1.列表页(json):标题,简介.封面图.来源.发布时间 2.详情页(ht ...
- linux学习第七天 (Linux就该这么学)
今天讲了chmod (权限 设置)和 chown(属性 设置),特殊权限:SUID u+s 数字法是4 x=s - = S,SGID g+s 数字法是2 x=s -=S,SBIT o+t x=t ...
- [SoapUI] 在SoapUI中,设置开关批量保存整个Response,作为期望结果进行校验
//获取保存response的文件路径和名称 def testSuiteName = context.testCase.testSuite.name def testCaseName = contex ...
- 转载-js如何设置网页横屏和竖屏切换
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- LB+ECS+RDS经典架构图例及注意事项
LB+ECS+RDS经典架构图例及注意事项
- python发送邮箱
一.Python发送邮件 import smtplib from email.mime.text import MIMEText def send(email_to,title,content): m ...
- C语言中,int型函数返回值可以为bool型。
参考:https://bbs.csdn.net/topics/360116265. 问题: 如一个函数如下: int aa( int a, int b ) //举个例子,不要纠结功能. { if(a ...
- 浅析软件工程中的UML建模技术
一.基本信息 标题:浅析软件工程中的UML建模技术 时间:2018 出版源:电子世界 领域分类:软件工程:UML建模技术:需求分析 二.研究背景 问题定义:软件工程中UML建模技术的研究 难点:明确软 ...
|