简单介绍一下vim

news2024/11/27 17:58:13

简单介绍一下vim

  • 一、vim是什么?
  • 二、vim的优点
  • 三、vi/vim的使用
    • 命令模式
    • 输入模式
    • 底线命令模式
  • 四、vi/vim 按键说明
      • (一)命令模式可用的光标移动、复制粘贴、搜索替换等
        • 移动光标的方法:
        • 搜索替换的方法
        • 删除、复制与贴上的方法
      • (二)一般模式切换到编辑模式的可用的按钮说明
      • (三)一般模式切换到指令行模式的可用的按钮说明
      • (四)vim 环境的变更

一、vim是什么?

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

vim 键盘图
在这里插入图片描述

二、vim的优点

  • 兼容性:vi 是 Unix-like 系统的标准组件,是POSIX 标准的一部分,这意味着所有遵循 POSIX 标准的系统都需要提供 vi 或兼容的编辑器。这确保了应用程序和脚本在不同系统间的兼容性。
  • 轻量级:vi 是一个轻量级的编辑器,它不需要图形用户界面(GUI),可以在命令行界面中运行。这使得它非常适合在资源受限的环境中使用,如服务器、嵌入式系统或远程登录。
  • 功能强大:尽管 vi 的界面相对简单,但它提供了强大的文本编辑功能,包括多级撤销、宏录制、正则表达式搜索和替换等。
  • 可定制性:vi 可以通过配置文件 .vimrc(对于 Vim)或 .exrc 进行定制,允许用户根据自己的需求调整编辑器的行为。
  • 性能,系统支持:处理大型文件时,它能够快速加载和编辑,而不会消耗大量系统资源。vi/Vim 拥有一个活跃的社区,提供了大量的插件和扩展,这使得编辑器能够适应不同的编程语言和开发环境。

三、vi/vim的使用

基本上 vi/vim 共分为三种模式。

  • 命令模式(Command Mode)(一般模式,普通模式)
  • 输入模式(Insert Mode)
  • 命令行模式(Command-Line Mode)
    在这里插入图片描述

命令模式

用户刚刚启动 vi/vim,便进入了命令模式,命令模式下输入的字符会被当做命令执行。

命令模式只有一些最基本的命令,仍要依靠底线命令行模式输入更多命令。基本命令有:

i -- 切换到输入模式,在光标当前位置开始输入文本。
x -- 删除当前光标所在处的字符。
: -- 切换到底线命令模式,以在最底一行输入命令。
a -- 进入插入模式,在光标下一个位置开始输入文本。
o:在当前行的下方插入一个新行,并进入插入模式。
O -- 在当前行的上方插入一个新行,并进入插入模式。
dd -- 剪切当前行。
yy -- 复制当前行。
p(小写) -- 粘贴剪贴板内容到光标下方。
P(大写)-- 粘贴剪贴板内容到光标上方。
u -- 撤销上一次操作。
Ctrl + r -- 重做上一次撤销的操作。
:w -- 保存文件。
:q -- 退出 Vim 编辑器。
:q! -- 强制退出Vim 编辑器,不保存修改。
. :重复插入,:在普通模式下,按下.键会重复上一次在插入模式(Insert Mode)中所做的更改。
   这包括插入的文本、删除的文本、替换的文本等。

输入模式

允许用户插入或修改文本的模式。

  • Shift 组合:使用 Shift 键与字母键或数字键组合,可以输入大写字母或特殊字符。例如,按住 Shift 键并同时按下 ‘1’ 键可以输入感叹号 ‘!’。

  • 退格和删除:
    在输入模式中,Backspace 键通常用于删除光标左侧的字符。
    Delete 键(或在某些键盘上是 Del 键)通常用于删除光标下的字符。

  • 方向键,在文本中移动光标

  • HOME/END,移动光标到行首/行尾

  • Page Up/Page Down,上/下翻页

  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

  • ESC,退出输入模式,切换到命令模式

  • 插入特殊字符:某些特殊字符可能需要特定的按键组合来输入,比如使用 Ctrl 键与字母键组合输入控制字符。

  • 插入换行符:按 Enter 键可以在当前光标位置插入一个换行符,开始新的一行。

  • 使用 Tab 键:Tab 键可以插入一个制表符,其宽度可以在 Vim 配置中设置。

底线命令模式

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

:w:保存文件。
:q:退出 Vim 编辑器。
:wq:保存文件并退出 Vim 编辑器。
:q!:强制退出Vim编辑器,不保存修改。

四、vi/vim 按键说明

(一)命令模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法:

在这里插入图片描述)

搜索替换的方法

在这里插入图片描述

删除、复制与贴上的方法

在这里插入图片描述

(二)一般模式切换到编辑模式的可用的按钮说明

在这里插入图片描述

(三)一般模式切换到指令行模式的可用的按钮说明

在这里插入图片描述

(四)vim 环境的变更

配置文件是 ~/.vimrc(对于 Unix-like 系统,包括 Linux 和 macOS),或者 %USERPROFILE%_vimrc(对于 Windows)。

显示行号:
(在任何模式下输入以下命令,一般是命令模式)

:set nu	显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu	与 set nu 相反,为取消行号!

(要使 Vim 每次启动时都显示行号,您可以在 Vim 配置文件中添加以下行)

set number
set nonumber

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

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

相关文章

Vue15-watch对比计算属性

一、姓名案例 1-1、watch实现 1-2、计算属性 对比发现: 计算属性比watch属性更简略一些。 1-3、计算属性 VS 侦听属性 1-4、需求变更 计算属性中不能开启异步任务!!!因为计算属性靠return返回值。但是watch靠亲自写代码去改。 1-…

msvcp140_CODECVT_IDS.dll的解决方法是什么?有多少种解决方法

msvcp140_CODECVT_IDS.dll 是一个动态链接库(DLL)文件,属于微软Visual C 2015运行时库的一部分。这个文件主要负责字符编码转换,支持Unicode与其他字符集之间的转换,如UTF-8与UTF-16。它对于运行时库的多语言支持至关重…

【Python】在【数据挖掘】与【机器学习】中的应用:从基础到【AI大模型】

目录 💗一、Python在数据挖掘中的应用💕 💖1.1 数据预处理💞 💖1.2 特征工程💕 💗二、Python在机器学习中的应用💕 💖2.1 监督学习💞 💖2.2…

cs与msf权限传递

cs传递到msf 1,先启动cs ┌──(root㉿ring04h)-[~/cobalt_strike_4.7] └─# ./teamserver 192.168.196.144 123456 ​ ┌──(root㉿ring04h)-[~/cobalt_strike_4.7] └─# ./start.sh ​ 2,上传木马,上线主机 3,msf配置一个…

Springboot健身房管理系统-计算机毕业设计源码44394

摘 要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在健身房管理的要求下,开发一款整体式结构的健身房管理系统…

Unity HoloLens2 MRTK 空间锚点 基础教程

Unity HoloLens2 MRTK 空间锚点 基础教程 Unity HoloLens2 空间锚点MRTK 空间锚点 准备Unity 工程创建设置切换 UWP 平台UWP 平台设置 下载并安装混合现实功能工具导入混合现实工具包和 OpenXR 包 Unity 编辑器 UWP 设置Unity 2019.4.40 设置Unity 2022.3.0 设置Unity 2022.3.0…

【数据结构(邓俊辉)学习笔记】图04——双连通域分解

文章目录 0. 概述1 关节点与双连通域2 蛮力算法3 可行算法4 实现5 示例6 复杂度 0. 概述 学习下双连通域分解,这里略微有一点点难,这个算是DFS算法的非常非常经典的应用,解决的问题也非常非常有用。 1 关节点与双连通域 连通性很好理解&am…

C语言——字符数组

一、字符数组的定义 语言字符数组的定义是指在C语言中可以使用一组连续的字符来存储和处理字符串。在定义字符数组时,需要指定数组的大小,并且可以初始化数组的内容。 1、字符数组方式: char str[] "Hello,world!";2、指针方式…

13- 函数的定义与使用+形参实参区分

13- 函数的定义与使用形参实参区分 文章目录 13- 函数的定义与使用形参实参区分一、函数的定义与使用1.1 函数的结构1. 函数头2. 函数体 1.2 示例代码例子 1:无参数和无返回值的函数例子 2:带参数和返回值的函数 1.3 函数的基本语法1.4 函数的使用示例例…

「动态规划」如何计算能获得多少点数?

740. 删除并获得点数https://leetcode.cn/problems/delete-and-earn/description/ 给你一个整数数组nums,你可以对它进行一些操作。每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。之后,你必须删除所有等于nums[i] …

统信UOS1070上配置文件管理器默认属性02

原文链接:统信UOS 1070上配置文件管理器默认属性01 Hello,大家好啊!今天给大家带来一篇在统信UOS 1070上配置文件管理器默认属性的第二篇文章——配置工作区视图。文件管理器中的工作区视图配置可以帮助我们更好地组织和管理文件,…

“群模时代”,国产AI大模型的进击

近期,国内多款大模型重磅消息不断。 1 3月,月之暗面的Kimi升级迭代后,长文本能力达到尚未上线的GPT-4.5Turbo的10倍。 2 4月,商汤科技发布的“日日新SenseNova”5.0多模态大模型在主流客观评测上,中文理解、知识储…

arm开发板移植sshd

移植sshd 文章目录 移植sshd1、准备工作2、编译zlib3、编译openssl4、编译openssh5、其他旧版本6、部署测试7、多用户配置8、sshd_config示例 1、准备工作 准备openssh-9.5p1.tar.gz openssl-1.1.1w.tar.gz zlib-1.2.11.tar.gz 我在http://10.45.156.100/IG2100/IG2100.git …

栈的实现和括号匹配问题

1.什么是栈 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈&#xf…

数据中心智能化运维发展研究报告(2023)解读

数据中心智能化运维发展研究报告(2023)解读 《数据中心智能化运维发展研究报告(2023)》探讨了数据中心智能化运维的概念、核心内容、实际应用和发展建议。报告指出,通过人工智能、大数据等新一代信息技术的深度应用&a…

【recast-navigation-js】使用three.js辅助绘制Agent寻路路径

目录 说在前面setAgentTarget绘制寻路路径结果问题其他 说在前面 操作系统:windows 11浏览器:edge版本 124.0.2478.97recast-navigation-js版本:0.29.0golang版本:1.21.5上一篇:【recast-navigation-js】使用three.js辅…

STM32CubeIDE使用过程记录

最近在做一款机器人的开发,使用到了STM32CubeIDE,这里记录一些使用技巧方便后续查阅。 STM32CubeIDE使用过程记录 快捷键开启代码自动补全功能看门狗设置CRC设置IO口取反定时器设置 及 定时器中断外部中断GPIO配置STC15单片机GPIO模式配置片内闪存&#…

PyTorch学习7:加载数据集

文章目录 前言一、epoch,batch-size和iteration二、示例1.说明2.代码示例 总结 前言 介绍PyTorch中加载数据集的相关操作。Dataset和DataLoader 一、epoch,batch-size和iteration epoch:所有训练数据完成一次前馈和反馈 batch-size&#x…

深度学习革命-AI发展详解

深度学习革命 《深度学习革命》是一部引人深思的作品,详细讲述了深度学习技术的发展历程及其对各个行业的深远影响。由杰出的计算机科学家、深度学习专家撰写,这本书不仅适合科技领域的专业人士阅读,也为普通读者提供了一个理解人工智能革命…

Vue TypeScript 实战:掌握静态类型编程

title: Vue TypeScript 实战:掌握静态类型编程 date: 2024/6/10 updated: 2024/6/10 excerpt: 这篇文章介绍了如何在TypeScript环境下为Vue.js应用搭建项目结构,包括初始化配置、创建Vue组件、实现状态管理利用Vuex、配置路由以及性能优化的方法&#x…