1. VIM 系列 - 简单入门,拾起兴趣

目录

  • 1. 认识模式

    • 1.1 正常模式
    • 1.2 插入模式
    • 1.3 命令模式
    • 1.4 可视模式
  • 2. 常用快捷键

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】模式与模式切换

原文地址:https://www.cnblogs.com/standardzero/p/10687132.html

时间: 2024-10-30 08:39:05

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

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

概要 本篇主要介绍一下Elasticsearch Document的数据格式,在Java应用程序.关系型数据库建模的对比,介绍在Kibana平台编写Restful API完成基本的集群状态查询,Document最基本CRUD操作示例以及bulk批处理示例. Document数据格式 Java应用系统的数据模型都是面向对象的,有些对象比较复杂,传统的业务系统,数据需要落地到关系型数据库,在数据库领域模型设计时,会把复杂的POJO对象设计成一对一或一对多的关系,进行扁平化处理,查询的时候,需要多表查

HTML5简单入门系列(五)

前言 本篇将讲述HTML5的服务器发送事件(server-sent event) Server-Sent 事件 Server-Sent 事件是单向消息传递,指的是网页自动获取来自服务器的更新. 以前的做法是网页不断的询问(向服务器发送请求)是否有可用的更新.通过服务器反馈之后,获得更新. 轮训方案 我们使用上篇HTML5简单入门系列(四)web worker的技术简单实现一下该轮训方案,主动向服务器询问是否有更新. 由于web worker不能访问document等对象,是不能和jQuery连用

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

1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转\依赖注入,和AOP面向切面编程. 1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字. 控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring). 依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们

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

macs最简单入门,只要10分钟  windwiny @2013   无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完一遍,再动手操作.这次好像有些进展   最大的发现,emacs里所有操作都是LISP指令,包括上下左右移动光标,这意味着什么? “emacs是一个伪装成编辑器的操作系统”这句话应该就是这么理解吧,所有的操作都是指令,emacs就像操作系统一样,平时不用关注,实际上打交道的都是操作系统上运行的各种程序.

Angular系列------AngularJS入门教程:导言和准备(转载)

学习AngularJS的一个好方法是逐步完成本教程,它将引导您构建一个完整的AngularJS web应用程序. 该web应用是一个Android设备清单的目录列表,您可以筛选列表以便查看您感兴趣的设备,然后查看设备的详细信息. 本教程将向您展示AngularJS怎样使得web应用更智能更灵活,而且不需要各种扩展程序或插件. 通过本教程的学习,您将: 阅读示例学习怎样使用AngularJS的客户端数据绑定和依赖注入功能来建立可立即响应用户操作的动态数据视图. 学习如何使用AngularJS创建数

软件测试系列之入门篇

一.你知道软件测试有多重要吗? 在国际上,软件测试(软件质量控制)是一件非常重要的工程工作,测试也作为一个非常独立的职业.在IBM.Microsoft等开发大型系统软件公司,很多重要项目的开发测试人员的比例能够达到1:2甚至1:4. 在国内软件测试的地位还不够高,并且大多只停留在软件单元测试.集成测试和功能测试上.软件测试从业人员的数量同实际需求有不小差距,国内软件企业中开发人员与测试人员数量一般为5:1,因此,国内的软件测试产业化还有待开发和深掘. 说到这里不知道你反应是高兴还是失望?但是我却

Java日志系统---Logger之简单入门

Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢:) Java中关于日志系统的API,在 java.util.logging 包中,在这个包中,Logger类很重要. Logger类是用来记录 某个级别的日志消息: 级别共分为以下几类,从上倒下,级别依次下降: SEVERE(严重)------级别最高 WARNING(警告) INFO CONFIG

响应式网页设计简单入门(强烈推薦!!!!)

响应式网页设计简单入门 Overview: 构造基本的HTML页面 动态加载样式表 Viewport 字体缩放 侧边栏 导航菜单 图片自适应 其他 总结 说到响应式网页设计(Responsive web design),最近在谷歌加上碰到个奇葩贴子,通过一个原始到无法再简单的网页Motherfucking Website及满屏幕的fuck道出了网页设计的真谛,这孩子不是个激进分子就是个报复社会型的货没错,虽然整篇文章就像是泼妇骂街,但我特么是笑着读完的.. 统计了下全文共用Fuck (包括fuc

Angular系列----AngularJS入门教程04:迭代器过滤(转载)

我们在上一步做了很多基础性的训练,所以现在我们可以来做一些简单的事情喽.我们要加入全文检索功能(没错,这个真的非常简单!).同时,我们也会写一个端到端测试,因为一个好的端到端测试可以帮上很大忙.它监视着你的应用,并且在发生回归的时候迅速报告. 请重置工作目录: git checkout -f step-3 我们的应用现在有了一个搜索框.注意到页面上的手机列表随着用户在搜索框中的输入而变化. 步骤2和步骤3之间最重要的不同在下面列出.你可以在GitHub里看到完整的差别. 控制器 我们对控制器不做