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:代码补全。
相关推荐
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq6 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮7 小时前
Linux 使用中的问题
linux·运维
dsywws8 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零9 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
小林熬夜学编程10 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
程思扬11 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节