linux的文本编辑器 vi和vim 的四种模式
模式简介
1. 正常模式
-
默认模式,用于执行命令
-
示例:
# 在正常模式下:
h # 左移光标
l # 右移光标
j # 下移光标
k # 上移光标
2. 插入模式
-
用于编辑文本
-
示例:
# 从正常模式进入插入模式:
i # 在当前光标位置插入
I # 在行首插入
a # 在当前光标后插入
A # 在行尾插入
o # 在下一行插入新行
O # 在上一行插入新行
3. 命令模式
-
用于执行高级命令
-
示例:
# 从正常模式按:进入命令模式:
:w # 保存文件
:q # 退出
:wq # 保存并退出
:q! # 强制退出不保存
4. 可视模式
-
用于选择文本块
-
示例:
# 从正常模式按v进入可视模式:
v # 字符选择
V # 行选择
Ctrl + v # 块选择
实战
1. 文本编辑示例
# 打开文件
vi example.py
# 进入插入模式(按i)
def calculate_sum(numbers):
"""计算列表总和"""
total = 0
for num in numbers:
total += num
return total
# 按Esc返回正常模式
# 使用yy复制整行
# 使用p粘贴
2. 查找和替换示例
# 在正常模式下:
/word # 向下查找"word"
?word # 向上查找"word"
n # 查找下一个
N # 查找上一个
# 在命令模式下:
:s/old/new # 替换当前行第一个匹配
:%s/old/new/g # 替换整个文件所有匹配
3. 多文件操作示例
# 打开多个文件
vi -o file1.txt file2.txt
# 在文件间切换
:bn # 下一个文件
:bp # 上一个文件
:ls # 列出所有打开的文件
4. 代码编辑示例
// 打开Java文件
vi Example.java
// 进入插入模式编写代码
public class Example {
private String name;
public void setName(String name) {
this.name = name;
}
}
// 使用自动缩进
gg=G # 在正常模式下,自动缩进整个文件
5. 异常恢复示例
# 查看是否有交换文件
ls -a
# 输出:.example.java.swp
# 恢复文件
vi -r example.java
# 恢复完成后删除交换文件
rm .example.java.swp
6. 块操作示例
# 在正常模式下使用Ctrl+v进入块选择模式
# 选择要操作的文本块
# 按I进入插入模式
# 输入要插入的文本(如#)
#print("Debug 1")
#print("Debug 2")
#print("Debug 3")
7. 分屏编辑示例
# 水平分屏
:split file.txt
# 垂直分屏
:vsplit file.txt
# 分屏间移动
Ctrl + w + h # 移到左边窗口
Ctrl + w + l # 移到右边窗口
Ctrl + w + j # 移到下面窗口
Ctrl + w + k # 移到上面窗口
8. 配置文件编辑示例
# 编辑nginx配置文件
vi /etc/nginx/nginx.conf
# 进入插入模式
server {
# 监听端口
listen 80;
# 服务器名称
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
}
# 保存并退出
:wq
记住:
-
使用Esc键返回正常模式
-
使用:进入命令模式
-
使用i、a、o等进入插入模式
-
使用v进入可视模式
3173

被折叠的 条评论
为什么被折叠?



