简单介绍一下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

相关推荐

  1. 简单介绍一下WebRTC中NACK机制

    2024-06-10 23:02:02       26 阅读
  2. 简要介绍一下HTML的发展史?

    2024-06-10 23:02:02       31 阅读
  3. vim简单命令学习

    2024-06-10 23:02:02       40 阅读
  4. Vim和Nano简介

    2024-06-10 23:02:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 23:02:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 23:02:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 23:02:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 23:02:02       18 阅读

热门阅读

  1. 人工智能小作业

    2024-06-10 23:02:02       5 阅读
  2. 串2 串的模式匹配算法(KMP)

    2024-06-10 23:02:02       7 阅读
  3. QT知识积累:qt取整函数

    2024-06-10 23:02:02       14 阅读
  4. MyBatis面试题系列三

    2024-06-10 23:02:02       8 阅读
  5. 高温应用中理想的油封材料选择

    2024-06-10 23:02:02       8 阅读
  6. Android基础-HIDL详述

    2024-06-10 23:02:02       9 阅读
  7. .net后端程序发布到nignx上,通过nginx访问

    2024-06-10 23:02:02       9 阅读
  8. 7、Spring之Bean生命周期~初始化

    2024-06-10 23:02:02       8 阅读
  9. Spring 冷知识:利用 @Profile 实现 AOP 的预先配置

    2024-06-10 23:02:02       11 阅读
  10. 京东一面测开(KPI)

    2024-06-10 23:02:02       10 阅读
  11. 构建高效爬虫系统:设计思路与案例分析

    2024-06-10 23:02:02       10 阅读
  12. 速览三版HTTP的改进策略

    2024-06-10 23:02:02       7 阅读
  13. 困难 Leetcode 312. 戳气球 区间dp/记忆化搜索

    2024-06-10 23:02:02       8 阅读
  14. 力扣22. 括号生成

    2024-06-10 23:02:02       10 阅读
  15. Leetcode 3177. Find the Maximum Length of a Good Subsequence II

    2024-06-10 23:02:02       15 阅读
  16. 力扣1234.替换子串得到平衡字符串

    2024-06-10 23:02:02       7 阅读