Linux Vim的 命令大全

简介: Linux Vim的 命令大全

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 的行为。例如,自动显示行号、设置缩进等。

set number           " 显示行号
set autoindent       " 自动缩进
set tabstop=4        " 将 Tab 设为 4 个空格
set shiftwidth=4     " 每次缩进为 4 个空格
set expandtab        " 将 Tab 替换为空格
syntax on            " 启用语法高亮


下载

下载https://www.vim.org/download.php

windows 下载

文档下载

目录
相关文章
|
9天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
161 65
|
1天前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
16 2
Linux系统之lsof命令的基本使用
|
9天前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
34 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
11天前
|
监控 安全 网络协议
|
3天前
|
Linux
Linux 系统五种帮助命令的使用
Linux 系统五种帮助命令的使用
29 14
|
13天前
|
存储 运维 搜索推荐
|
4天前
|
Linux
Linux经常使用命令汇总和总结
Linux经常使用命令汇总和总结
25 1
|
4天前
|
安全 Linux Shell
Linux | Rsync 命令:16 个实际示例(上)
Linux | Rsync 命令:16 个实际示例(上)
18 0
Linux | Rsync 命令:16 个实际示例(上)
|
7天前
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
18 2
|
8天前
|
运维 Java Linux
Linux 下命令后台运行秘籍:无惧终端断开的魔法
本文详细介绍了在 Linux 系统下使命令不受终端断开影响、持续在后台运行的多种方法及其原理。包括使用 `nohup`、`setsid`、括号括起来、作业调度和 `screen` 等技巧,帮助读者提高工作效率,确保任务不被意外中断。
31 0
Linux 下命令后台运行秘籍:无惧终端断开的魔法