Linux文本编辑器 vi/vim 的四种模式

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进入可视模式

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值