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:右移一个位置

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中的关键字有哪些_java关键字有哪些?java关键字大全

    java中的关键字有哪些_java关键字有哪些?java关键字大全你知道java关键词都有哪些吗?下面小编就对于java关键词做了一次集合的大整理,下面就来和小编一起来了解一下,java的关键词吧!一、什么是java关键字?关键字是电脑语言里事先定义的,有特别意义的标识符。程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。二、java关键字大全1、abstract-表明类或者成员方法具有抽象属性2、assert-断言,用来进行程序调试3、bool…

    2022年7月7日
    24
  • 构建高并发高可用的电商平台架构大纲

    构建高并发高可用的电商平台架构大纲

    2022年3月11日
    34
  • MVC三层架构的实现

    MVC三层架构的实现在MVC设计模式中认为,任何软件都可以分为三部分组成:1.控制程序流转的控制器Controller2.封装数据处理数据的模型Model3.负责展示数据的视图View在MVC设计思想中要求符合MVC设计思想的软件应该保证MVC这三部分相互独立,互不干扰,每一部分只负责自己擅长的部分。即某一个模块发生变化,应该尽量做到不影响其他两个模块,这样有利于后期的扩展和维护,代码也可复用…

    2022年6月25日
    36
  • 关于数据存储类型的一点分析

    关于数据存储类型的一点分析

    2021年11月27日
    51
  • android中彻底退出App的办法「建议收藏」

    android中彻底退出App的办法「建议收藏」所谓的“彻底退出App”的含义是包括释放所有Appnew出来的东西,比如说某些正在运行的线程、定时器之类的。需要注意的是:finish()方法是作用于Activity,因此,即使finish了app的最后一个Activity,app在运行过程中new出来的那些线程什么的仍然有可能在运行(如果没有明显的代码导致它们退出的话)。因此,要所谓”彻底退出“,个人的看法是在最后一个finish()…

    2022年7月17日
    23
  • php stristr_str.center()方法的功能是什么

    php stristr_str.center()方法的功能是什么欢迎进入Linux社区论坛,与200万技术人员互动交流>>进入php中strstr函数的用法:strstr()函数搜索一个字符串在另一个字符串中的第一次出现的字符串。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false.语法strstr(欢迎进入Linux社区论坛,与200万技术人员互动交流>>进入php中strstr函数的…

    2025年11月12日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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