Linux Vim的 命令大全

Linux Vim的 命令大全

在这里插入图片描述


文章目录

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

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 下载

文档下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SD三分钟入门!秋叶大佬24年8月最新的Stable Diffusion整合包V4.9.7来了~

1 什么是 Stable Diffusion&#xff1f; Stable Diffusion&#xff08;简称SD&#xff09;是一种生成式人工智能技术&#xff0c;于2022年推出。它主要用于根据文本描述生成精细图像&#xff0c;同时也可应用于其他任务&#xff0c;如图像修补、扩展&#xff0c;以及在文本提…

C++ Windwos 文件操作

两种方式获取文件大小 INT64 MyGetFileSize(const CString& strFilePath) {//获取文件大小INT64 nLen 0;WIN32_FILE_ATTRIBUTE_DATA attr { 0 }; //文件属性结构体if (FALSE GetFileAttributesEx(strFilePath, GetFileExInfoStandard, &attr)) //获取文…

图论篇--代码随想录算法训练营第五十一天打卡| 99. 岛屿数量(深搜版),99. 岛屿数量(广搜版),100. 岛屿的最大面积

99. 岛屿数量&#xff08;深搜版&#xff09; 题目链接&#xff1a;99. 岛屿数量 题目描述&#xff1a; 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而…

FFmpeg源码:compute_frame_duration函数分析

一、compute_frame_duration函数的定义 compute_frame_duration函数定义在FFmpeg源码&#xff08;本文演示用的FFmpeg源码版本为7.0.1&#xff09;的源文件libavformat/demux.c中&#xff1a; /*** Return the frame duration in seconds. Return 0 if not available.*/ stat…

2025秋招NLP算法面试真题(十八)-大模型训练数据格式常见问题

目录: SFT(有监督微调)的数据集格式RM(奖励模型)的数据格式PPO(强化学习)的数据格式找数据集哪里找微调需要多少条数据有哪些大模型的训练集进行领域大模型预训练应用哪些数据集比较好1.SFT(有监督微调)的数据集格式? 对于大语言模型的训练中,SFT(Supervised Fine…

pycharm如何安装selenium

在pycharm中打开一个项目后,点击Setting(ALTCtrlS快捷键) 然后点击install package完成后点击关闭这个窗口,就可以在代码中使用selenium了 成功后出现如下界面 编写一段正常可以运行操作chorme浏览器的 from selenium import webdriver # 指定ChromeDriver的路径driver we…

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中…

SQL 编程基础

SQL&#xff08;结构化查询语言&#xff09;广泛应用于数据库操作&#xff0c;是每个程序员都需要掌握的技能之一。这篇文章将带你从基础入门&#xff0c;了解SQL编程中的常量、变量及流程控制语句。我们将采用简单易懂的语言&#xff0c;结合实际示例&#xff0c;帮助你轻松理…

Android 调试桥——ADB

文章目录 前言ADB 的主要功能设备连接与管理应用安装与卸载文件传输日志查看设备重启 常用命令连接方式有线无线注意点 前言 ADB&#xff08;Android Debug Bridge&#xff0c;安卓调试桥&#xff09;是 Android SDK 提供的一种命令行工具&#xff0c;用于在开发者的计算机和 …

Stable Diffusion训练LoRA模型参数详细说明(阿里巴巴堆友AI)

工具&#xff1a;线上模型训练堆友AI 一、训练参数 批量大小 (Batch Size) 作用&#xff1a;每次训练中使用的样本数量。参考值&#xff1a;可以从 8 到 64&#xff0c;取决于显存大小。 训练轮数 (Epochs) 作用&#xff1a;完整遍历训练数据的次数。参考值&#xff1a;通…

骨传导耳机推荐排名,精选五款热门好用不踩雷推荐

近两年来&#xff0c;骨传导运动蓝牙耳机在运动领域内日益流行。与传统耳机相比&#xff0c;它的显著优势是能够保持双耳开放&#xff0c;不会堵塞耳道&#xff0c;消除了入耳式耳机可能引起的不适感。此外还能避免运动时耳内出汗可能导致的各种卫生和健康问题。很多人就问了&a…

C# 使用阿里DOH

阿里公共DNS 1. DNS over HTTPs(DoH) 阿里公共DNS通过RFC 8484指定的经过TLS加密的HTTP连接提供DNS解析 DNS over HTTPs&#xff08;DoH&#xff09;的URI接口 &#xff1a;&#xff08;仅提供TLS API&#xff09; https://dns.alidns.com/dns-query?https://alidns_ip/dn…

Python 调用手机摄像头

Python 调用手机摄像头 在手机上安装软件 这里以安卓手机作为演示&#xff0c;ISO也是差不多的 软件下载地址 注意&#xff1a;要想在电脑上查看手机摄像头拍摄的内容的在一个局域网里面(没有 WIFI 可以使用 热点 ) 安装完打开IP摄像头服务器 点击分享查看IP 查看局域网的I…

谷粒商城のNginx

文章目录 前言一、Nginx1、安装Nginx2、相关配置2.1、配置host2.2、配置Nginx2.3、配置网关 前言 本篇重点介绍项目中的Nginx配置。 一、Nginx 1、安装Nginx 首先需要在本地虚拟机执行&#xff1a; mkdir -p /mydata/nginx/html /mydata/nginx/logs /mydata/nginx/conf在项目…

数学建模笔记——TOPSIS[优劣解距离]法

数学建模笔记——TOPSIS[优劣解距离法] TOPSIS(优劣解距离)法1. 基本概念2. 模型原理3. 基本步骤4. 典型例题4.1 矩阵正向化4.2 正向矩阵标准化4.3 计算得分并归一化4.4 python代码实现 TOPSIS(优劣解距离)法 1. 基本概念 C. L.Hwang和 K.Yoon于1981年首次提出 TOPSIS(Techni…

Windows操作系统sid系统唯一标识符查看和修改

1、sid介绍 sid 作为windows系统唯一的标识&#xff0c;对某些集群业务有依赖关系&#xff0c;如果重复可能导致集群部署异常。 如&#xff1a;域控AD 就依赖 sid 功能。 但是某个云主机或虚拟机使用同一个ghost进行操作系统部署&#xff0c;就可能会导致重复的情况&#xf…

java-在idea中antrl的hello world

java-在idea中antrl的hello world 1. 在idea中安装ANTLR V4的插件2. 下载ANTLR的jar包3. idea中创建普通的java项目4. 创建一个Hello.g4的文件5. 使用idea生产接口文件6. java创建一个类和main方法7. 调试输出8. 参考链接 1. 在idea中安装ANTLR V4的插件 路径如下&#xff0c;…

为什么现在都流行开放式耳机?平价高品质蓝牙耳机推荐大赏

现在开放式耳机流行&#xff0c;是因为相比入耳式&#xff0c;它具有以下的优势&#xff1a; 一、佩戴舒适 开放式耳机通常设计轻盈&#xff0c;不直接刺激耳膜&#xff0c;长时间使用也不会给耳膜带来压迫感。而且其不入耳的设计不会堵塞耳道&#xff0c;使用较长时间后&…

Notepad++ 修改 About

1. 用这个工具&#xff0c;看标题&#xff0c;修改 1700 里的 Caption, 保存为 xx.exe, 2.修改链接&#xff0c;先准备如上。 2.1 使用插件 Hex Editor&#xff0c;拖入刚保存的 Notepad.exe 到 Notepad.exe, 按 c..S..H 2.2 按 ctrlf 查找 68 00 74 00 74 00 70 00 73 00 3…

gitlab+habor+jenkins+k8s 安装流程及配置实现CICD

以下是基本的安装流程及配置实现CICD的步骤&#xff1a; 安装GitLab&#xff1a; 安装依赖项&#xff1a;yum install curl policycoreutils-python openssh-server启动和设置SSH&#xff1a;systemctl enable sshd && systemctl start sshd安装Postfix&#xff1a;yum…