当前位置:网站首页>VIM命令模式与输入模式切换
VIM命令模式与输入模式切换
2022-07-07 09:06:00 【全栈程序员站长】
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可以完全不用移动,通过hjkl。 h:左移一个位置 j:往下一行 k:往上一行 l:右移一个位置
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113812.html原文链接:https://javaforall.cn
边栏推荐
- Unity script generates configurable files and loads
- Realize ray detection, drag the mouse to move the object and use the pulley to scale the object
- Mpx 插件
- "Dream Cup" 2017 Jiangsu information and future primary school summer camp it expert PK program design questions
- [untitled]
- Transaction rolled back because it has been marked as rollback-only解决
- 【OneNote】无法连接到网络,无法同步问题
- What is an intermediate network engineer? What is the main test and what is the use?
- Qtcreator sets multiple qmake
- Online hard core tools
猜你喜欢
Input type= "password" how to solve the problem of password automatically brought in
Static semantic check of clang tidy in cicd
Deeply understand the characteristics of database transaction isolation
单调性约束与反单调性约束的区别 monotonicity and anti-monotonicity constraint
[untitled]
The use of list and Its Simulation Implementation
[untitled]
Ping tool ICMP message learning
JSON format query of MySQL
從色情直播到直播電商
随机推荐
Input type= "password" how to solve the problem of password automatically brought in
2022.7.3DAY595
香橙派OrangePi 4 LTS开发板通过Mini PCIE连接SATA硬盘的操作方法
What are the test preparation materials and methods for soft exam information processing technicians?
Project ERROR: Unknown module(s) in QT: core gui
Une fois que l'uniapp a sauté de la page dans onlaunch, cliquez sur Event Failure resolution
JS implementation chain call
Force buckle 1002 Find common characters
PostgreSQL中的表复制
shardingsphere分库分表示例(逻辑表,真实表,绑定表,广播表,单表)
Socket socket programming
IDEA快捷键大全
How to successfully pass the senior system architecture designer in the second half of the year?
Unity script visualization about layout code
Shardingsphere sub database and table examples (logical table, real table, binding table, broadcast table, single table)
[untitled]
The use of list and Its Simulation Implementation
What does intermediate software evaluator test
在线硬核工具
Ping tool ICMP message learning