# vim常用技巧

## 行操作
-----------------------------
- 行首 0
- 行尾 $
- 第一个非空字符 ^

## 列编辑模式
-----------------------------
- windows下Ctrl + q进入可视块
- linux下Ctrl + v进入列编辑模式

- 选中需要操作的部分,Shift + i 进入插入模式
- 输入要插入的字符
- ESC

## 撤销
-----------------------------------------------------
- 撤销 u
- 反撤销 ctrl+r

## 缩进
-----------------------------
- v进入可视模式
- 选择多行,< 左缩进,> 右缩进

## 十六进制
-----------------------------------------------------
:%!xxd ---->切换到十六进制显示
:%!xxd -r ---->切回文本方式显示

## 显示空格
-----------------------------------------------------
- 空格显示黄色的背景色,特别难看。
- 后面用set nohls,取消空格显示
- 取消语法高亮显示 :noh

## 翻页
-----------------------------------------------------
Ctrl + f 向前翻页
ctrl + b 向后翻页

Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏

## 复制粘贴
-------------------------------------------
- 复制特定的某一段:把光标移到要复制的文本的头部,按下“v”,往后移动光标,光标所过之处的字符>都会高亮,移到欲复制文本的尾部后,按下“y”,高亮文本全部被复制到剪粘板。按下“p”粘贴到目的地。
- 剪切特定的某一段:把光标移到要剪切的文本的头部,按下“v”,往后移动光标,光标所过之处的字符>都会高亮,移到欲剪切文本的尾部后,按下“d”,高亮文本全部被复制到剪粘板。按下“p”粘贴到目的地。

## 查找
-------------------------------------------
- /a4 查找字符
- /00/ a4 有空格用转义符\Space
- n 正向选择
- N 反向选择

## 插入多个空行不进入插入模式
-----------------------------
1. 输入数字(行数)
2. o/O
3. ESC
4. 例如插入3个空行 3 + o + ESC

## 统计字符串出现次数
-----------------------------
:%s/字符串//ng

### 大小写转换
-----------------------------
- ~ 光标处字母大小写转换
- gU 进入可视模式,小写转大写
- gu 进入可视模式,大写转小写

### 行首或行尾添加
-----------------------------
- 行首添加 `:%s/^/要添加的内容`
- 行尾添加 `:%s/$/要添加的内容`

### 全局替换
-----------------------------
- 替换 `:%s/原内容/新内容/g`

#### 批量操作
-----------------------------
- 4yy 复制
- 4dd 删除
- 4gg 移动到第4行
- d} 删除段

### 统计字数
-----------------------------
在visual(可视)模式下,选中要统计的文本,先按g,再按Ctrl+g

### 交换行
-----------------------------
- ddp 交换行

- xp 交换字符

### vim的历史命令窗

-----------------------------

有时候在vim下边会出来另一个窗口,因为在我想退出编辑器时把“:q”敲成了“q:”。号称这个就是vim的命令历史窗口。要退出这个窗口也很简单,直接按回车或者输入“:q”都可以。

### 推荐
-----------------------------
- [推荐vim配置](http://www.cnblogs.com/jiftle/p/7216282.html)

## 引用
-----------------------------

- [Windows下配置Vim插件管理器](http://www.cnblogs.com/jiftle/p/6918157.html)
- [VIM高效率操作 (转载)](http://www.cnblogs.com/ggjucheng/archive/2011/12/15/2288809.html)
- [vim实用配置(转)](http://www.cnblogs.com/ggjucheng/archive/2011/12/15/2288795.html)

vim常用技巧的更多相关文章

  1. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  2. [skill][vim] 常用技巧与配置

    一:  光标行列高亮 可以使用 :help highlight 查看相信帮助可颜色配置. set cursorline set cursorcolumn highlight Cursorline ct ...

  3. vim使用技巧(插入,删除,查找,复制,粘贴,剪切)

    原文链接:http://blog.csdn.net/qq_38646470/article/details/79643000 编程人员很喜欢的编辑器:vim 先搞清楚vim的三种模式: 1.命令模式: ...

  4. vim 常用操作技巧

    记录常用的vim操作技巧,基本满足90%的日常编辑使用. 文档操作 vim test.txt 打开当前目录下的test.txt文档,若不存在则创建该文件 :w 保存当前修改到文件 :w bak.txt ...

  5. [转]vim常用命令

    [转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...

  6. vi 常用技巧

    vi/vim : Visual Interface/VI iMproved VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需 ...

  7. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  8. 无插件VIM编程技巧(网摘)

    无插件VIM编程技巧 原文出处:[陈皓 coolshell] 相信大家看过<简明Vim教程>也玩了<Vim大冒险>的游戏了,相信大家对Vim都有一个好的入门了.我在这里把我日常 ...

  9. Vim使用技巧汇总

    一 写在开头 1.1 本文内容 Vim使用技巧与学习资源汇总. 二 Vim学习资源 1. Vimtutor 2. Vim中文帮助(http://vimcdoc.sourceforge.net/doc/ ...

随机推荐

  1. Xamarin Essentials教程屏幕常亮ScreenLock

    Xamarin Essentials教程屏幕常亮ScreenLock   在一段时间内,如果用户没有对设备进行操作,设备就会自动关闭屏幕.用户必须手动操作,才能点亮屏幕.但是很多应用需要在用户没有操作 ...

  2. NOIP2017 题解(给自己看的) --有坑要填

    目录 D1T1精妙证明: D1T3 D2T2 几道水题就不写了.... D1T1精妙证明: 把ax+by = z 的z按照模a剩余系分类 由于\((a,b)=1\)所以对于每个\(k\in[0, a) ...

  3. java之XML

    //转为XML格式 public static String ArrayToXml(Map<String, String> arr) { String xml = "<xm ...

  4. STM32串口usart发送数据

    主函数请直接关注41行到47行代码!! #include "stm32f10x.h" // 相当于51单片机中的 #include <reg51.h> #include ...

  5. 护眼党必备良心app

    这几天用电脑用得厉害,眼睛经常感到疲劳,寻思着买个好点的蓝光眼镜.本来已经看上一个100+RMB的“高端”防蓝光眼镜,结果逛知乎发现了这两个app,能直接让电脑和手机屏幕过滤掉蓝光从而有效缓解视觉疲劳 ...

  6. js 基本包装类型 String

    为了操作基本类型值,ECMAScript提供了三个特殊的引用类型: Boolean , Number , String 举例: var s1 = "some text"; var ...

  7. Ruby面向对象

    Ruby面向对象 ​ Ruby是真正的面向对象语言,一切皆为对象,甚至基本数据类型都是对象 基本用法 class Box # 构造函数 def initialize(w,h) @with, @heig ...

  8. __getitem__函数

    主要是为了探究第三行为什么打印出很多提示信息,然后探究了下为什么有第三行这种写法,是因为 这个类中定义了def __getitem__(self, query),这样就可以类似于list那种用法了.但 ...

  9. Java中的RASP实现

    RSAP RASP是Gartner公司提出的一个概念,称:程序不应该依赖于外部组件进行运行时保护,而应该自身拥有运行时环境保护机制: RASP就是运行时应用自我保护(Runtime applicati ...

  10. Column 'u_id' in field list is ambiguous