Vim快速使用教程
Vim
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富。
Vi/Vim的使用
基本上分为三种模式,分别是命令模式(commad mode),输入模式(Insert mode),底线命令模式(Last line mode)。这三种模式的作用分别是:
命令模式:
用户启动vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
常用的几个命令:
- i 切换到输入模式,已输入字符
- x 删除当前光标所在处的字符
- : 切换到底线命令模式,以在最底一行输入命令
若想要编辑文本:启动vim,进入命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上下翻页
- Insert,切换光标为输入/替换模式,光标将会竖线/下划线
- ESC,推出输入模式,切换到命令模式
底线命令模式
在命令模式下按下冒号就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令(已经省略了冒号)
- q 退出程序
- w 保存程序
常用的按键操作
| 按键 | 作用 |
|---|---|
| ctrl + f | 屏幕向下一页=page down |
| ctrl + b | 屏幕向上一页=page up |
| 0 or Home | 移动到这一行的最前面 |
| $ or End | 移动到这一行的最后面 |
| G | 移动到文档的最后一行 |
| gg | 移动到文档的一行 |
| n + Enter | n为数字,光标为向下移动几行 |
搜索替换
| /word | 寻找字符串 |
|---|---|
| ?word | 向光标之上寻找一个字符串称为word的字符串 |
删除、复制与粘贴
| x,X | x为向后删除一个字符,X为向前删除一个字符 |
|---|---|
| dd | 删除游标所在的那一整行 |
| ndd | 删除向下n行 |
| yy | 复制游标所在的那一行 |
| nyy | 复制光标所在的向下n行 |
| p,P | p将复制的数据在光标的下一行贴上,P贴在上一行 |
| u | 复原上一个动作 |
| ctrl+r | 重做上一个动作 |
| . | 重复前一个动作的意思 |
一般模式切换到编辑模式的可用的按钮
| i,I | 进入输入模式,i为从目前光标所在处输入,I为所在行的的一个非空格出开始输入 |
|---|---|
| a,A | 进入输入模式,a为光标所在的下一个字符出开始输入,A为所在行的最后一个字符处开始输入 |
| o,O | 进入输入模式,o为在目前光标所在的下一行处输入新的一行,O为在目前光标所在的上一行处输入新的一行 |
| r,R | 进入取代模式,r只会取代光标所在的那一个字符一次,R会一直取代光标所在的文字,直到按下ESC为止 |
一般模式切换到指令模式
| w | 将编辑的数据写入硬盘中 |
|---|---|
| w! | 若文件属性为只读时,强制写入 |
| q | 离开 |
| q! | 若曾修改过档案,不想存储,使用!强制离开不存储 |
| wq! | 储存后离开,强制 |
vim环境的变更
| set nu | 显示行号 |
|---|---|
| set nonu | 取消行号 |
Vim快速使用教程的更多相关文章
- 专为设计师而写的GitHub快速入门教程
专为设计师而写的GitHub快速入门教程 来源: 伯乐在线 作者:Kevin Li 原文出处: Kevin Li 在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目 ...
- EntityFramework6 快速入门教程
EntityFramework6 快速入门教程 不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今的EF6差别还是比较大.我刚开始弄这个的时候真是绕 ...
- Apple Watch开发快速入门教程
Apple Watch开发快速入门教程 试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...
- 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程
指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 1.4.2 指示灯组 指示灯组的放大图如图1.5所示. 图1.5 指示灯组 各个指示灯对应的功能如下: q RX:对应于0号端口, ...
- 游戏控制杆OUYA游戏开发快速入门教程
游戏控制杆OUYA游戏开发快速入门教程 1.2.2 游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4 游戏控制杆各个角度的 ...
- 【Java线程池快速学习教程】
1. Java线程池 线程池:顾名思义,用一个池子装载多个线程,使用池子去管理多个线程. 问题来源:应用大量通过new Thread()方法创建执行时间短的线程,较大的消耗系统资源并且系统的响应速度变 ...
- 【Java的JNI快速学习教程】
1. JNI简介 JNI是Java Native Interface的英文缩写,意为Java本地接口. 问题来源:由于Java编写底层的应用较难实现,在一些实时性要求非常高的部分Java较难胜任(实时 ...
- vim简单使用教程
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...
- Query 快速入门教程
Query 快速入门教程 http://www.365mini.com/page/jquery-quickstart.htm#what_is_jquery jquery常用方法及使用示例汇总 http ...
随机推荐
- 「NGK每日快讯」12.2日NGK公链第29期官方快讯!
- react新手入坑
1.vscode保存react项目的时候由于js-css-html插件格式化代码导致react代码缩进错误 解决方法:禁用js-css-html插件 2.react和vue不同,react方法的定义需 ...
- TERSUS无代码开发(笔记07)-简单实例手机端后台逻辑开发
提交申请逻辑开发 1.添加父级对象引用(从父级对象中获取前端输入框的值) 1.设计数据库表(表名和字段名称不能用中文) 2.设计置数据库主键(可设联合主键) 3.传值形成数据实列处理 4.服务器端处理 ...
- 关于电脑硬盘的二三事(SATA接口)
@ 目录 前言 接口分类 SATA3接口 机械硬盘 机械硬盘的特点和主要参数 西部数据机械盘分类 绿·蓝·黑盘 红盘 紫盘 金盘 希捷机械盘分类 酷狼 酷鱼 酷鹰 银河 SATA3接口的固态硬盘 固态 ...
- rar密码破解工具汇总
rar密码破解工具汇总 前言 假如酷爱在网络上找各种资源的你,经历千辛万苦终于找到了一个rar打包的文件,兴奋地慌忙点击,可打开才发现是加密的,相信这样的场景很多人都遇到过,今天就针对压缩文件密码的破 ...
- apiAutoTest:支持自定义函数,用例中可调用
0. 前言 apiAutoTest从去年8月以来开源至今,也更新了不少内容,一起来看看吧 第一个版本 - 2020/08/08 增加实际响应存储数据的方法,并在字典可以处理依赖见tools/svae_ ...
- 大话Spark(6)-源码之SparkContext原理剖析
SparkContext是整个spark程序通往集群的唯一通道,他是程序的起点,也是程序的终点. 我们的每一个spark个程序都需要先创建SparkContext,接着调用SparkContext的方 ...
- Get和Post请求方式
Get和Post是两种不同的类型的请求. 它们主要有3点不同. 1.get请求通过浏览器地址栏传递表单数据.post请求通过form data 传递数据,不会通过地址栏. 2.get请求安全性较低,p ...
- 如何自学成 Python 大神?这里有些建议
人生苦短,我用 Python.为什么?简单明了的理由当然是开发效率高.但是学习 Python 的初学者往往会面临以下残酷的现状:网上充斥着大量的学习资源.书籍.视频教程和博客,但是大部分都是讲解基础知 ...
- Eric Python IDE 论文数据图片生成
Python编写,基于跨平台的Qt GUI工具包,集成了高度灵活的Scintilla编辑器控件. 大括号匹配,错误突出显示和可配置语法突出显示. 拼写检查库的集成 内置Python调试器,包括支持调试 ...