vim常用模式

下面的内容介绍vim的几种常用的模式。在详细介绍之前,我们先建立一个大致的概念:vim包括许多模式,不同模式有不同的功能,如“插入模式”让用户输入;“命令模式”>让用户执行保存/退出等等命令。这里,我们主要介绍vim的3种模式,其它模式后续再做说明!

vim包括主要包括3种模式:
插入模式
  -- 输入文本,目的是让用户输入文本。进入插入模式之后,vim就进入输入状态;用户就能输入文本。
编辑模式
  -- 也称为正常模式,目的是让用户执行编辑操作。比如在编辑模式,用户按“j”(敲击一次字母j),当前的输入光标会移动到下一行;用户按“yy”(敲击两次y按键)拷贝一行文本。
命令模式
  -- 目的是让用户输入命令。例如,在命令模式下,用户输入“w”表示保存文本。

在下面的内容中若有标记"(常用)"的,务必要使用熟练;其它的可以后续慢慢掌握。

1 插入模式

插入模式的作用就是让用户插入文本。但是用vim打开文件之后,文件模式是“编辑模式”,而不是“插入模式”;所以,用户要进入“插入模式”。可以通过以下方式进入:
i 在光标前插入 (常用)
I 在行首插入 (常用)
a 在光标后插入 (常用)
A 在行末插入 (常用)
o 在下一行插入,这里是小写字母o。 (常用)
O 在上一行插入,这里是大写字母o。 (常用)
s 删除当前字符后插入
S 删除当前行后插入
cc 删除当前行后插入
c和方向键组合 删除后插入。例如,依次输入"c"、"l"表示删除下一个字符后插入;依次输入"c"、"j"表示删除下一行之后插入。

2 编辑模式

编辑模式是让用户执行编辑操作。比如上/下/左/右移动输入光标,复制/粘贴文本,删除文本等等。
在所有模式中,编辑模式是使用最多的。因此:一,每次用vim打开文本,默认进入编辑模式!二,每次按“ESC”键从其它模式退出时,都会返回到编辑模式。它的进入方式也很简单:一,重新vim打开文件。二,在其它模式下按“ESC”返回。

--移动光标命令--
h 左移动光标 (常用)
l 右移动光标 (常用)
j 上移动光标 (常用)
k 下移动光标 (常用)

w 以单词(word)为单位向后移,移动到后一个单词的起始处。 (常用)
e 以单词(word)为单位向后移,移动到当前单词的结尾处。 (常用)
b 以单词(word)为单位向前移,移动到前一个单词的起始处。 (常用)
f<charater> charater为字母或者数字,表示向后查找charater,并将光标移动到charater处。(常用)
F<charater> charater为字母或者数字,表示向前查找charater,并将光标移动到charater处。(常用)

上面的命令大都可以带一个数字前缀或者一个数字范围,比如:
5j 将光标上移动5行
5w 将光标后移5个单词

[Ctrl]+f 屏幕向下移动一页,相当于 [Page Down]按键。 (常用)
[Ctrl]+b 屏幕向上移动一页,相当于 [Page Up]按键。 (常用)
[Ctrl]+d 屏幕向下移动半页
[Ctrl]+u 屏幕向上移动半页
+ 光标移动到非空白字符的下一列
- 光标移动到非空白字符的上一列
n<space> n表示数字,<space>表示空格键。n<space>表示光标向后移这一行的n个字符。 (常用)
0或[Home] 移动到这一行的开头。(常用)
$或[End] 移动到这一行的结尾。(常用)
H 光标移动到本屏首行的第一个字符
M 光标移动到本屏中央行的第一个字符
L 光标移动到本屏末尾行的第一个字符
G 光标移动到本文档的最后一行。(常用)
nG n为数字,nG表示该文档的第n行。例如,12G 表示移动到本文档的第12行。(可配合 :set nu)。(常用)
gg 移动到该文档的首行,相当于 1G。 (常用)
ngg 等价于nG
n<Enter> n为数字,光标向下移动 n 行。(常用)

--编辑文档命令--
dd 删除一行 (常用)
yy 拷贝一行 (常用)
p 粘贴文本(小写p,表示在当前光标之后粘贴) (常用)
P 粘贴文本(大写P,表示在当前光标之前粘贴) (常用)
x 删除当前字符 (常用)
X 删除前一个字符 (常用)

上面命令大多都可以带一个数字前缀或者一个数字范围,比如:
5dd 从当前行开始删除5行 (常用)
5yy 从当前行开始拷贝5行 (常用)
1,3d 删除1至3行
1,3y 拷贝1至3行(.代表当前行,$代表最后一行)

u 撤销上一个动作引起的改变。(常用)
[Ctrl]+r 恢复上一个动作引起的改变。(常用)
. 这是小数点,作用是重复上一个动作。例如,如果你想要重复进行复制或者删除等操作,暗下小数点"."就可以了。 (常用)
' 这是单引号,作用是跳转到上一次的操作行。(常用)

--搜索文档命令--
在编辑模式下,可以进行搜索和替代。替代涉及到命令模式,后续章节再详细说明。
/word 向后搜索“word”。例如,要在档案内搜索“skywang”,就输入 /skywang 即可。 (常用)
?word 向前搜索“word”。
n 这是字符键n,表示“重复前一个搜索动作”。例如,我们刚刚在档案内输入 /skywang 进行搜索skywang;接着,按n就会不停的向后查找。(常用)
N 这是字符键N,作用和n相反,表示“反向的重复前一个搜索动作”。例如,我们刚刚在档案内输入 /skywang 进行搜索skywang;接着,按N就会不停的向前查找。
这些就是编辑模式下的基本命令。

3 命令模式

命令模式是让用户输入命令。例如,通过“:w”保存文本。
进入方式。在编辑模式下,输入冒号":"进入命令模式。然后即可输入命令。

常用的命令:
:w 保存文档。
:w! 强制保存文档。针对打开只读文档使用,至于能否保存成功,跟你对该文档的权限有关。
:q 退出vim编辑器。
:q! 强制退出。若你修改文档,当不想保存退出,则可以使用强制退出。
:wq 保存文档并退出。
:w [filename] 将文档另外为filename,filename是文档名。
:r [filename] 插入“文档filename的内容”插入到当前光标处。
:r! [cmd] 将“linux命令”(cmd是命令名)插入到当前光标出。例如“:! pwd”,表示将当前路径插入到当前光标处。
:e [filename] 用vim打开文件filename,并进行编辑。

:set nu 显示行号
:set nonu 不显示行号

除了上面3种常用的模式之外,vim还有“选择模式”、“替换模式”和“鼠标模式”。
下面介绍以下“选择模式”和“替换模式”,而“鼠标模式”不做介绍,笔者觉得它与vim的精神相悖,因为使用vim就是为了远离鼠标。

vim其它模式

1 选择模式

选择模式的主要作用是进行区域性的选择,然后进行删除或复制操作。这个模式也比较常用,它支持任意区域操作。
模式进入方式:在编辑模式下,按 "[v]" 或 "[V]" 或 "[Ctrl]+[v]"。
[v] -- 以字符为单位,进行选择
[V] -- 以行为单位,进行选择
[Ctrl]+[v] -- 以块为单位,进行选择

下面,以下面的文本visual.txt为例,来介绍选择模式的使用。

目的:删除 "The format ..." 到 "zero"之间的内容。
可以使用以下操作:
01, 用vim打开文本visual.txt。使用以下命令:

$ vim visual.txt

02, 将光标移动到"Theformat ..."所在行。有许多方法,下面介绍常用的几种:
方法一:不断的按j,移动到下一行,直到移动到"The format ..."所在行为止。
方法二:按8j,向下移动8行。
方法三:按9gg或者9G,直接跳转到第9行。(可以先通过":set nu"命令显示行号)

03, 按数字"0",移动到"Theformat ..."所在行的起始为止。

04, 按字母"l",移动到"Theformat ..."的字母"T"处。

05, 按字母"v"进入选择模式。此时,编辑器的左下方显示“-- VISUAL --”,表示进入选择模式成功。

06, 按字母"j"移动到"zero"所在行。

07, 按"$"将光标移动到"zero"所在行的模式。

08, 按字母"h"移动到"zero"的字母"o"处。

至此,选择完成!如下图。

09, 按字母"d",执行删除操作。即可删除"The format ..." 到 "zero"之间的内容。

若要退出"选择模式",按"ESC"即可。

2 替换模式

替换模式的作用就是进行替换。
进入方式:在编辑模式下,按 "r" 或 "R" 。
[r] -- 单个字符替换,只替换当前字符,替换之后返回编辑模式。例如,要将当前光标所在字符替换成"H",则依次输入"r"、"H",就可以了。
[R] -- 完全的替换模式,替换了当前字符后,会自动将光标移到下一字符...直到用户按"ESC"键退出"替换模式"。

若要退出"替换模式",按"ESC"即可。

编辑器之神Vim总结相关推荐

  1. xshell vim 不能粘贴_编辑器之神——vim的入门指南

    编辑器之神--Vim的操作说明 ©作者:geekctwd Vim命令模式: Vim虽然被称为编辑器之神,但是很多接触过的人都说入门较难,原因是什么呢,除了vim繁杂的按键之外就是因为它的模式了,很多初 ...

  2. linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim

    编辑器之神-vim的使用,编辑器神-vim vim即vi的升级版:在linux中,vi是vim的软链接,我们敲vi和vim出来的都是vim: 纯手打,如有错误,敬请指出. vi的三种模式及简单使用 v ...

  3. 编辑器之神——vim编辑器

    编辑器之神--vim编辑器 一.vi介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本, ...

  4. 编辑器之神—Vim 常用快捷键

    以下是 "编辑器之神" - Vim 常用快捷键 . 学好vi, 无论用哪个IDE,只需下载一个vim的插件, 在哪里都可以使用! 前言         Vim 的三种工作模式 vi ...

  5. Linux 编辑器之神 vim 的 IO 存储原理

    坚持思考,就会很酷 故事起因 无意间用 vim 打开了一个 10 G 的文件,改了一行内容,:w 保存了一下,慢的我哟,耗费的时间够泡几杯茶了.这引起了我的好奇,vim 打开和保存究竟做了啥? vim ...

  6. 编辑器之神-vim的使用技巧

    vim VS. emacs vim被誉为编辑器之神,而emacs被誉为神之编辑器.中国文化博大精深,他们究竟有什么区别呢?作为emacs小白的我来说不想在这里献丑,直接贴上一篇博客,有兴趣的同学可以深 ...

  7. 神之编辑器Emacs 编辑器之神Vim

    来源:开源中国社区 http://www.oschina.net/question/12_15010 在这个蔚蓝色的星球上,流传着两大神器的传说: 据说Emacs是神的编辑器,而Vim是编辑器之神. ...

  8. 编辑器之神——vim编辑器(详细、完整)

    作者:永不落的梦想 作者主页:传送 座右铭:过去属于死神,未来属于自己 本文专栏:Liunx篇      神器使用篇 今日鸡汤:当你想要放弃的时候想想当初为什么坚持到这里 目录 一.vi和vim介绍 ...

  9. 编辑器之神VIM入门

    前言 因为最近装了 WIN10 + Manjaro 双系统,用 Linux 几乎避免不了使用 Vim 编辑器.Vim是从 Vi 发展出来的一个基于命令行的文本编辑器.Vi是"Visual i ...

最新文章

  1. 2022-2028年中国高纯锑行业市场全景研究及发展趋势分析报告
  2. 项目代码结构 Dao,Service,Controller,Util,Model 含义
  3. dirty_background_ration 与 /proc/sys/vm/dirty_ratio
  4. 服务器如何运行java文件_在linux服务器上运行java文件
  5. Android多个imei如何获取,如何在Android 10中获取IMEI号,这是获取在Android 10及以下Android 10中获取IMEI号的代码...
  6. web前端技术分享Electron之Renderer Process API
  7. Kettle使用_5 结合js的数据处理与SetVariable设置动态表输入
  8. DB2数据库性能调整和优化(第2版)
  9. POJ - 3662 Telephone Lines(分层图最短路)
  10. Spring Bean范围
  11. python sublime 提示补全_【原创】Sublime+Verilator建立强大的verilog编写环境
  12. JAVA实现1到100的平方根之和_手算平方根和基于 Java BigInteger 的大整数平方根的实现...
  13. 一文超详细讲解文本风格迁移
  14. The 2014 ACM-ICPC Asia Regional Anshan
  15. 地址栏中的#是什么意思
  16. AddressSanitizer: heap-buffer-overflow on address 0x602000000534 at pc 0x00000040699d bp 0x7ffce0afd
  17. Python利用xpath和正则re爬取新浪新闻
  18. xp计算机描述不能修改,如果WinXP无法更改密码怎么办?该怎么解决?
  19. python 求某月的天数
  20. C语言高级教程-C语言数组(六):变长数组

热门文章

  1. bzoj 3631: [JLOI2014]松鼠的新家(LCA+树上差分)
  2. 福州大学第十四届程序设计竞赛-重现赛(Record)
  3. 蓝桥杯B组省赛预赛第一题2013(高斯日记)
  4. who whos exist inf
  5. 《基于CapsNet的汉字字形表征模型》文章理解
  6. 卷积神经网络中的权值共享
  7. springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库
  8. Oracle 归档开启切换和归档日志删除(单实例和RAC)
  9. RocketMQ——角色与术语详解
  10. php.ini – 配置文件详解