`
weiyinchao88
  • 浏览: 1235170 次
文章分类
社区版块
存档分类
最新评论

一步一步学习Vim 全图解释

 
阅读更多
一步一步学习Vim 全图解释 (强烈推荐)
可以根据以下图解示例进行VIM的逐步学习 ----醉
以下注释,根据图示和自己实践自己阐述,能力有限,错误之处,诸位可以提醒更正,谢谢~

Whole 英文版

Whole 中文版 感谢 fdl 的翻译工作

以下是学习这些基本的VIM命令的基本步骤,在学习完之后,可以依照上图进一步的学习和使用!!
步骤1
注释1:
1) h j k l为光标键,分别左下上右
2) i 插入键进入编辑模式,Esc键退出到一般模式
3) x 删除当前光标所在字符,X删除当前光标前的一个字符
4) A 在一行的末尾添加text,a在当前光标后添加text
5) u 执行Undo操作,Ctrl+R表示Redo
6) 0 跳到行首,$ 跳到行尾 ^跳到行首(类似正则式$和^的意义)
7) w b e移动一个单词word(全部是字符或者符号)
8) W B E移动一个单词WORD(以空格隔开)
9) R 进入插入编辑模式,并且对被编辑位置进行覆盖
10) :w 保存 :q 退出 :q! 强制退出

步骤2
注释2:
1) f 移动光标从当前位置到下一个f后跟的字符的右边,包含此指定字符,F 方向相反为前一个,需要和操作(operator)配合操作
2) t 和 T类似f 和 F,只是它们一直到指定的字符左才停,即不包含指定的字符。
3) d 删除操作 与上面 w f t 等配合:例如"dw"删除下一word,"df-"从当前位置一直往前删除到字符"-",不保留"-","dt-"删除直到"-"但是保留"-"
4) c 删除且进入编辑模式(类似d和i的结合),同样可以与f t T w 等motion结合
5) j k 可以和c和d结合,删除所有末尾或开头的所有行
6) . 可以重复最后一次编辑的所有操作,注意是在一般模式下重复最后一次编辑操作
7) 操作和motion可以和数字组合,"d2w" 删除后2个单词word "d2t,"删除知道这一行的第2个","
8) cc 和 dd 删除当前行
9) v 进入可视模式


步骤3
注释3:
1) y 后面跟任意的motion执行copy操作
2) p (paster)粘贴,如果复制的是字符形式,则粘贴到右边,行形式粘贴到下面
3) P 同上p操作,但是粘贴方向相反,在左边或上面
4) yy 复制当前行
5) y 也可以在可视模式(visual mode)下工作,同时,d,c,x..等text删除操作也将被删除内容进行复制(这一点要注意)
6) "和a-z字符如果在复制/删除/粘贴命令前表示选择一个寄存器暂存
7) 在复制/删除前的A-Z 寄存器意味进行叠加复制,就是多个复制操作的内容将被加起来
8) "*操作或者"+操作选择系统的剪贴板
9) o 在当前行下新其一行进入插入模式,O 操作类似o,只是在当前行的上新起一行

步骤4
注释4:
1) / 是基本的查找motion,可以和operation结合执行操作,也可以单独使用,直接查找匹配后面的正则式
2) ? 与/相同,但是方向相反backward,/ 方向forward
3) n 重复最后一次查找方向, N 重复最后一次查找的相反方向
4) * 和 # 查找当前光标所在的实体相同的实体,前者方向向前,后者方向向后,两者仅在vim下有效(vi not support)


步骤5
注释5:
1) m 操作后跟a-z字符用来设置一个标记mark
2) ` 后面跟a-z字符可以去这个字符表示的标记处
3) ' 和一个字符可以到所在行的第一个非空处
4) A-Z 标记为全局标记 a-z仅在每个buffer内可见
5) `. 表示到最后一个修改的地方
6) q 后跟字符a-z用来记录宏
7) @ 后跟字符用了重放宏,@@ 重放最后一个宏


步骤6
注释6:
1) % 在配对的( 和 ) [ 和 ]等 之间跳动
2) H M L 直接跳到整个屏幕的最上面,中间和最下面
3) G 跳到文件的末尾,G 前面跟行号表明跳到指定的行
4) - 或者 + 直接跳到前一行 或 后一行
5) K 跳到帮助
6) ( 和 )跳到当前句子的最前和最后
7) { 和 }跳到前一个空行 或 后一个空行
8) [[ 跳到前一个第0列是{的位置(必须{为第0列)
9) ]] 跳到下一个第0列是}的位置


步骤7
注释7:
1) J 连接当前行和下一行在一般模式,或所有行在可是模式
2) r 后跟任意字符替换当前字符
3) C 为c$的简写,表示删除当前位置到行结束并进入插入模式
4) D 为d$的简写,表示删除当前到行结束
5) Y 为yy的简写,复制整个行
6) s 删除当前光标所在字符并进入插入模式
7) S 清除当前行,并进入插入模式
8) > 和一个motion 表示缩进一行或多行
9) < 和一个motion 表示不缩进
10) = 和一个motion 表示重新格式化text
11) > < 和 = 工作在可视模式下,且均可重复例如>>表示缩进整个当前行

VIM还有很多需要继续学习的,功能太强大了~!
分享到:
评论

相关推荐

    vi/vim键盘图

    **标题:“vi/vim键盘图”** 在信息技术领域,`vi`(Visual Editor)和它的增强版`vim`(Vi Improved)是Unix/Linux系统中广泛使用的文本编辑器。`vi`是一个全屏幕编辑器,而`vim`在保留了`vi`所有特性的同时,增加...

    VIM最全快捷键图,超清版本,包含超清PDF版本

    总结,VIM的全集快捷键图是学习和掌握VIM效率的关键工具,它涵盖了所有基础和高级操作。通过熟练运用这些快捷键,可以极大地提高代码编写的速度和效率,这也是为什么许多开发者钟情于VIM的原因。而超清PDF版本则提供...

    大家来学vim linux下最好的编程工具

    ### 大家来学vim——Linux下最好的编程工具 #### 一、为什么选择Vim? Vim是一款功能强大且历史悠久的文本编辑器,在Linux环境中尤为流行。它支持多种操作系统,并以其高效的操作方式著称,是程序员和系统管理员的...

    学习vi和vim编辑器(第七版) 中文版

    后来,你可以回过来再看这些单元做更深一步的学习。 第 5 单元,介绍 ex 编辑器,第 6 单元,全局替换,和第 7 单元高级编辑,提供工具帮助你转移更多的编辑重担到电脑上。这几单元向你介绍基于 vi 的 ex line 编辑...

    harmonyos2-TheVimIDE:现代VimIDE,支持C/C++、Java、Python、Lua、PHP、JavaScript、Ru

    一步一步地成为一个具有所有功能的 IDE,如自动完成、语法检查和许多其他使编程更容易和更快的功能。 TheVimIDE 有五个主要目标: 将文本编辑器的快速性与 IDE 功能的舒适性相结合 支持尽可能多的流行语言 易于配置 ...

    vi从入门到精通

    2. **全屏幕编辑**:VI编辑器提供全屏模式,允许用户在整个屏幕上进行文本编辑,而不仅仅是显示文本的一部分。 3. **命令模式与插入模式**:VI编辑器的核心特性之一是它有两种基本的工作模式——命令模式和插入模式...

    C语言开发基础教程(Dev-C++) 第1章 程序设计和C语言.pptx

    一个算法必须具备五个基本特征:有穷性(算法必须在有限步骤内结束)、确定性(每一步都有确切的解释)、至少零个或多个输入、至少零个或多个输出以及可行性(在有限的时间和空间资源下可以执行)。算法可以用自然...

    Ubuntu16.04安装Cuda8.0、Cudnn5.1、Opencv3.1.0、Caffe

    以上步骤涵盖了从系统预备到CUDA和cuDNN安装的全过程,并且强调了在安装过程中需要注意的细节,例如禁用nouveau驱动和BIOS中关闭安全启动的重要性。 由于文档中使用了斜体字来表示命令行指令,实际操作时需要注意这...

    linux基础

    【Linux基础】是IT领域中的一个关键话题,尤其对于初学者而言,它是探索操作系统世界的重要一步。Linux是一种自由和开放源代码的操作系统,基于Unix,由全世界的开发人员共同维护和改进。它提供了强大的命令行界面,...

    Linux入门及安装

    Linux入门及安装是初学者踏入开源世界的重要一步。Linux是一种自由和开放源代码的操作系统,它的内核由林纳斯·托瓦兹在1991年首次发布,随着时间的推演,Linux已经发展成为全球范围内广泛应用的平台,不仅在服务器...

    中标麒麟linux V5安装oracle 10g.docx

    - 使用文本编辑器(如vim)打开`/etc/sysctl.conf`文件,将以下参数添加到文件末尾: ```bash kernel.shmmax = 2147483648 kernel.shmall = 2048000 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs...

    zabbix—agent安装文档

    Zabbix 是一款开源的企业级监控工具,它支持网络监控、服务器监控等多种监控需求,并且能够提供丰富的图形化展示功能,方便管理员对系统进行全方位的监控。Zabbix 的核心组成部分包括 Zabbix Server 和 Zabbix Agent...

Global site tag (gtag.js) - Google Analytics