VIM命令模式与输入模式切换

VIM命令模式与输入模式切换

 
vi编辑器

vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。

切换模式键

vi从命令模式切换到文本输入模式。每个键以不同方式使vi进入文本输入模式。按[ESC]键使vi从文本输入模式回到命令模式。

表1列出了vi从命令模式切换到文本输入模式的命令键及其功能。

表1 切换到文本输入模式的命令键

功能

i

在光标左侧输入正文

I

在光标所在行的行首输入正文

a

在光标右侧输入正文

A

在光标所在行的行尾输入正文

o

在光标所在行的下一行增添新行,光标位于新行的行首

O

在光标所在行的上一行增添新行,光标位于新行的行首

 

说明:1. 光标的位置由双下划线(═)标明。

2. 当前行指光标所在的那一行。

退出命令

只有一种方式进入vi,但是有几种方式退出vi,退出方式的选择取决于如何处理编辑后的文件。

除了ZZ命令外,这些命令都以:开始,用[Return]结束命令行。表2列出了vi编辑器的退出命令及其功能。

表2 vi编辑器的退出命令

功能

:wq

保存文件,退出vi编辑器

:w

保存文件,但不退出vi编辑器

:q

退出vi编辑器

:q!

不保存文件,退出vi编辑器               

ZZ

保存文件,退出vi编辑器

 

文本修改键

这些键只适用于命令模式。表3列出了vi编辑器的退出命令及其功能。

表3 命令模式下vi编辑器的文本修改键

功能

x

删除光标位置指定的字符

dd

删除光标所在的行

u

撤销最近的修改

U

撤销对当前行上做的所有修改

r

替换光标位置上的一个字符

R

替换从光标位置开始的字符,同时改变vi到文本输入模式

.(点)

重复上一次的修改

 

光标移动指令

在命令模式下,这些键可以在文档中移动光标。表4列出了vi编辑器的退出命令及其功能。

表4 vi的光标移动键

功能

h或[   ]

将光标向左移动一格

j或[   ]

将光标向下移动一格

k或[   ]

将光标向上移动一格

l或[   ]

将光标向右移动一格

$

将光标移到当前行的行尾

w

将光标向右移一个字

b

将光标向左移一个字

e

将光标移到字尾

0(零)

将光标移到当前行的行首

[Return]键

将光标移到下一行的行首

[Spacebar]键

将光标向右移动一位

[Backspace]键

将光标向左移动一位

 

注意:在文本输入模式下避免使用光标键(箭头键)。因为在某些系统中,光标键被解释为普通的ASCII 字符。如果在文本输入模式下使用光标键,那么对应的ASCII字符将被插入文件中。

剪切和粘贴键

这些键用来重新安排用户文件中的文本,在vi的命令模式下可用。表5列出了vi编辑器的剪切和粘贴键及其功能。

表5 vi编辑器的剪切和粘贴键

功能

d

删除指定位置的文本,并存到临时的缓冲区中。可以使用put操作符(p或P键)访问这个缓冲区

y

将指定位置的文本复制到临时缓冲区。可以使用put操作符访问这个缓冲区

P

将指定缓冲区的内容放到当前光标的位置之上

p

将指定缓冲区的内容放到当前光标的位置之下

翻页键

翻页键用来大块滚动用户的文件,在vi的命令模式下可用。表6列出了vi编辑器的翻页键及其功能。

表 6  vi编辑器的翻页键

功能

[Ctrl-d]

将光标向下移到文件尾,通常每次移动12行

[Ctrl-u]

将光标向上移到文件头,通常每次移动12行

[Ctrl-f]

将光标向下移到文件尾,通常每次移动24行

[Ctrl-b]

将光标向上移到文件头,通常每次移动24行

 

三种常见的模式:Normail Mode(命令模式),Insert Mode(输入模式)和Visual Mode(视图模式)。
命令模式和输入模式的切换有Append,Insert,Replace,Subsitute 记作AIRS,这种记忆方法特别方便,英文单词的意思是空气,vim在命令模式和输入模式的切换就像空气一样,无影无形。
VIM命令模式与输入模式切换
编辑文本无非就是基本的字符输入和切换光标的位置,平时光标切换就是通过键盘上的上下左右的键盘来实现的,这个上下左右的键盘切换光标虽然也是很方便,但是是不是要从我们键盘手势上移动,而vim可以完全不用移动,通过hjkl。
h:左移一个位置
j:往下一行
k:往上一行
l:右移一个位置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113812.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • [DLX反复覆盖] hdu 3656 Fire station[通俗易懂]

    [DLX反复覆盖] hdu 3656 Fire station

  • Unity Shader 一 激光特效Shader[通俗易懂]

    学习Shader已经有几个月的时间了,Shader作为一门GPU编程语言来说确实比较的难学。主要原因经过我的思考还是本人自己的计算机图形学和美术基础不扎实。好无奈,作为一个之前单纯手写代码的程序员真的是感觉好蛋疼。      学习期间,我也向多名Shader大神请教学习经验,得到的回应大多是让我好好去学习计算机图形学。哈哈,于是乎,本人又跑去看了一个多月的计算机图形学。接着再次回来学习Shad

  • 【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」

    【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」volatile一定能保证线程安全吗?禁止指令重排序volatile禁止指令重排序的原理。JMM就是Java内存模型(javamemorymodel)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到……………

  • Hibernate二级缓存适用场景[通俗易懂]

    Hibernate二级缓存适用场景[通俗易懂]Hibernate二级缓存适用场景1.什么样的数据适合存放到第二级缓存中?1)很少被后台修改的数据,这里指的是前台后台使用了不同的orm实现,如一个用的hibernate加二级缓存,一个用的jdbc(前台用户可以修改,修改后会同步到缓存中)2)不是很重要的数据,允许出现偶尔并发的数据3)访问量大,不会被并发访问的数据,如个人资料4)

  • 鼠标移到导航上面 当前的LI变色 处于当前的位置

    鼠标移到导航上面当前的LI变色处于当前的位置,广泛应用于当前导航。点击这里查看效果以下是源代码:1234鼠标移到导航上面当前的LI变色处于当前的位置-柯乐义51314152

    2021年12月20日
  • javaweb中getRealPath()的理解

    javaweb中getRealPath()的理解        getServletContext().getRealPath("/fbb.jpg");动态的得到WebRoot中文件在磁盘中的位置。打印一下发现:文件被全部拷贝了部署的文件夹下,不是我们开发环境中的。写全路径,getServletContext()是继承自父类HttpServlet的父类中的方法!getRealPath();不仅可以获得文件,还可以获得文件夹!不管存不存在,只要逻…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号