vim的设计理念是:组合。
命令的组合,模式的组合,
 
 
普通模式
左: h 上:k 下:j 右 : l
 
i : 当前光标处插入
I: 到光标所在行的行首进入插入模式
a: 在当前光标的后一位进入插入模式(append追加)
A: 光标所在行尾进入插入模式
o: 当前行的下面开启新的一行,进入插入模式
O: 当前行的上面一行开启新的一行,进入插入模式
 
定位:
gg: 定位到文档头
G: 定位到文档尾
nG:移至第n行
H:移至屏幕上面
M:屏幕中间
L:屏幕下面
*:读取光标处字符串,并移动至下一处同样内容
#:读取光标处字符串,并移动至上一处同样内容
CTRL-f:向下移动一屏
CTRL-b:向上移动一屏
 
复制(yank):
nyy :  复制n行
粘贴(paste):
np : 将最后一次删除或复制的内容(即寄存器的内容)粘贴n次
 
查找:
/  +字符串       或者空格:(空格是自定义键)(向后查找字符串)
?+字符串      (向前查找字符串)
之后按n键定位至下个目标处。
 
替换:
r+要替换的字符:替换光标所在处的字符
 
撤销:u
反撤销: Ctrl + r
 
删除/剪切 (删除是将目标内容移至寄存器,可以粘贴):
x : 删除当前光标下的字符
dw:从光标处删除至一个单词的末尾(包含空格)
de:从光标处删除至一个单词的末尾(不包含空格)
(n)dd:删除当前(n)行
d$:删除当前光标到行尾(to the end of line)
D: 删除当前光标到行尾(自定义)(=d$)
dG : 删除到文档尾(自定义)
 
删除总结:
格式如下:
number d object 或者  d number object
其中number代表执行命令的次数,默认为1;d代表删除;object代表命令操作的对象(w--光标处删除至一个单词的末尾,包含空格;e--光标处删除至一个单词的末尾,不包含空格;$ --行尾,当前光标到行尾;j--移动到下一行;^--行首,光标至行首;)
 
退出插入模式: Esc

结构化的删除:
cit/cat : 删除标签结构(tag)
ci<>/ca<> : 删除尖括号,或者里面内容
ci()/ca(): 删除小括号,或者内容
ci[]/ca[]: 删除中括号,或者里面的内容
ci{}/cat{}: 删除大括号.或者里面的内容

Zend-Coding
html: (xs/xt/5)  -->Ctrl + y -->,

插入/输入模式

Ctrl + n : 向左移动光标
Ctrl + l : 向右移动光标
Ctrl + j : 向下
Ctrl + k : 向上移动光标

Ctrl + h : 删除前一个

命令行模式:
:w  <回车>保存
:q  <回车> 退出
:q!<回车> 强制退出(不保存)
:wq <回车> 保存再退出
:set fenc<回车> 查看文档的编码
 
:%s   /原始内容/替换的内容/g <回车>   替换    --------(g--global全局的,此处即为替换所有。不加g为替换第一个。不加%为在一行内替换所有。逐项询问用户确认为/gc)
 
 
 
 
普通模式的移动相关的命令:
概念--motion:当光标从一处移动到另一处,这两点之间的文本被称作“跨过”,这里的命令被称作motion。
 
b:向前移动一个单词
w:向后移动一个单词
0(数字):移至当前行首
^:移至当前行第一个字母
$:移至当前行行尾
):移至下一个句子
(:移至上一个句子
%标签对应

VIM的一些操作小技巧的更多相关文章

  1. OMG,12 个精致的 Java 字符串操作小技巧,学它

    字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位.不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的 ...

  2. mysql避免数据库误操作小技巧(转)

    避免混淆开发环境的DB和生产环境的DB这在小公司小团队尤其常见.一个人即负责开发,又管DB.桌面上开了一坨终端,有的是开发的DB,有的是生产的DB.一不留神,就写串了,或者粘贴串了.更郁闷的是,有时候 ...

  3. vim字符串替换及小技巧

    vi/vim 中可以使用 :s 命令来替换字符串.以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询. :s/vivian/s ...

  4. mac文本操作小技巧——2019年10月17日

    声明:看的别人博主写的,自己整理的,非原创,只是自用. mac文本操作技巧 官方指导文档:https://support.apple.com/zh-cn/HT201236 1.光标移动 1.1 行首. ...

  5. Windows 操作小技巧 之一(持续更新)

    1.图片批量旋转 通常携带单反去景点排了大量照片回来处理图片时都会遇到很多横竖杂乱排序的图片难以处理的情形.现提供如下技巧进行处理. 1).在文件夹中添加"方向"的排列或分组选项: ...

  6. My操作小技巧

    1.当我们新增一条数据之后想要获取其自增长的id,可以紧随新增语句后调用 SELECT last_insert_id();即可获得,一般搭配变量一起使用 SELECT @newUserId:=last ...

  7. Intellij IDEA的一些操作小技巧

    1.Presentation Mode 我们可以使用 Presentation Mode,将IDEA弄到最大,可以让你只关注一个类里面的代码,进行毫无干扰的 coding.可以使用Alt+v快捷键,弹 ...

  8. Unity操作小技巧

    1.操作类 1)F:选择物体后聚焦 2)V:选择物体的顶点,顶点吸附 3)Ctrl:摁住后拖动物体,可以按照系统设置的步长进行移动(Edit -> Snap setting) 4)Q W E R ...

  9. linux操作小技巧

    巧妙利用别称 alias,让工作更有效率 在我的个人目录下/home/zdwu,打开.bashrc文件进行修改: 将  ll='ls -alF' 改为 ll='ls -ahlF',是的观察的结果显示更 ...

随机推荐

  1. AJAX原生JS代码

    var http_request = false;function send_request(method,url,content,responseType,callback){ http_reque ...

  2. 集合的概念 Stack和Queue Dictionary ArrayList和List<T>方法及用法

    Stack和stack<T>方法一样// 管理方式: 后进先出 LIFO 栈// Stack<string> s=new Stack<string>();//(放一 ...

  3. DATE 日期格式

    Oracle TO_DATE 日期格式 Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02   13:45:25为例)           ...

  4. oracle 的 nubmer 类型与 C# 的 float double decimal 对应关系

    如果先有oracle 数据的情况下,怎么对应到C#中的类型. 在oralce 中 在dba_tab_columns表中, Data_type表示字段类型:Data_length表示字段类型的长度:Da ...

  5. css学习中的一些英文单词

    indent 缩进 through通过 decoration装饰 position定位

  6. Qt4.8.5 QtWebKit QWebView 用户栈检查崩溃问题的思考

    最近在项目中,发现在使用Qt4.8.5 提供的QWebView与网页交互的时候, m_pWebView->page()->mainFrame()->evaluateJavaScrip ...

  7. python打印服务器所有进程

    #有时候我们需要查看服务器上所有进程,来判断哪些进程是否已经称为僵尸进程#!/usr/local/bin/python3.5 import psutil for i in psutil.pids(): ...

  8. 纯JS实现中国行政区域上下联动选择地址

    一.实现目的: 如标题所述,通过JS来实现地址的选取,上一篇博客介绍的方式是通过java读取txt资源文件来实现地址的选择,通过ajax方式访问服务器实现省市区联动.此篇中将介绍如何使用JS实现相同功 ...

  9. DBCP数据源连接池实现原理分析

    前些天在调试公司系统的时候发现这样的一个问题:mysql数据库服务停止一段时间后再次重启后吗,tomcat服务无法请求数据库服务,调试了半天对这个问题进行定位解决,期间也搞了很多有关mysql数据库的 ...

  10. [题解]USACO 1.3 Wormholes

    Wormholes Farmer John's hobby of conducting high-energy physics experiments on weekends has backfire ...