首页
壁纸
关于
推荐
战略合作
Google
主题Joe
Search
1
涂鸦设备本地化接入(涂鸦电表)
13 阅读
2
CentOS 定时同步指定文件到ftp
6 阅读
3
laydate输入日期年月日时分,以十分钟为间隔,不需要秒
5 阅读
4
记一次Django_cas_ng数据库migrate错误
5 阅读
5
Centos7 安装python3并配置pip
4 阅读
运维
Windows
Linux
MacOS
Android
vmware
开发
Python
Go
Html
Electron
智家
HomeAssistant
ESPhome
Unraid
群晖
网络相关
登录
Search
标签搜索
运维
Linux
Python
django
智能家居
Nginx
MACos
brew
layui
cas
群晖
nas
zabbix
vim
JDK
sonar
jenkins
Nexus
转发
mysql
Ruike
累计撰写
29
篇文章
累计收到
109
条评论
首页
栏目
运维
Windows
Linux
MacOS
Android
vmware
开发
Python
Go
Html
Electron
智家
HomeAssistant
ESPhome
Unraid
群晖
网络相关
页面
壁纸
关于
推荐
战略合作
Google
主题Joe
搜索到
1
篇与
的结果
2019-04-26
VIM使用教程
引子研发线上使用最多的编辑器,就是vi。无论是最快查看某个文件内容,还是快速编辑某个文件,vi都能帮上忙。软件世界貌似有一些非常长寿的东西,vi算是一个。本篇文章聚焦的是研发线上最常用的一些功能。至于安装插件,写一些脚本,那一般是在开发机上玩的,生产环境没有条件、也没有时间忍受你做这些增强。希望看完本文,能够对这款神器有一个大体印象。当然,熟练的使用还需要日常有意识的培养。vim是vi的增强版,一般现代linux都不缺那几兆空间,所以预装的都是增强版,本文默认使用vim。养成习惯vim最大的贡献就是它的按键系统。这也是为什么chrome、idea、atom等编辑器都会提供一个vim mode。笔者见过很多资深的程序员,包括架构师,习惯使用方向键去控制光标的移动。这不能说不对,但这也抛弃了vim最大的精华所在,效率上低了一大截。坚持使用h、j、k、l,你会感谢你今天的纠正。大脑和手指真的是有记忆,当你用的足够多,这也就成了你约定俗成的设定。vim另外一个特点就是带模式的。一共四种模式,我们不需要记忆,只需要使用例子去理解即可。不要添乱不要使用vim打开大文件,vim会一次性读取所有内容到内存,容易造成宿主机内存溢出。 打开文件前,可以使用du -h命令查看文件大小。一般,100MB以下为宜。常用操作以下操作在普通模式下执行,连续按键漫游j 向下30j 向下移动30行k 向上h 向左l 向右0 到行首^ 到行首第一个字符,如果前面有空格的话$ 到行尾gg 快速到文件头G 快速到文件尾100G 跳转到第100行不建议在插入模式下进行光标移动,这很低效复制:yyy 复制一行10yy 向下复制10行yw 复制光标开始的一个单词y$ 复制光标到行尾yfB 复制光标到第一个大写B中间的内容y2fB 复制光标到第二个大写B中间的内容剪切: xx 向剪切一个一个字符,如果是在行尾,则为向前剪切3x 剪切三个xp 非行尾交换两个字符,如从bs变成sb删除:d删除的内容会放到剪贴板,按p即可粘贴到其他地方dd 删除一行200dd 删除200行dw 删除一个单词 (最喜欢啦)df" 删除到出现的第一个双引号粘贴: pp 粘贴复制或剪切的内容3p 将复制或剪切的内容粘贴三次可视化模式v 行模式,选择一些内容可视化模式是非常有用的一种模式,在普通模式下按v即可进入。 使用h、j、k、l进行漫游,选中相应的内容。例子,选中一部分想要的内容,并删除。ctrl+v 块模式演示:将文件中的每一行添加到ArrayList中:1) 在命令模式下,执行%s/$/");/g,在行尾追加数据2) 按ESC进入普通模式,并使用gg回到行首3) 按ctrl+v进入可视化模式,然后按G到文件尾4) 不要理会编辑器反应,按I进入插入模式,输入list.add("5) 按ESC回到普通模式,可以发现以上输入已经在每一行生效了块模式还可以完成列的呼唤,貌似在UE里见过此神技。命令模式上面的例子里已经展示了命令模式的进入模式。在普通模式下,输入:即可进入。%s/$/sth/ 在行尾追加sth%s/^M//g 替换掉dos换行符,\^M使用ctrl+v + Enter即可输入:g/^\s$/d* 删除空行以及只有空格的行%s/#.*//g 删除#之后的字符没错,命令模式用的是正则,这些经验是通用的你已经发现了,这大概就是针对编辑器窗口的sed命令。查找字符串同样的,正则的知识也可以应用*在普通模式下,按下/直接进入查找,输入相应的字符串按确定即可。n 查找下一个匹配N 查找上一个匹配2n 查找下面第二个匹配如果觉得跳来跳去晕头转向,可以在命令模式下输入set nu开启行号。宏录制这可以说是vim的一个杀手锏了。拿上面的例子来说。 将文件中的每一行添加到ArrayList中。1) 按下gg到行首2) 按下qa进行宏录制,a是我们起的一个标记名称3) 按I进入插入模式,输入list.add("4) 按ESC进入普通模式,然后按$跳到行尾5) 按j进入下一行,然后按^回到行首6) 再次按下q结束宏录制7) 输入@a触发宏测试一下录制效果8) 输入100@a重复宏100次,也就是影响下面的100行可以录制不同的多个宏,方面的进行批量操作其他另外用的一些比较少的主要功能有r 替换字符ggVG 全选u 恢复更改J 合并下一行gU 光标处转大写ggguG 整篇文章大写转化为小写% 跳转到下一个匹配,如在<div>上按%,则跳转到相应的</div>:e /tmp/a 在同一个编辑器内打开/tmp/a文件。同一个编辑器的缓冲区是剪贴板是共享的,可以方便在多个文件中复制bp 跳转到上一个缓冲区bn 跳转到下一个缓冲区退出编辑器wq 保存当前文件并退出wqa 保存所有文件并退出q! 不保存,直接退出qa! 有多个文件被打开,同时退出本篇文章只聚焦常用功能,帮助读者快速处理线上文本。至于更多的,也装不下,只有你自己去探索喽。vim的入门门槛比较高,幸运的是,用多了,你就无法释手了。
2019年04月26日
4 阅读
22 评论
0 点赞