vim

命令按键规定

标记 含义
x 按一次 x
dw 按一次 d, w
dap 按一次 d, a, p
同时按 和 n
g<C-]> 按 g, 然后同时按 和 ]
<C-=> 同时按 和 w, 然后同时按 和 =

占位符

标记 含义
f{char} 按f,后面跟任意字符
`{a-z} 按`, 后面跟任意小写字母
m{a-zA-z} 按m,后面跟任意小写或大写字母
d{motion} 按d,后面跟任意动作命令
{register} 同时按 和 r,后面跟一个寄存器地址

显示特殊按键

标记 含义
按退出键
按回车键,也写
按控制键
按制表键
按切换键
同时按和
按上光标
按下光标
按空格

在命令行中操作

提示符 含义
$ 在外部shell中执行命令行命令
在命令行模式执行一条Ex命令
/ 用命令行模式执行正向查找
? 用命令行模式执行反向查找
= 用命令行模式对一个Vim脚本表达式求值

替换字符

按键操作 缓冲区内容
{start} ...content is is content is is content...
* ...content is is content is is content...
cwcopy ...content is is content is is content...
n ...content is is content is is copy...
. ...copy is is content is is copy...

可复制的操作及如何回退

目的 操作 重复 回退
做出一个修改 {edit} . u
在行内查找下一指定字符 f{char} / t{char} ; ,
在行内查找上一指定字符 F{char} /t{char} ; ,
在文档中查找下一处匹配处 /pattern<CR> n N
在文档中查找上一处匹配处 ?pattern<CR> n N
执行替换 :s/target/replacement & u
执行一系列修改 qx{changes}q @x u

反向删除

按键操作 缓冲区内容
{start} The end is nigh
db The end is h
x The end is ` `

正向删除

按键操作 缓冲区内容
{start} The end is nigh
b The end is nigh
dw The end is

删除整个单词

按键操作 缓冲区内容
{start} The end is nigh
daw Ten end is

用字数做简单的算术运算
<C-a><C-x>命令分别对数字执行加和减操作

按键操作 缓冲区内容
{start} .blog, .news { backgroud-img: url(/sprite.png);} <\br> .blog { backgroud-position: 0px 0px }
yyp .blog, .news { backgroud-img: url(/sprite.png);} <\br> .blog { backgroud-position: 0px 0px }
.blog { backgroud-position: 0px 0px }
cW.news<Esc> | .blog, .news { backgroud-img: url(/sprite.png);} <\br> .blog { backgroud-position: 0px 0px } <br> .news { backgroud-position: 0px 0px }cW.news .blog, .news { backgroud-img: url(/sprite.png);} <\br> .blog { backgroud-position: 0px 0px }
.news { backgroud-position: 0px 0px }
180<C-x> .blog, .news { backgroud-img: url(/sprite.png);} <\br> .blog { backgroud-position: 0px 0px }
.news { backgroud-position: -180px 0px }

只在必要时使用次数

按键操作 缓冲区内容
{start} I have a couple of questions.
c3wsome more I have some more questions.

Vim的操作符命令

命令 用途
c 修改
d 删除
y 复制到寄存器
g~ 反转大小写
gu 转换为小写
gU 转换为大写
> 增加缩进
< 减小缩进
= 自动缩减
! 使用外部程序过滤(motion)所跨越的行

Vim实用技巧(一)的更多相关文章

  1. ###《VIM实用技巧》

    ###<VIM实用技巧> #@author: gr #@date: 2015-11-20 #@email: forgerui@gmail.com <VIM实用技巧>阅读笔记. ...

  2. vim实用技巧总结

    1. 单个文件内实用mark来帮助跳转以及一些宏操作.(注意:mark不能用于多文件之间的跳转)mch 设置宏,保存到ch标记(不是ch寄存器)'ch 跳转到标记的行首`ch 跳转到标记的字符处另:为 ...

  3. 《Vim实用技巧》第2版读书笔记

    学习前的建议: 一.如果你需要一个功能强大的文本编辑器,速度飞快.使用方便.代码补全.编程强大.定制性强,Vim就是你需要的: 二.学习入门曲线陡峭,但是使用后期异常简单,效率超高: 三.号称可以跟上 ...

  4. Vim实用技巧系列 - 搜索

    最近发现了一个很好的VIM资源,best of vim tips, 展示了一系列很有用的vim 技巧.博主会逐个翻译介绍这些技巧. 来源: http://rayninfo.co.uk/vimtips. ...

  5. vim实用技巧

    <1> 删除空格: :% s/ //gi    #正则为一个空格,替换为空,全局匹配. <2> 删除空行: :g /^\n*$/ d  #g为global  正则为:行开始+换 ...

  6. 《vim实用技巧》读书笔记

    1.  . 命令 2.  * 命令 3.  cw 命令: (c:修改)会删除从光标位置到单词结尾间的字符,并进入插入模式. eg:  cw.copy1  即: 删除从光标位置到单词结尾间的字符,并插入 ...

  7. Vim实用技巧系列 - tab和空格的转换

    有时候,我们会修改一些代码,而这些代码中的tab设定和我们自己的设定不一样.例如,我们自己的设定是以两个空格来代替tab,而要修改的代码则是使用tab.那么,我们应该怎样快速的将又有的tab转换为空格 ...

  8. Vim实用技巧系列 - 利用百度云和git实现vim配置多机共享

    Vim是一个强大的文本编辑器.良好的配置更能便利对Vim的使用.有时候,我们会在几台不同的电脑上使用Vim. 例如,我们可能在自己的电脑和公司的电脑上都安装了Vim. 有时候,我们需要实现,如果我们配 ...

  9. Vim实用技巧系列 - 代码注释

    在写代码时候,有时候需要临时注释掉一部分代码,之后还要取消这些注释.真麻烦.那么,用Vim怎么做这件事呢? 第一种方法,块模式.                 再次声明,本系列全部以windows下 ...

  10. Vim实用技巧系列 - 开篇

    作者使用Vim已经有一段时间了,深深觉得它是一个非常强大的编辑器,使用习惯之后效率很高.最大的缺点是学习曲线比较陡峭.因此作者希望分享一些自己在实际使用中的经验来帮助初学者,同时也帮助作者自己学习. ...

随机推荐

  1. linux查杀minergate-cli/minerd病毒

    redis的漏洞让公司的服务器中了挖矿的病毒,入侵者在服务器上留了后门.每次只是把进程杀杀,但是过段时间病毒又回来了,这个事情一直让人头疼.先是minerd的病毒入侵,后是minergate-cli入 ...

  2. Python 变量类型Ⅲ

    Python 元组 元组是另一个数据类型,类似于 List(列表). 元组用 () 标识.内部元素用逗号隔开.但是元组不能二次赋值,相当于只读列表. 以上实例输出结果: 以下是元组无效的,因为元组是不 ...

  3. 爬虫之Handler处理器和自定义Opener

    一.Handler处理器和自定义Opener opener是 request.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...

  4. 14.django返回展示一张图片

    urlpatterns = [ path('admin/', admin.site.urls), # 使用django返回一张土图片的时候需要间接的访问一个中间接口,是html页面的中的img的src ...

  5. JPA学习(二、JPA_基本注解)

    框架学习之JPA(二) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  6. jsp+servlet怎么实现文件断点上传下载

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...

  7. 【深入理解CLR】2:细谈值类型的装箱和拆箱

    装箱 总所周知,值类型是比引用类型更“轻型”的一种类型,因为它们不作为对象在托管堆中分配,不会被垃圾回收,也不通过指针来引用.但在许多情况下,都需要获取对值类型的一个实例的引用.例如,假定要创建一个A ...

  8. 【BZOJ3931】[CQOI2015]网络吞吐量

    Description 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的地,路由器需要选择 ...

  9. 向android模拟器打电话发短信的简单方法

    在开发android应用程序时,有时候需要测试一下向android手机拨打电话发送短信时该应用程序的反应.譬如编写一个广播接收器,来提示用户有短信收到或者处理短信,就需要向该手机发送短信来进行测试.这 ...

  10. (77)一文了解Redis

    为什么我们做分布式使用Redis? 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.这里对  ...