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的行为,如设置语法高亮、自动缩进等。
相关推荐
耶啵奶膘15 分钟前
uniapp-是否删除
linux·前端·uni-app
_.Switch1 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410831 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.1 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-02 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代2 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方3 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘3 小时前
NFS服务器
运维·服务器
苹果醋34 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰4 小时前
[linux]docker基础
linux·运维·docker