Linux中Vim常用指令的笔记

在Linux中,Vim是一个非常强大的文本编辑器,广泛应用于代码编写、文档编辑等多种场景。Vim提供了丰富的指令集,以下是一些常用的Vim指令笔记,涵盖了Vim的三种主要模式:命令模式(Normal模式)、编辑模式(Insert模式)和末行模式(Ex模式)。

一、Vim的三种模式

  1. 命令模式(Normal模式)
    • 默认进入Vim后的模式。
    • 在此模式下,不能对文件直接编辑,但可以通过快捷键进行光标移动、复制、粘贴、删除等操作。
  2. 编辑模式(Insert模式)
    • 按下iaoO等键进入此模式。
    • 在此模式下,可以对文本进行插入、修改等操作。
  3. 末行模式(Ex模式)
    • 按下:(冒号)键进入此模式。
    • 在此模式下,可以输入命令对文件进行操作,如保存、退出、搜索、替换等。

二、常用指令

1. 命令模式指令
  • 光标移动
    • hjkl:分别代表左、下、上、右移动光标。
    • ^$:分别移动到行首和行尾。
    • ggG:分别移动到文件的第一行和最后一行。
    • nG:移动到文件的第n行。
    • we:分别移动到下一个单词的开头和结尾。
    • b:移动到上一个单词的开头。
  • 复制、粘贴和删除
    • yy:复制当前行。
    • nyy:复制当前行及下面的n-1行。
    • pP:粘贴到光标后和光标前。
    • dd:删除当前行。
    • ndd:删除当前行及下面的n-1行。
    • x:删除光标所在字符。
  • 撤销和重做
    • u:撤销上一次操作。
    • Ctrl+r:重做上一次撤销的操作。
  • 搜索和替换
    • /pattern:向光标下搜索pattern字符串。
    • ?pattern:向光标上搜索pattern字符串。
    • nN:分别查找下一个和上一个匹配项。
    • :s/old/new:将当前行的第一个old替换为new。
    • :s/old/new/g:将当前行的所有old替换为new。
    • :%s/old/new/g:将文件中的所有old替换为new。
2. 编辑模式指令
  • 进入编辑模式:按下iaoO等键。
  • 退出编辑模式:按下Esc键。
3. 末行模式指令
  • 保存和退出
    • :w:保存文件。
    • :q:退出Vim(如果文件已修改,则无法直接退出)。
    • :wq:x:保存并退出Vim。
    • :q!:强制退出Vim,不保存修改。
  • 其他常用命令
    • :set nu:显示行号。
    • :set nonu:取消显示行号。
    • :sp filename:水平分割窗口,并在新窗口中打开filename文件。
    • :vsp filename:垂直分割窗口,并在新窗口中打开filename文件。
    • :!ls:在Vim中执行外部命令,如列出当前目录下的文件。

三、Vim的高级用法

  • 可视化模式
    • 按下v进入字符可视化模式,可以选择文本块进行操作。
    • 按下Ctrl+v进入块可视化模式,可以对矩形区域进行操作。
  • 重复命令
    • .(点命令):重复上一次编辑操作。
    • N<command>:重复某个命令N次,如2dd删除两行。
  • 配置Vim
    • Vim的配置文件通常是~/.vimrc(用户级别的配置文件)或/etc/vim/vimrc(系统级别的配置文件)。
    • 可以通过修改配置文件来自定义Vim的行为,如设置语法高亮、自动缩进等。
相关推荐
仍然探索未知中1 分钟前
【Linux内核源码分析】内核数据结构
linux·数据结构
chxii3 分钟前
linux 下用 acme.sh 搞定 Nginx 免费 SSL 证书自动续期(下) 对于acme.sh命令安装详解
linux·运维·服务器
雨落Liy16 分钟前
OpenClaw 腾讯云一键更新后全面排障与恢复
云计算·vim·腾讯云
Bert.Cai20 分钟前
Linux more命令详解
linux·运维
minji...22 分钟前
Linux 多线程(四)线程等待,线程分离,线程管理,C++多线程,pthread库
linux·运维·开发语言·网络·c++·算法
倔强的胖蚂蚁24 分钟前
云原生服务器存储规划与磁盘选型实施
运维·服务器·云原生
ZGUIZ25 分钟前
Ubuntu 25.10 无法外接显示器解决方案
linux·运维·ubuntu
yang)30 分钟前
JESD 204b
运维·服务器·网络
QJtDK1R5a32 分钟前
V4L2 vs GStreamer vs FFmpeg:Linux多媒体处理的三个层级
linux·运维·ffmpeg
倔强的石头10639 分钟前
【Linux指南】基础IO系列(四):文件描述符 fd——Linux 文件操作的 “万能钥匙”
linux·运维·服务器