Vim基本操作

文章目录

  • 一、Vim基本概念
  • 二、Vim基本操作
    • 1.命令模式
    • 2.插入模式
    • 3.底行模式
    • 4.视图模式
    • 5.替换模式
  • 三、一键化Vim配置

一、Vim基本概念

Vim (Vi IMproved) 是一款功能强大、高度可配置的文本编辑器,在程序员、系统管理员中广泛流行。它最初是 Unix 编辑器 vi 的改进版本。Vim 的核心特点是其模态编辑特性。与大多数常见的编辑器(如记事本、VS Code)不同,Vim 有多种操作模式。用户在不同的模式下执行不同的操作(如输入文本、删除文本、复制粘贴、保存文件等)。这种设计使得用户的手无需离开键盘主区域即可高效地完成复杂的编辑任务,极大地提升了文本编辑效率,尤其是在命令行环境下。


二、Vim基本操作

Vim 的操作主要围绕其几种核心模式展开。理解并熟练切换这些模式是掌握 Vim 的关键。

1. 命令模式 (Normal Mode)

  • 状态: 这是 Vim 的默认模式。当你启动 Vim 或完成其他操作(如输入文本)后,通常会自动返回到此模式。
  • 作用: 在此模式下,键盘按键不再代表输入字符,而是执行编辑命令。你可以移动光标、删除文本、复制粘贴、撤销/重做、查找替换、保存文件等。
  • 核心操作:
    • 光标移动:
      • h (左), j (下), k (上), l (右) - 基础方向键。 ("Jump下、King上")
      • w / W - 移动到下一个单词/空格分隔的大单词开头。
      • b / B - 移动到上一个单词/空格分隔的大单词开头。
      • e / E - 移动到下一个单词/空格分隔的大单词结尾。
      • 0 - 移动到行首。
      • ^ - 移动到行首第一个非空白字符。
      • $ - 移动到行尾。
      • gg - 移动到文件第一行行首。
      • G- 移动到文件最后一行行首。
      • :[n] + Enter - 跳转到第 n 行 (例如 :10 跳转到第 10 行)。
    • 文本操作:
      • x - 删除光标下的字符。
      • dd- 删除 (剪切) 当前行。
      • [n]dd - 删除 (剪切) 当前行开始的 n 行 (例如 2dd 删除 2 行)。
      • yy - 复制 (yank) 当前行。
      • [n]yy - 复制当前行开始的 n 行。
      • p - 在光标后粘贴 (如果是行则在下一行粘贴)。
      • P - 在光标前粘贴 (如果是行则在上一行粘贴)。
      • u - 撤销 (Undo) 上一次操作。
      • Ctrl + r - 重做 (Redo) 被撤销的操作。
    • 进入其他模式:
      • i - 在光标前进入插入模式。
      • a - 在光标后进入插入模式。
      • o - 在当前行下方插入新行并进入插入模式。
      • O - 在当前行上方插入新行并进入插入模式。
      • : - 进入底行模式。
      • v - 进入视图模式 (字符可视)。
      • V - 进入视图模式 (行可视)。
      • Ctrl + v - 进入视图模式 (块可视)。
      • R - 进入替换模式。
  • 重要性: 命令模式是 Vim 高效编辑的基础,大部分时间都花在此模式下进行导航和命令操作。

2. 插入模式 (Insert Mode)

  • 状态: 在此模式下,键盘按键的行为与普通文本编辑器一致**,用于输入和编辑文本内容。**
  • 进入方式: 从命令模式下按 i, a, o, O, s (删除当前字符并插入), S (删除整行并插入), c[操作] (如 cw 删除单词并插入) 等命令进入。
  • 退出方式:Esc 键退出插入模式,返回到命令模式。
  • 特点: 屏幕底部通常会显示**-- INSERT --** 或 -- 插入 -- 的提示,表示当前处于插入模式。

3. 底行模式 (Command-Line Mode / Ex Mode)

  • 状态: 在此模式下,用户可以在编辑器底部输入以 : 开头的命令。
  • 进入方式: 在命令模式下按 : 键进入。
  • 作用: 主要用于执行文件操作、编辑器设置、执行外部命令、全局搜索替换等高级功能。
  • 常用命令:
    • :w**- 保存文件 (Write)。**
    • :w [filename] - 另存为到 [filename]
    • :q**- 退出 Vim (Quit)。**
    • :q! - 不保存强制退出。
    • :wq / :x - 保存并退出。
    • :[range]s/old/new/[flags] - 在指定 [range] 内进行搜索 old 并替换为 new。例如:
      • :s/foo/bar/ - 替换当前行第一个 "foo" 为 "bar"。
      • :s/foo/bar/g - 替换当前行所有 "foo" 为 "bar"。
      • :%s/foo/bar/g - 替换整个文件 ( % 代表所有行) 中所有 "foo" 为 "bar"。
    • :set ... - 设置编辑器选项。例如:
      • :set number / :set nu - 显示行号。
      • :set nonumber / :set nonu - 隐藏行号。
      • :set hlsearch - 高亮搜索结果。
      • :set nohlsearch - 取消高亮搜索结果。
    • :[range]d - 删除指定行范围 (例如 :10,20d 删除第 10 到 20 行)。
    • :[range]y - 复制指定行范围。
    • :![command] - 执行外部 shell 命令 (例如 :!ls 列出当前目录文件)。
  • 退出方式: 执行完命令后自动退出;按 Esc 可取消正在输入的命令并退出到底行模式之前的模式(通常是命令模式)。

4. 视图模式 (Visual Mode)

  • 状态: 在此模式下,用户可以用光标移动高亮选择文本区域,然后对选中的文本执行命令(如删除、复制、缩进等)。
  • 进入方式:
    • v - 字符可视模式:以字符为单位选择。
    • V (Shift + v) - 行可视模式:以整行为单位选择。
    • Ctrl + v - 块可视模式:允许选择矩形文本块(列选择)。
  • 操作: 进入视图模式后,使用方向键 (h, j, k, l 等) 移动光标来扩大或缩小选择范围。
  • 执行命令: 选中文本后,可以直接输入命令操作选中的文本:
    • d / x - 删除选中文本 (剪切)。
    • y - 复制选中文本。
    • > - 向右缩进选中文本。
    • < - 向左缩进选中文本。
    • : - 对选中文本执行底行命令 (例如 :'<,'>s/foo/bar/g 替换选中区域内的所有 "foo" 为 "bar",'<,'> 代表选中的范围)。
    • c - 删除选中文本并进入插入模式。
  • 退出方式:Esc 键退出视图模式,返回到命令模式。执行命令(如 d, y)后也会自动返回到命令模式。

5. 替换模式 (Replace Mode)

  • 状态: 在此模式下,用户输入的字符会逐个覆盖光标位置及之后的原有字符,而不是插入新字符。
  • 进入方式:
    • 命令模式下按 R (Shift + r) 进入连续替换模式。
    • 命令模式下按 r[char] 进入单字符替换 (只替换光标下的一个字符为 [char],然后自动回到命令模式)。
  • 操作: 在连续替换模式下,每输入一个字符,就会覆盖掉光标当前位置的字符,并且光标自动向后移动一位。可以连续输入覆盖多个字符。
  • 退出方式:Esc 键退出替换模式,返回到命令模式。

模式切换总结:

当前模式 进入其他模式的方式 目标模式
命令模式 i, a, o, O, s, c[操作] 插入模式
: 底行模式
v 视图(字符可视)
V 视图(行可视)
Ctrl + v 视图(块可视)
R 替换模式
插入模式 Esc 命令模式
底行模式 Enter (执行命令) 或 Esc (取消) 命令模式
视图模式 Esc 或执行操作命令 (d, y, :, c 等) 命令模式
替换模式 Esc 命令模式

三、一键化Vim配置

1.必须是普通账号,不能用root账号

  1. 命令行输入:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

  2. 输入root账号

4.只在自己当前账号下有效

5.需要重新登陆

6.查看.vimrc隐藏文件,/2查找三个,改成4保存退出缩进为4


总结

Vim 是一款高效、高度可定制的文本编辑器,以其模态编辑和强大的键盘操作为核心特点。以下是其关键特性的总结:

  1. 模态编辑

    Vim 包含多种模式:

    • 普通模式:用于导航和命令操作(默认进入模式)
    • 插入模式 :直接输入文本(通过 ia 进入)
    • 可视模式 :选择文本(vVCtrl+v
    • 命令模式 :执行保存、退出等指令(:
  2. 高效导航与编辑

    • 支持基于单词(wb)、行(0$)、屏幕(HML)的快速移动
    • 组合命令如 d2w(删除两个单词)、cip(修改段落内文本)
    • 宏录制(q)可自动化重复操作
  3. 强大扩展能力

    • 通过 .vimrc 文件自定义快捷键、主题、行为
    • 支持插件(如 Vundle、Pathogen)增强功能(语法检查、版本控制集成)
    • 脚本语言(Vimscript)支持深度定制
  4. 核心优势

    • 极低资源占用,适用于远程服务器和终端环境
    • 跨平台支持(Linux、macOS、Windows)
    • 内置教程(:Tutor)帮助用户渐进学习
  5. 适用场景

    • 系统管理(配置文件编辑)
    • 软件开发(代码高亮、语法检测)
    • 文本处理(批量替换、正则表达式)
相关推荐
Yana.nice42 分钟前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月1 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1152 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng2 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.2 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
VekiSon2 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
Hello World . .3 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·vim
zl_dfq3 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux