###《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

dwcw都只能删除当前字符到单词最后,使用dawdcw可以删除整个字符,并且会把前面的空格也删除。

5. global

  1. :g/{pattern}/ [cmd]

     :g/^\s*$/ d    #删除空格行
  2. :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简写为tmove简写为md删除。

:[range] copy {address}
:6copy. # 把第6行复制到当前行
:10,$ m . # 把第10行到最后一行内容移动到当前行

18. 执行上次Ex命令

@:执行上次Ex命令

19. 插入模式执行命令

在插入模式中,如果不想退出,当前行显示在屏幕中央,可以<C-o> zz

插入模式中,用<C-r>寄存器输入寄存器的内容。用<C-r>=做运算。

###《VIM实用技巧》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. Spring和Hibernate集成的HibernateTemplate的一些常用方法总结

    1:get/load存取单条数据 public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get ...

  2. 配置iSCSI多路径

    1.添加MPIO功能,完成后打开MPIO进行配置,添加对iSCSI多路径的支持,如下图表示已经添加完成后灰色不可选,再打开 MPIO设备 标签页可以看到已安装完成的MPIO所支持的设备:

  3. C++ 内存相关

    1.C++的内存管理可分为以下几个部分: 栈:记录程序的执行过程. 堆:采用new,delete申请释放内存. 自由存储区:对应于C中使用malloc,free申请释放内存. 全局存储区:也叫静态存储 ...

  4. 从零开始学android开发-用Intent启动Activity的方法

    启动另外一个Activity,可以有的方法有用setClass()和Component Name 1. 先说在setClass启动一个Activity的方法吧: Intent intent = new ...

  5. Codeforces Gym 100513I I. Sale in GameStore 暴力

    I. Sale in GameStore Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100513/p ...

  6. Windows 窗体的.Net 框架绘图技术

    当编写一个典型的Windows 窗体程序时,窗体和控件的绘制.效果等操作是不需要特别加以考虑的.这是为什么呢?因为通过使用 .Net 框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件 ...

  7. delphi 为应用程序添加提示

    type  TForm1 = class(TForm)    Button1: TButton;    Panel1: TPanel;    Edit1: TEdit;    procedure Fo ...

  8. js实现自己定义鼠标右键-------Day45

    又是周末了,只是事实上这在国外应该算是一周的開始吧,无论怎么说,今天是在歇息,放松我紧绷的神经,放松我有些疲惫的精神,昨晚上要裂了般的头疼,仿佛全部的数据都在脑子字面飞舞旋转,伴着一阵阵的恶心,当时把 ...

  9. 【android】在eclipse中查看genymotion模拟器的sd卡文件夹

    假设用google自带模拟器或者真机调试时,sd卡文件夹是在/mnt/sdcard.这个相信大家都知道. 但是今天用genymotion调试时.发现根本打不开/mnt/sdcard这个文件夹,当时也没 ...

  10. Metadata Lock原理7

    http://blog.itpub.net/22664653/viewspace-1791744/ 一 简介 通过前面两篇文章的介绍,相信读到这里的各位对MDL 锁已经有了比较深入的了解了,本文将结合 ...