Vim 命令总结

目录

前言

[1. Vim的三种模式](#1. Vim的三种模式)

[2. 基本操作命令](#2. 基本操作命令)

[3. 文件管理](#3. 文件管理)

[4. 搜索与替换](#4. 搜索与替换)

[5. 文本操作](#5. 文本操作)

[6. 宏与自动化](#6. 宏与自动化)

[7. 配置与自定义](#7. 配置与自定义)

[8. 高级功能](#8. 高级功能)

[9. 插件与扩展](#9. 插件与扩展)


前言

Vim 是一个强大的文本编辑器,广泛用于代码编辑和脚本编写。Vim的命令非常丰富,涵盖了文本操作、文件管理、搜索与替换、宏录制、脚本编写等各个方面。以下是Vim命令的详细介绍,涵盖基本操作、文件管理、文本编辑、搜索与替换等。

1. Vim的三种模式

Vim 有三种主要模式:

  • 正常模式(Normal Mode):默认模式,用于浏览、编辑和执行命令。在这个模式下,按键代表特定命令。
  • 插入模式(Insert Mode) :用于文本输入,类似于其他文本编辑器的普通模式。通过按 i 进入插入模式。
  • 命令模式(Command Mode) :用于执行文件保存、退出、查找替换等操作。在正常模式下按 : 进入命令模式。

2. 基本操作命令

  • 进入 Vim
    • vim filename:打开指定文件。
    • vim:打开Vim,不指定文件。
  • 移动光标
    • h:向左移动光标。
    • j:向下移动光标。
    • k:向上移动光标。
    • l:向右移动光标。
    • gg:移动到文件首行。
    • G:移动到文件尾行。
    • 0:移动到当前行的行首。
    • $:移动到当前行的行尾。
    • w:移动到下一个单词的开头。
    • b:移动到上一个单词的开头。
  • 编辑操作
    • i:在光标前进入插入模式。
    • a:在光标后进入插入模式。
    • o:在光标下方插入新行并进入插入模式。
    • x:删除光标所在字符。
    • dd:删除当前行。
    • yy:复制当前行。
    • p:在光标后粘贴内容。
    • u:撤销上一个操作。
    • Ctrl + r:重做被撤销的操作。

3. 文件管理

  • 保存与退出
    • :w:保存当前文件。
    • :w filename:另存为指定文件名。
    • :q:退出Vim。
    • :q!:不保存退出。
    • :wq:保存并退出。
    • ZZ:保存并退出(正常模式下)。
  • 分屏操作
    • :sp filename:水平分屏打开文件。
    • :vsp filename:垂直分屏打开文件。
    • Ctrl + w + w:切换光标到下一个分屏。
    • Ctrl + w + h/j/k/l:在分屏间移动光标。
    • :q:关闭当前分屏。

4. 搜索与替换

  • 搜索
    • /pattern:向下搜索指定模式。
    • ?pattern:向上搜索指定模式。
    • n:跳转到下一个匹配项。
    • N:跳转到上一个匹配项。
  • 替换
    • :s/old/new:将当前行第一个 old 替换为 new
    • :s/old/new/g:将当前行所有 old 替换为 new
    • :%s/old/new/g:将全文所有 old 替换为 new
    • :%s/old/new/gc:替换时逐个确认。

5. 文本操作

  • 选择与复制

    • v:进入可视模式(选择文本)。
    • V:选择整行。
    • Ctrl + v:进入块可视模式(选择文本块)。
    • y:复制选中文本。
    • d:剪切选中文本。
  • 文本缩进

    • >>:当前行右移一个缩进。
    • <<:当前行左移一个缩进。
    • >:选择后右移缩进。
    • <:选择后左移缩进。

6. 宏与自动化

  • 录制宏

    • q{register}:开始录制宏,register 是任意字母,用作存储宏的寄存器。
    • 执行操作(所有键入的命令将被录制)。
    • q:结束录制宏。
  • 播放宏

    • @{register}:执行存储在寄存器中的宏。
    • @@:重复上一次执行的宏。

7. 配置与自定义

  • Vim 配置文件
    • ~/.vimrc 是Vim的配置文件,可以在其中定义键绑定、设置选项等。
  • 常用配置
    • set number:显示行号。
    • set relativenumber:显示相对行号。
    • set tabstop=4:设置制表符宽度为4。
    • set expandtab:将制表符转换为空格。
    • set autoindent:自动缩进。

8. 高级功能

  • 文本折叠

    • zf:折叠选中的文本。
    • zo:打开折叠。
    • zc:关闭折叠。
    • za:切换折叠状态。
  • 多文件编辑

    • :e filename:打开另一个文件。
    • :bnext / :bn:切换到下一个缓冲区。
    • :bprev / :bp:切换到上一个缓冲区。
    • :bd:关闭当前缓冲区。
  • 撤销树

    • :earlier:later:在撤销树中前进或后退。

9. 插件与扩展

  • 插件管理

    • Vim 支持丰富的插件生态,可以通过插件管理工具(如Vundle、Pathogen、Plug等)来扩展功能。
    • :PluginInstall:安装插件(以Vundle为例)。
  • 常用插件

    • NERDTree:文件浏览器。
    • CtrlP:模糊文件查找。
    • vim-airline:美化状态栏。
    • YouCompleteMe:代码补全。
相关推荐
用户9718356334665 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪7 小时前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈1 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫1 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
2601_961875241 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj1 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes