Linux-vim

Linux-vim

一、什么是vim

vim 是 Linux/Unix 系统中最核心的文本编辑器之一,全称 Vi IMproved(Vi 编辑器的增强版)。它继承了原始 Vi 编辑器的轻量、高效特性,同时新增了语法高亮、多级撤销、分屏编辑、插件扩展等实用功能,是 Linux 运维、开发、系统管理的 "必备工具"------ 尤其在无图形界面(终端 / SSH 远程)场景下,vim 几乎是无可替代的编辑方案。

二、安装

bash 复制代码
# Ubuntu/Debian 系列
sudo apt update && sudo apt install vim -y

# CentOS/RHEL 系列
sudo yum install vim -y

# 验证安装(查看版本)
vim --version

三、格式和参数

模式切换

vim 的核心设计是"多模式编辑"------不同模式下,键盘按键的功能完全不同。新手最容易困惑的就是"模式切换",掌握后才能真正上手 vim。

1. 三大核心模式

模式 作用 进入方式 退出/切换方式
普通模式(Normal) 核心操作模式:移动光标、复制/粘贴、删除、查找、执行命令(如保存/退出)。 启动 vim 后默认进入;或从其他模式按 Esc 键。 i/a/o 进入插入模式;按 : 进入命令模式。
插入模式(Insert) 输入文本:与普通编辑器的"编辑状态"一致,键盘按键直接输入字符。 普通模式下按 i(光标前插入)、a(光标后插入)、o(光标下新建行插入)。 Esc 键返回普通模式。
命令模式(Command) 执行高级命令:保存、退出、查找替换、分屏、配置设置等(需输入 : 开头的命令)。 普通模式下按 :(光标会跳到屏幕底部输入框)。 执行命令后按 Enter,自动返回普通模式;或按 Esc 取消命令。

启动默认普通模式,i/a/o 进入编辑(插入模式);

编辑完按 Esc 回普通,: 进入命令行(保存/退出)。

2. 普通模式:核心操作

普通模式是 vim 的"效率核心",所有高频操作(移动、复制、删除)都在此模式下通过快捷键完成,无需鼠标。

(1)光标移动(高频快捷键)
快捷键 作用
h/j/k/l 左/下/上/右移动光标(替代方向键,手不用离开键盘主区域)。
w 跳到下一个单词的开头(按空格/标点分隔)。
b 跳回上一个单词的开头。
$ 跳到当前行的末尾。
^ 跳到当前行的第一个非空白字符(避免行首空格)。
gg 跳到文件的第一行。
G 跳到文件的最后一行。
nG 跳到第 n 行(如 10G 跳转到第10行,等价于命令模式 :10)。
Ctrl+f 向下翻一页(forward)。
Ctrl+b 向上翻一页(backward)。
(2)复制/粘贴/删除(核心编辑动作)
快捷键 作用
yy 复制当前行("yank",拉取)。
nyy 复制从当前行开始的 n 行(如 3yy 复制当前行+下两行)。
dd 删除当前行("delete",剪切功能------删除后可粘贴)。
ndd 删除从当前行开始的 n 行(如 5dd 删除5行)。
p 粘贴到光标所在行的下方(粘贴复制/删除的内容)。
P 粘贴到光标所在行的上方
x 删除光标所在位置的单个字符(等价于"删除键")。
dw 删除从光标位置到下一个单词开头的内容(如删除单个单词)。
D 删除从光标位置到当前行末尾的内容。
(3)查找与替换
  • 查找(普通模式下直接输入):

    • /关键词:向下查找(如 /error 查找日志中的"error"),按 n 跳下一个匹配,N 跳上一个。
    • ?关键词:向上查找(如 ?warning 从当前位置往上找"warning")。
    • :noh:命令模式下执行,取消查找高亮。
  • 替换(命令模式下执行):

    bash 复制代码
    # 格式::%s/原字符串/新字符串/[选项]
    :%s/old/new/g        # 替换整个文件中所有"old"为"new"(g=global,全局替换)
    :%s/old/new/gc       # 全局替换,但每次替换前询问确认(c=confirm,适合精准替换)
    :10,20s/old/new/g    # 替换第10-20行中的"old"为"new"(局部替换)

3. 插入模式:文本输入(简单直接)

普通模式下按以下键进入插入模式,输入文本即可(和记事本操作一致):

  • i:在光标插入(insert)。
  • a:在光标插入(append)。
  • o:在光标下一行新建行插入(open)。
  • O:在光标上一行新建行插入(大写 O)。
  • Esc:输入完成后按 Esc 返回普通模式。

命令模式

1. 分屏编辑(同时编辑多个文件)

命令模式下执行,适合对比文件、同时修改关联配置:

  • 横向分屏(上下窗口):split 文件名:sp 文件名(如 :sp /etc/nginx/nginx.conf)。
  • 纵向分屏(左右窗口):vsplit 文件名:vsp 文件名
  • 分屏切换:Ctrl+w+w(在多个窗口间循环切换)。
  • 关闭当前分屏::q(或普通模式按 ZZ)。

2. 编辑大文件/日志(高效技巧)

  • 快速定位到指定行:命令模式 :行号(如 :500 跳转到第500行)。
  • 删除大段内容:普通模式下先定位到起始行,按 ma 标记(a为标记名),再定位到结束行,执行 d'a(删除从标记a到当前行的内容)。
  • 不打开文件快速替换:vim -c "%s/old/new/g" -c "wq" 文件名(批量修改配置文件,无需手动编辑)。

3. 自定义配置(~/.vimrc

vim 的默认配置较简洁,可通过用户配置文件 ~/.vimrc 自定义功能(修改后立即生效,无需重启 vim)。示例常用配置:

bash 复制代码
# 编辑配置文件
vim ~/.vimrc

# 加入以下内容(复制粘贴即可)
set number          # 显示行号
set syntax on       # 开启语法高亮
set tabstop=4       # Tab 键缩进4个字符
set shiftwidth=4    # 自动缩进4个字符(代码换行时生效)
set autoindent      # 开启自动缩进(复制多行代码时保持缩进一致)
set hlsearch        # 查找结果高亮
set incsearch       # 实时查找(输入关键词时即时匹配)
set ignorecase      # 查找时忽略大小写
set mouse=a         # 启用鼠标支持(终端中可点击切换窗口、选中文本)

四、案例参考

1. 启动与退出 vim

(1)启动 vim 并编辑文件
bash 复制代码
# 1. 编辑已存在的文件(若文件不存在则新建)
vim 文件名  # 例:vim /etc/profile(编辑系统环境变量配置)

# 2. 新建并编辑文件(编辑后保存即创建)
vim new_file.txt

# 3. 启动时定位到文件指定行(适合大文件编辑,如日志文件)
vim +行号 文件名  # 例:vim +100 /var/log/nginx/access.log(直接跳转到第100行)
(2)退出 vim(命令模式下执行)
命令 作用
:q 退出(仅当文件未修改时生效,若已修改会提示"未保存")。
:q! 强制退出,丢弃所有修改(慎用!适合编辑错误文件时放弃更改)。
:w 保存文件(不退出,继续编辑)。
:w 新文件名 另存为新文件(如 :w backup_profile.txt,原文件不变)。
:wq 保存并退出(最常用,等价于 :x)。
ZZ 普通模式下直接按 ZZ(大写),快速保存并退出(无需进入命令模式)。

五、报错处理

1、为什么一直退不出来

相关推荐
阿海5741 小时前
卸载redis7.2.4的shell脚本
linux·redis·shell
擎创夏洛克AIOps1 小时前
智能运维的“地基革命”:数据治理如何支撑大模型智能体?
运维·人工智能·科技
SDAU20051 小时前
ESP32C3在Arduino下的MQTT操作
linux·服务器·前端
恒创科技HK1 小时前
新站起步,租用香港服务器适合不?
运维·服务器
梁正雄1 小时前
linux服务-RabbitMQ 原理与安装
linux·rabbitmq·ruby
Henry Zhu1231 小时前
VPP中的DPDK插件源码详解第三篇:DPDK插件的数据接收和发送
运维·服务器·网络·tcp/ip·计算机网络
骇客野人1 小时前
Java @Mapper 使用注解的方式注入SQL
linux·服务器·windows
budingxiaomoli1 小时前
初始网络原理
java·运维·服务器·网络
bank_dreamer1 小时前
【ubuntu】vim作为默认编辑器
ubuntu·编辑器·vim