Gvim入门(1)——三种基本模式

由于想给python换个个IDE,几番纠结,便入手了vim for Windows,也就是Gvim。初入Gvim,爬了不少坑,就像一打开Gvim根本不知道如何编辑,就像个傻帽一样。经过了两天的研究,终于对Gvim有了初步的认识,在此总结入门Gvim时的一些基本知识,也希望能为有需要的人提供一点帮助。

Gvim基本模式总览:


命令模式

(1)什么叫命令模式:

类似DOS命令一样,在命令模式不支持输入,只能键入命令,然后Gvim执行命令。比如光标移动,复制粘贴,定为等等命令。这些命令在传统编辑器中是可以直接在使用的,但在Gvim中只能在命令模式中执行命令。

(2)命令模式常用命令:

命令 执行作用
h 向左移动
j 向下移动
k 向上移动
l 向右移动
yy|2yy 复制行
dd|2dd 删除行或剪切行
p(小写) 粘贴到下一行
P(大写) 粘贴到上一行
^|$ 定位到行首或行尾
dG 从当前行删除到文档最后一行

(3)命令模式附属:替换模式

命令 执行作用
r 替换单个字符
R 替换多个字符
u 撤销上次操作
ctrl+y 恢复上次操作

输入模式

(1)什么叫输入模式:

通常一种文本编辑器,例如记事本,一旦打开,进入的就是输入模式,也就是可编辑的模式。上面也有与命令相似的快捷键,例如ctrl+c,ctrl+v等等。在这种模式下,命令模式的所有命令无效,保证了你键盘上键入的每个字符都是对应输入,而不是有特殊含义的命令。

(2)输入模式快捷键:

在输入模式下,你也可以使用Windows上的哪些常用快捷键,就像是编辑普通文本一样,不过需要在Gvim的启动配置文件中添加一些代码。这写代码的话,此系列博客后面会有详细讲解。


末行模式

(1)什么叫末行模式:

末行,顾名思义,就是最后一行。没错,就是最后一行的模式,整个编辑器的输入都定位到了编辑器的最后一行,不是文档的最后一行。有图有真相:

看到最后一行的没有,有个冒号,后面跟着命令。所以通俗了说就是末行的命令模式。很多命令也只有在末行模式下面才能执行,比如退出,保存神马的。

(2)末行模式常用命令:

:命令 执行作用
:wq | :x 保存退出
:q | :q! 不保存退出|强制退出
:! 执行shell命令
:r! 将shell命令结果读入文档
:%s/good/bad/g 将文档中所有good替换为bad
:/good 搜索good
:G 定位到最后一行
:2 定位到第二行
:1,10s/^/#/g 在一到十行前面加注释
:1,10s/#/^/g 一到十行前面取消注释
:1,10>> 一到十行右移两个tab
:1,10<< 一到十行左移两个tab
:1,10d 删除一到十行


只要熟悉了这三种模式之间的转黄以及模式下的一些命令以后,日后编写代码或是编辑文本的速度肯定会大有提升。

ps:第一次使用MarkDown写博客,立马就喜欢上了,简单好用,赞一个!

时间: 2024-10-13 06:31:22

Gvim入门(1)——三种基本模式的相关文章

canvas入门-1三种填充方式、渐变、模式

1.定义canvas的尺寸的时候最好用html的方式定义,用width和height的方式,用css会导致画布按照css设定的方式进行缩放,cavas内部是一个2d的渲染环境 2.一个canvas对应一个2d的渲染环境,绘制图形的操作都是在2d渲染环境中进行的 <canvas id="canvas-1" style="border:solid 1px gray;" width = "400" height="400"&g

分布式锁简单入门以及三种实现方式介绍

前言 很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车! 学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制. 在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁.非公平锁.自旋锁.可重入锁.偏

springboot与dubbo整合入门(三种方式)

Springboot与Dubbo整合三种方式详解 整合环境: jdk:8.0 dubbo:2.6.2 springboot:2.1.5 项目结构: 1.搭建项目环境: (1)创建父项目与三个子项目,创建项目时,都使用spring initializr,创建时,父项目中注意的一点: (2)创建三个子项目,在已有的父项目上右键,新建模块: (3)创建完成后:将三个子项目在父项目pom.xml中配置: (4)修改所有子项目中的parent标签:(删掉之前parent中的springboot)修改为:

vue 路由传参的三种基本模式

路由是连接各个页面的桥梁,而参数在其中扮演者异常重要的角色,在一定意义上,决定着两座桥梁是否能够连接成功. 在vue路由中,支持3中传参方式. 场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取对应li的数据,显示相应的正确的内容. 父组件中: <li v-for="article in articles" @click="getDescribe(article.id)"> 方案一: getDescribe(id) { // 直接调用$

数论快速入门(同余、扩展欧几里德、中国剩余定理、大素数测定和整数分解、素数三种筛法、欧拉函数以及各种模板)

数学渣渣愉快的玩了一把数论,来总结一下几种常用的算法入门,不过鶸也是刚刚入门, 所以也只是粗略的记录下原理,贴下模板,以及入门题目(感受下模板怎么用的) (PS:文中蓝色字体都可以点进去查看百度原文) 附赠数论入门训练专题:点我打开专题(题目顺序基本正常,用以配套数论入门) 一.同余定理 简单粗暴的说就是:若 a-b == m 那么 a%m == b%m 这个模运算性质一眼看出...直接上入门水题: Reduced ID Numbers 附AC代码(这个也没啥模板....知道就好) #inclu

Hibernate 入门 04 - Hibernate中Java对象的三种状态

目录:(后续不断更新...) Hibernate 入门 01 - 框架技术 (介绍Hibernate框架的发展由来) Hibernate 入门 02 - Hibernate介绍及其环境搭建 Hibernate 入门 03 - 使用Hibernate完成持久化操作 Hibernate 入门 04 - Hibernate中Java对象的三种状态 ▁▃▅ Hibernate中Java对象的三种状态▅▃▁ 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久

struts2简单入门-参数传递的三种方式

三种方式的简单说明 属性传递 把参数定义为属性提供get/set方法. 使用情况 参数少,不需要共享. 演示代码 1 public class LoginAction extends ActionSupport 2 { 3 private String username; 4 private String password; 5 6 public String getUsername() 7 { 8 return username; 9 } 10 11 public String getPass

Hibernate入门 (二)三种状态

.大配置 方言 property name="dialect" 取值 自动构建表结构 property name="hbm2ddl" true connection_url: 连接字符串 显示sql show_sql 格式化SQL format_sql2.Hibernate测试类中操作步骤 7个步骤 1.读取配置文件,形成config对象 2.SessionFactory 3.获取Session 4.开启一个事务 5.执行操作 6.结束(提交或者回滚) 7.关闭 3

javascript入门系列演示·三种弹出对话框的用法实例

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/