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的行为,如设置语法高亮、自动缩进等。
相关推荐
林姜泽樾17 分钟前
linux入门第五章,mkdir、touch详解
linux·运维·服务器
木子欢儿28 分钟前
在 Debian 13(以及 12)上安装和配置 tightvncserver 并让普通用户使
运维·前端·debian
ol木子李lo33 分钟前
Linux 命令备忘录
linux·运维·服务器·windows·编辑器·ssh·bash
2501_918126911 小时前
stm32能刷什么程序?
linux·stm32·单片机·嵌入式硬件·学习
第七序章1 小时前
【Linux学习笔记】git三板斧
linux·运维·服务器·笔记·git·学习
礼拜天没时间.1 小时前
Node.js运维部署实战:从0到1开始搭建Node.js运行环境
linux·运维·后端·centos·node.js·sre
一只自律的鸡1 小时前
【Linux系统编程】文件IO 标准IO
linux·运维·服务器
EverydayJoy^v^1 小时前
Linux Shell 高级编程(2)——sed
linux·运维·服务器
小义_1 小时前
【Kubernetes】(二)k8s基础
linux·云原生·k8s
清水白石0082 小时前
《解锁 Python 潜能:从异步基石到 pytest-asyncio 高级测试实战与最佳实践》
运维·python·pytest