1. 认识模式

vim 一共有四种模:

1. 正常模式
2. 插入模式
3. 命令模式
4. 可视模式

1.1 正常模式

vim 打开一个文件时,处于正常模式。

正常模式一般用来浏览文件,也可进行复制、粘贴、删除等操作。

浏览文件时,可以采用一些快捷键在文本中进行跳转。

:无论当前处于什么模式,按下 ESC 键 都会回到正常模式。

1.2 插入模式

插入模式:在正常模式下,按下(i/I/a/A)键即可进入插入模式;当我们需要编辑文本时,可以进入这个模式。

1.3 命令模式

命令模式:在正常模式下,按下(:)冒号即可进入命令模式,这个模式可以输入vim 的一些命令或是第三方插件的命令。

1.4 可视模式

可视模式:在正常模式下,按下(v)键即可进入可视模式,按上下键可以选中一块文本,然后对这个文件进行操作,和windows鼠标选中文本类似。

2. 常用快捷键

保存文件&退出

:w   // 保存文件
:q // 退出vi
:wq // 保存退出
:wq! // 保存强制退出
:q! // 强制退出
:x // 保存退出

光标跳转

//字符级
h // 左移一个字符
l // 右移一个字符
f/F<c> // 移动到本行下一个字符<c>、上一个字符<c>
t/T<c> // 移动到本行下一个字符<c>之前、上一个字符<c>之后 //单词级
w // 移动到下一个单词
b // 移动到上一个单词
e // 移动到当前单词的词尾
* // 移动到下一个相同的单词
# // 移动到上一个相同的单词 //行级
j // 移动到下一行
k // 移动到上一行
gg // 跳转到文本第一行
G // 跳转到文本最后一行
<n>gg // 跳转到第n行
<n>l // 跳转到本行的第n列
0 // 跳转到行首
^ // 跳转到行首第一个非空格字符
$ // 跳转到行尾 //函数级
gd // 跳转到局部变量的定义处 //屏幕级
<Ctrl>+f // 向前翻一页
<Ctrl>+b // 向后翻一页
<Ctrl>+d // 向前翻半页
<Ctrl>+u // 向后翻半页

复制、粘贴、删除

// 简单操作
yw // 复制单词
yy // 复制一行
dw // 删除单词
dd // 删除一行
p // 粘贴 // 更复杂操作(d/y+光标移动) //区域操作(可视化模式选中文本 + d/y)

参考:【vim】模式与模式切换

1. VIM 系列 - 简单入门,拾起兴趣的更多相关文章

  1. Elasticsearch系列---简单入门实战

    概要 本篇主要介绍一下Elasticsearch Document的数据格式,在Java应用程序.关系型数据库建模的对比,介绍在Kibana平台编写Restful API完成基本的集群状态查询,Doc ...

  2. HTML5简单入门系列(五)

    前言 本篇将讲述HTML5的服务器发送事件(server-sent event) Server-Sent 事件 Server-Sent 事件是单向消息传递,指的是网页自动获取来自服务器的更新. 以前的 ...

  3. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  4. EF CodeFirst系列(1)---CodeFirst简单入门

    1.什么是CodeFirst 从EF4.1开始,EF可以支持CodeFirst开发模式,这种开发模式特别适用于领域驱动设计(Domain Driven Design,大名鼎鼎的DDD).在CodeFi ...

  5. emacs最简单入门,只要10分钟

    macs最简单入门,只要10分钟  windwiny @2013    无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...

  6. 数据结构和算法(Golang实现)(1)简单入门Golang-前言

    数据结构和算法在计算机科学里,有非常重要的地位.此系列文章尝试使用 Golang 编程语言来实现各种数据结构和算法,并且适当进行算法分析. 我们会先简单学习一下Golang,然后进入计算机程序世界的第 ...

  7. 一篇文章带你了解服务器操作系统——Linux简单入门

    一篇文章带你了解服务器操作系统--Linux简单入门 Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的 在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等 ...

  8. 一篇文章带你了解NoSql数据库——Redis简单入门

    一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...

  9. 一篇文章带你了解轻量级Web服务器——Nginx简单入门

    一篇文章带你了解轻量级Web服务器--Nginx简单入门 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器 在本篇中我们会简单介绍Nginx的特点,安装,相关指令使用以及配置信 ...

随机推荐

  1. Spark SQL UDAF示例

    UDAF:用户自定义聚合函数 Scala 2.10.7,spark 2.0.0 package UDF_UDAF import java.util import org.apache.spark.Sp ...

  2. .net基础学java系列(二)IDE

    上一篇文章.net基础学java系列(一)视野 废话: "视野"这篇文章,管理员说它比较空洞!也许初学者看不懂表格中的大部分内容!多年的neter估计也有很多不知道的! 有.net ...

  3. Selenium自动化测试之元素定位

    步骤: 1.通过前端工具,查看元素的属性 2.通过属性定位 iddriver.findElement(By.id("kw")) namedriver.findElement(By. ...

  4. python全栈开发day115、116-websocket、websocket原理、websocket加解密、简单问答机器人实现

    1.websocket 1.websocket 与轮询 轮询: 不断向服务器发起询问,服务器还不断的回复 浪费带宽,浪费前后端资源 保证数据的实时性 长轮询: 1.客户端向服务器发起消息,服务端轮询, ...

  5. 基于SSL实现Mysql加密主从

    Mysql主从复制是明文传输的,对于一些特殊的场合是绝对不允许的,数据的安全性会受到威胁,在这里,简单的构建基于SSL的mysql主从复制 Ps:这里采用master-mysql为CA服务器 主端生成 ...

  6. UOJ#129. 【NOI2015】寿司晚宴 动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ129.html 题解 考虑把大于等于 $\sqrt n$ 的质数和小于 $\sqrt  n$ 的分开考虑: 1. 小于等于 ...

  7. 线程池ThreadPoolTaskExecutor配置说明

    一般实际开发中经常用到多线程,所以需要使用线程池了, ThreadPoolTaskExecutor通常通过XML方式配置,或者通过Executors的工厂方法进行配置.  XML方式配置代码如下:交给 ...

  8. adjustResize模式下ExpandaleListView中输入框焦点错乱及布局底部的导航栏被顶在键盘上方的处理

    为了更好的用户体验,煎熬了许久,得到这么个解决方案.在此记录下来,以供后来者参考. 第一部分 清单文件中组件activity的android:windowSoftInputMode属性值的含义: [A ...

  9. Spring常用注解总结

    转载自:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点 ...

  10. ISP PIPLINE (十四) AE(自动曝光)

    自动曝光可以可以通过调节 模拟增益,数字增益,曝光时间,光圈大小来调剂曝光. 曝光在ISP PIPLINE的位置. (先介绍一个额外的知识点: ) gamma compression(也就是de-ga ...