Linux Vim的 命令大全
### 文章目录
- [Linux Vim的 命令大全](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [@[TOC](文章目录)](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [Vim 的历史](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [Vi 的诞生](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [Vim 的诞生](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [Vim 的开源与发展](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [Vim 的影响力](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [1.Vim 的基本模式](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [2. 正常模式常用命令](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [3. 插入模式](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [4. 命令模式](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [5. 可视模式](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [6. 其他有用的命令](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [7. 自定义设置](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
- [下载](#文章目录 Linux Vim的 命令大全 @TOC Vim 的历史 Vi 的诞生 Vim 的诞生 Vim 的开源与发展 Vim 的影响力 1.Vim 的基本模式 2. 正常模式常用命令 3. 插入模式 4. 命令模式 5. 可视模式 6. 其他有用的命令 7. 自定义设置 下载)
Vim 的历史
Vim 的历史可以追溯到 1991 年,它是由荷兰程序员 Bram Moolenaar 开发的。Vim 的全称是 Vi IMproved,顾名思义,它是对经典文本编辑器 Vi 的增强版。以下是 Vim 的发展历史及其背景介绍:
Vi 的诞生
要了解 Vim,首先要提到它的前身 Vi。Vi 是 UNIX 操作系统中的一种文本编辑器,由 Bill Joy 在 1976 年开发。Vi 的诞生初衷是为了提供一个可以在当时计算机资源受限的环境中使用的高效文本编辑器。Vi 的设计哲学强调键盘上的简洁快捷操作,减少依赖鼠标的交互,极大地提高了编辑文本的效率。
由于 Vi 是开源的,并且伴随 UNIX 的流行在多个操作系统中得到广泛应用,许多开发者和用户都对其功能提出了更多需求。然而,Vi 在早期版本中存在一些功能的局限性,这为 Vim 的诞生奠定了基础。
Vim 的诞生
Bram Moolenaar 于 1991 年发布了最初版本的 Vim,最初它是为 Amiga 计算机设计的。最初版本被称为 "Vi IMitation",旨在模仿 Vi 的行为。随着时间推移,Moolenaar 添加了大量新功能,使其超越了 Vi 的功能,因而重命名为 Vi IMproved,即 Vim。
Vim 作为 Vi 的增强版,提供了许多原始 Vi 所缺乏的功能,例如:
多级撤销:Vi 只有单级撤销功能,而 Vim 支持无限撤销。
语法高亮:Vim 提供了语法高亮显示,帮助用户在编辑代码时更容易区分不同的语法元素。
可视模式:Vim 引入了可视模式,允许用户在选择文本后对其进行操作。
插件系统:Vim 支持插件,使其功能可以进一步扩展,适应各种需求。
这些改进使得 Vim 不仅是一个高效的文本编辑器,还成为了开发者、系统管理员等专业用户的首选工具之一。
Vim 的开源与发展
Bram Moolenaar 从 Vim 的早期版本开始就将其作为开源软件发布,并一直保持着对 Vim 的维护和更新。他还通过 Vim 推广慈善项目。他将用户捐款用于支持乌干达的儿童福利项目,尤其是帮助当地的儿童教育和基础设施建设。
随着时间的推移,Vim 社区不断壮大,越来越多的贡献者加入,推出了各种插件和配置,进一步扩展了 Vim 的功能。例如,Vim 的插件系统使得它能够支持 IDE 功能,如代码补全、错误检查等,使其成为了现代开发者的强大工具。
Vim 的影响力
Vim 的影响力不仅限于 Linux 和 UNIX 系统,它几乎可以在所有主流操作系统上运行,包括 Windows 和 macOS。Vim 的轻量级、高效特性使其在资源受限的环境中尤其受欢迎,许多服务器管理员依赖 Vim 进行快速的远程文件编辑。
Vim 的设计思想和模式编辑方式也影响了许多其他编辑器。许多现代文本编辑器(如 Sublime Text、Visual Studio Code 等)提供了 Vim 模式,让用户可以在这些编辑器中使用 Vim 的操作方式。
1.Vim 的基本模式
Vim 有三种主要的模式,每种模式对应不同的操作:
正常模式(Normal Mode):默认模式,用于浏览和修改文本。
插入模式(Insert Mode):用于插入和编辑文本。
命令模式(Command Mode):用于执行保存、退出、查找等命令。
进入 Vim
复制代码
vim filename
打开文件 filename,进入正常模式。如果文件不存在,Vim 会创建一个新文件。
2. 正常模式常用命令
进入 Vim 默认处于正常模式,可通过以下命令来快速导航和操作文本。
基本导航
h:光标左移一个字符
l:光标右移一个字符
j:光标下移一行
k:光标上移一行
w:跳到下一个单词的开头
b:跳到上一个单词的开头
gg:移动到文件开头
G:移动到文件结尾
0:移动到行首
$:移动到行尾
Ctrl + f:向下翻页
Ctrl + b:向上翻页
编辑文本
x:删除光标所在字符
dd:删除当前行
yy:复制当前行
p:粘贴复制或剪切的内容
u:撤销上一步操作
Ctrl + r:重做撤销的操作
r:替换当前字符
J:将当前行与下一行合并
:当前行右移
<<:当前行左移
搜索与替换
/pattern:搜索 pattern
n:跳转到下一个匹配结果
N:跳转到上一个匹配结果
:%s/old/new/g:全局替换所有 old 为 new
:%s/old/new/gc:全局替换,逐个确认
高效删除
dw:删除到下一个单词的开头
d$:删除至行尾
dgg:删除至文件开头
dG:删除至文件结尾
3. 插入模式
在正常模式下,通过以下命令进入插入模式:
i:在光标前插入
I:在行首插入
a:在光标后插入
A:在行尾插入
o:在当前行下方插入新行
O:在当前行上方插入新行
进入插入模式后,输入的文本将被插入文件中。完成后按 Esc 键返回正常模式。
4. 命令模式
在正常模式下,按 : 进入命令模式,执行各种文件操作命令。
文件操作
:w:保存文件
:q:退出 Vim
:wq:保存并退出
:q!:不保存强制退出
:w filename:将文件另存为 filename
:e filename:打开文件 filename
:r filename:将文件 filename 的内容插入到当前文件中
:set nu:显示行号
:set nonu:取消行号显示
5. 可视模式
按下 v 键进入可视模式,可以通过移动光标选择文本,进行批量操作。
v:字符选择
V:行选择
Ctrl + v:块选择
d:删除选择的文本
y:复制选择的文本
:右移选择的文本
<:左移选择的文本
6. 其他有用的命令
.:重复上一个命令
~:切换字符大小写
Ctrl + g:显示光标所在行与文件信息
:! command:执行外部命令,例如 :! ls 列出当前目录的文件
7. 自定义设置
你可以通过配置 .vimrc 文件,定制 Vim 的行为。例如,自动显示行号、设置缩进等。
bash
set number " 显示行号
set autoindent " 自动缩进
set tabstop=4 " 将 Tab 设为 4 个空格
set shiftwidth=4 " 每次缩进为 4 个空格
set expandtab " 将 Tab 替换为空格
syntax on " 启用语法高亮