Vim 利剑常磨,见血封喉 1
年底了,故事总是会有很多。
刚了一波通宵加班,趁着有时间,过了一遍Vim教程,顺便汇总下常用命令。
对于以 OSX / Linux为开发环境的伙伴们,应该并不陌生。因其轻便,扩展性,可定制化,一直很受开发者追捧。高阶大神,袖中必有深藏。
Vim编辑器简洁易用,在终端上可用来快速查看修改文档。虽然与其他编辑器如WebStrom, VScode相比,功能扩展相对欠缺,对新手朋友不太友好。但胜在多数Linux系统已附带,开箱即用,终端直接使用,无需多开一个应用窗口
Vim学习的过程不是两三天即可入境,懒惰如笔者,几天不敲,命令忘的七八。时不时还得翻出来看看,至今仍以新手自居。
作为一名前端开发工程师,如果你想秀操作用Vim来写HTML/CSS/JavaScript,我只想说一句,“小伙子,你很6啊!”。
前言 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! | 丢弃修改并打开原文件 |
查找并替换
命令 | 说明 |
---|---|
:s/old/new/g | 查找old并替换为new,g代表整行匹配 |
:#, #s/old/new | #, #代表首尾行号 |
:%s/old/new/g | 全文匹配替换 |
:%s/old/new/gc | 全文匹配替换,并每次替换会弹出确认提示 |
翻页
命令 | 说明 |
---|---|
Ctrl + e | 向下滚动一行 |
Ctrl + y | 向上滚动一行 |
Ctrl + f | 向下翻一页 |
Ctrl + b | 向上翻一页 |
Ctrl + u | 向上翻半页 |
Ctrl + d | 向下翻半页 |
文件操作
命令 | 说明 |
---|---|
:e + filename | 打开新文件 |
:r + filename | 读取文件并插入到当前文件 |
选项设置
命令 | 说明 |
---|---|
:set ic | 忽略大小写 |
:set is | 部分匹配(like) |
:set hls | 高亮匹配 |
:set nu | 显示行号 |
分屏启动vim
命令 | 说明 |
---|---|
vim -on file1 file2... | 水平分屏 |
vim -On file1 file2... | 垂直分屏 |
关闭分屏
命令 | 说明 |
---|---|
Ctrl + w c | 关闭当前窗口(如果是最后一个,无法关闭) |
Ctrl + w q | 关闭当前窗口(如果是最后一个,则退出vim) |
分屏
命令 | 说明 |
---|---|
Ctrl + w s | 上下分屏 |
Ctrl + w v | 左右分屏 |
:sp filename | 左右分屏,且打开一个新的文件 |
:vsp filename | 上下分屏,且打开一个新的文件 |
切换分屏(光标切换)
命令 | 说明 |
---|---|
Ctrl + w l | 右边 |
Ctrl + w h | 左边 |
Ctrl + w j | 上边 |
Ctrl + w k | 下边 |
分屏尺寸调整
TIPS: (上下分屏生效)
命令 | 说明 |
---|---|
Ctrl + w = | 所有屏一样高度 |
Ctrl + w + | 增加高度 |
Ctrl + w - | 减少高度 |
写在结尾
这么多命令要记,想对Vim说喜欢真不容易,按耐不住就新开VScode。
少年莫慌,很多事情,难在开头,当你学会了,才会感谢当初的付出。
本文仅对常用的一些命令做了汇总,Vim的玩法还有很多。在此推荐易水博客的《Vim使用进阶》系列,干货满满。
寒梅飘香,这个寒冬,与诸君互勉。
参考文档:
- vi和vim的区别
- vim常用命令总结
- vi/vim使用进阶
作者:以乐之名
本文原创,有不当的地方欢迎指出。转载请指明出处。
Vim 利剑常磨,见血封喉 1相关推荐
- Vim 利剑常磨,见血封喉
(给Python开发者加星标,提升Python技能) 来源:以乐之名 segmentfault.com/a/1190000017502205 年底了,故事总是会有很多. 刚了一波通宵加班,趁着有时间, ...
- 公民个人信息安全须利剑“常出鞘”
最近,我的手机突然"清净"很多了,除了9月11日收到一个号码为18051953441的"响一声"诈骗电话外,就再也没有接到这类电话了,但这样的"耳根清 ...
- 5 个好用的开发者 Vim 插件
(给程序员的那些事加星标) 英文:Ricardo Gerardi,翻译:Linux中国/pityonline linux.cn/article-10563-1.html 我用 Vim 已经超过 20 ...
- sublime text 修改cmd命令_Vim 命令合集
(给Linux爱好者加星标,提升Linux技能) 来源:perlman www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html ...
- 手把手教你PyTorch项目:YOLO v3目标检测
机器之心编译 目标检测是深度学习近期发展过程中受益最多的领域.随着技术的进步,人们已经开发出了很多用于目标检测的算法,包括 YOLO.SSD.Mask RCNN 和 RetinaNet.在本教程中,我 ...
- 给小白的论文写作方法!实用率99%!
源 / 社交学术圈 写在前面的话 身为80后的入门级"青椒",经日摸索挣扎于学术研究的各个环节,写学术论文就是其中的典型一环.虽然在别人"直观"看来仅仅是一串统 ...
- 『力荐汇总』这些 VS Code 快捷键太好用,忍不住录了这34张gif动图
之前写过三篇文章,收获了极其不错的阅读量与转发量: 你真的会用 VS Code 的 Ctrl.Shift和Alt吗?高效易用的快捷键:多光标.跳转引用等轻松搞定 VS Code 中的 Vim 操作 | ...
- 被误解的明朝——中国的文艺复兴(转)
在夏咸淳著的<明末奇才--张岱论>中有这么一段话: "欧洲文艺复兴时期的光辉灿烂的文化,大批多才多艺的人物,乃是人类的骄傲.明朝时期,中国也出现了群星灿烂,人才辈出的文化景观.当 ...
- 职业成长微习惯(一):随手记录工作日志
按:半瓦工作11年,工资涨了4,5倍:有快速成长,也有懈怠和跳坑:不舒服中逐渐看到了未来更多的可能性.想写几篇文章分享我的四个微习惯:随手记录工作日志,英语(关注信息来源和非母语资料),基本功与素养, ...
最新文章
- java并发 并行 串行
- 【zabbix】安装、配置agent,配置被监控端
- 180C. Letter
- 云服务器 ECS > 标签与资源 > 标签 > 标签概述
- Mac底下java和jre路径
- 电信移动联通广电喜提5G牌照,5G手机明年爆发
- WaitForSingleObject与WaitForMultipleObjects用法详解
- 有什么软件可以测试win10电脑性能,微软能否翻盘 Win10系统4K高分优化实测
- 联合哈佛大学,Google 要用人工智能来预测地震余震
- [零基础学python]为什么要开设本栏目
- Linux自学之旅-基础命令(一)
- pdf文件如何生成目录 wps_如何使用WPS把Word文档转换为PDF文档并生成目录?
- android webview 真正实现---保存整个网页源码
- AURIX TC397 Multicore 多核
- 膜拜大神,Linux之父家中停电6天,竟然还码出新版Linux内核!
- 基于jsp的实验室预约管理系统的设计与实现
- Ubuntu 如何搭建可视化界面?
- 自从上了K8S,项目更新都不带停机的!
- 让更多的人知道如何用C#操作斑马条码打印机
- 哪怕四处碰壁也要贯彻正道