Vim实用技巧(一)
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实用技巧(一)的更多相关文章
- ###《VIM实用技巧》
###<VIM实用技巧> #@author: gr #@date: 2015-11-20 #@email: forgerui@gmail.com <VIM实用技巧>阅读笔记. ...
- vim实用技巧总结
1. 单个文件内实用mark来帮助跳转以及一些宏操作.(注意:mark不能用于多文件之间的跳转)mch 设置宏,保存到ch标记(不是ch寄存器)'ch 跳转到标记的行首`ch 跳转到标记的字符处另:为 ...
- 《Vim实用技巧》第2版读书笔记
学习前的建议: 一.如果你需要一个功能强大的文本编辑器,速度飞快.使用方便.代码补全.编程强大.定制性强,Vim就是你需要的: 二.学习入门曲线陡峭,但是使用后期异常简单,效率超高: 三.号称可以跟上 ...
- Vim实用技巧系列 - 搜索
最近发现了一个很好的VIM资源,best of vim tips, 展示了一系列很有用的vim 技巧.博主会逐个翻译介绍这些技巧. 来源: http://rayninfo.co.uk/vimtips. ...
- vim实用技巧
<1> 删除空格: :% s/ //gi #正则为一个空格,替换为空,全局匹配. <2> 删除空行: :g /^\n*$/ d #g为global 正则为:行开始+换 ...
- 《vim实用技巧》读书笔记
1. . 命令 2. * 命令 3. cw 命令: (c:修改)会删除从光标位置到单词结尾间的字符,并进入插入模式. eg: cw.copy1 即: 删除从光标位置到单词结尾间的字符,并插入 ...
- Vim实用技巧系列 - tab和空格的转换
有时候,我们会修改一些代码,而这些代码中的tab设定和我们自己的设定不一样.例如,我们自己的设定是以两个空格来代替tab,而要修改的代码则是使用tab.那么,我们应该怎样快速的将又有的tab转换为空格 ...
- Vim实用技巧系列 - 利用百度云和git实现vim配置多机共享
Vim是一个强大的文本编辑器.良好的配置更能便利对Vim的使用.有时候,我们会在几台不同的电脑上使用Vim. 例如,我们可能在自己的电脑和公司的电脑上都安装了Vim. 有时候,我们需要实现,如果我们配 ...
- Vim实用技巧系列 - 代码注释
在写代码时候,有时候需要临时注释掉一部分代码,之后还要取消这些注释.真麻烦.那么,用Vim怎么做这件事呢? 第一种方法,块模式. 再次声明,本系列全部以windows下 ...
- Vim实用技巧系列 - 开篇
作者使用Vim已经有一段时间了,深深觉得它是一个非常强大的编辑器,使用习惯之后效率很高.最大的缺点是学习曲线比较陡峭.因此作者希望分享一些自己在实际使用中的经验来帮助初学者,同时也帮助作者自己学习. ...
随机推荐
- VS2017 + EF + MySQL 环境配置
我使用过程中遇到的坑(血泪啊) 安装环境VS2017MVC+WIN10+EF6+MySQL8.0.12 1.安装MySQL connector一定要6.10.8,8.0以上全是坑,会闪退!!! 2.安 ...
- java-dockerfile
java环境dockefile FROM centos:7 MAINTAINER yon@taexa.com ENV JAVA_HOME /usr/local/jdk ENV JRE_HOME ${J ...
- BZOJ 4399: 魔法少女LJJ 线段树合并 + 对数
Description 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了LJJ感叹道“这里真是个迷人的绿色世界,空气清新.淡雅,到处散发着 ...
- Codeforces 950D A Leapfrog in the Array ( 思维 && 模拟 )
题意 : 给出 N 表示有标号 1~N 的 N 个数,然后从下标 1 开始将这 N 个数每隔一位放置一个,直到 N 个数被安排完,现在有一个操作就是每次将数列中最右边的数向离其左边最近的空缺处填上,一 ...
- codevs 5935 小球 x
题目描述 Description 许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点.然后继续下降时 ...
- 目标检测:AlexNet
AlexNet是2012年ImageNet竞赛冠军. 它是在CNN的基础上设计的,CNN(卷积神经网络)可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的 ...
- vue 使用 axios 时 post 请求方法传参无法发送至后台
axios 时 post 请求方法传参无法发送至后台报错如下 Response to preflight request doesn't pass access control check: No ' ...
- 新年第一发--HDU1848--Fibonacci again and again(SG函数)
Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的:F(1)=1;F(2)=2;F(n)=F(n-1)+F(n-2 ...
- Oracle生成ASH报告
1.ASH (Active SessionHistory) ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件.不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成. v ...
- Burpsuiet爆破
burpsuite中intruder标签内attack type四种类型的用法和区别 2016年07月24日 18:13:26 xss_01 阅读数:9802更多 个人分类: burpsuite网络安 ...