###《VIM实用技巧》
###《VIM实用技巧》
#@author: gr
#@date: 2015-11-20
#@email: forgerui@gmail.com
《VIM实用技巧》阅读笔记。
1. 使用>, <进行缩进
>G #从当前行缩进到最后一行
v > #利用v选中需要缩进的行,然后缩进
2. f行内快速定位
要在一行内快速移动到某个字符,使用f。
f+ #定位到本行中的+
使用;
定位下一个,,
定位上一个。
3. s
s
命令可以删除当前字符,并切换到编辑模式。
S
命令可以删除当前行,并切换到编辑模式。
C
= c$
,删除当前行所在字符以后的所有字符。
4. aw
用dw
、cw
都只能删除当前字符到单词最后,使用daw
、dcw
可以删除整个字符,并且会把前面的空格也删除。
5. global
:g/{pattern}/ [cmd]
:g/^\s*$/ d #删除空格行
:g/{pattern}/ [range] [cmd]
:g/{/ .+1, /}/-1 sort #对大括号里内容进行排序
6. 自动补全
<C-n>
上一条
<C-p>
下一条
7. 可视区
用gv
选中上一次的选中可视区。'<, '>
也表示上一次选中区。
:'<, '> d
8. 大小写转换
gU
变大写
gu
变小写
g~
大小写互换
9. 寄存器
"
:默认寄存器
0
:复制专用寄存器
+
:系统寄存器
与系统进行复制。
"+y //复制内容到系统寄存器
"+p //粘贴系统寄存器内容
其它寄存器:
"%
:当前文件名
"/
:上次查找的模式
10. set paste
当用系统寄存器粘贴时,由于autoindent
会导致许多缩进,这时使用set paste
选项就可避免,粘贴完使用set nopaste
关闭即可。
11. 跳转
'a
:单引号跳转到行
``a`:跳转到具体单词
<C-o>
:返回到上一条位置
12. 行间移动
w
:下一个单词开头
b
:上一个单词开头
e
:下一个单词结尾
ge
:上一个单词结尾
f
:查找下一个字符
t
:查找上一个字符
13. 文件状态
<C-g>
查看当前文件状态。
14. 用root用户保存
:w !sudo tee %
15. 文件系统
:e ../ #打开上层目录
:E #打开当前目录
- #返回上层目录
16. 自动补全
<C-d>
:自动补全,忘记命令时可以使用自动补全查看候选项
set exp<C-d>
17. :t
,:m
copy
简写为t
,move
简写为m
,d
删除。
:[range] copy {address}
:6copy. # 把第6行复制到当前行
:10,$ m . # 把第10行到最后一行内容移动到当前行
18. 执行上次Ex命令
@:
执行上次Ex命令
19. 插入模式执行命令
在插入模式中,如果不想退出,当前行显示在屏幕中央,可以<C-o> zz
。
插入模式中,用<C-r>
寄存器输入寄存器的内容。用<C-r>=
做运算。
###《VIM实用技巧》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- cocos2d-x CCScrollView
转自:http://www.cnblogs.com/dcxing/archive/2012/12/31/2840217.html ScrollView一般用在游戏的关卡选择这种类似的场景还有帮助这种场 ...
- BZOJ 2705: [SDOI2012]Longge的问题 GCD
2705: [SDOI2012]Longge的问题 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnl ...
- 关于c#调用C++代码的一些应用的体会
1.dll函数的导入: 关键字:unmanaged code ; managed code; 具体应用类:System.Runtime.InteropServices 具体使用方法: ...
- 解决使用DevExpress开发错误:未将对象引用设置到对象的实例
在使用DevExpress是总是会出现一些状况.这次同事在他的机器上调试完成的代码发过来,却出现"未将对象引用设置到对象的实例"的错误,提示是Resources.resx的问题.另 ...
- HDU 1498 50 years, 50 colors (行列匹配+最小顶点覆盖)
题目:点击打开链接 题意:每个格子有不同颜色的气球用不同数字表示,每次可选某一行 或某一列来戳气球.每个人有K次机会.求最后哪些气球不能在 k次机会内 ...
- yii2 rbac 设计
tbl_auth_item 根据type存储认证项目...role.task.operation 游客... 不能操作任何模块 普通用户 ..biz_rule..需要登录 只有这里返回true,才能进 ...
- MHA手动切换 原创2 (主参与复制)
monitor 执行下面命令后, --orig_master_is_new_slave :原主变为新从,即server1变成了slave1的从.slave2跟据app1.conf中配制也变成了slav ...
- Hidden Markov Model
Markov Chain 马尔科夫链(Markov chain)是一个具有马氏性的随机过程,其时间和状态参数都是离散的.马尔科夫链可用于描述系统在状态空间中的各种状态之间的转移情况,其中下一个状态仅依 ...
- cmd运行java,含传参,引用jar
1,创建一个java project,完成编码 在Eclipse的资源管理器中选中你要打包的项目,右键点击,选择“导出”项,弹出导出对话框,在下面的Java目录下选择“JAR 文件”项,下一步,在导出 ...
- ResponseBody的使用
使用Spring的@ResponseBody有时还是挺方便的,在ajax调用返回纯字符串时有中文编码问题. @ResponseBody @RequestMapping(value="/dec ...