【Linux】文本编辑器Vim(Vim的操作方法、命令集,Vim插件安装配置)

news/2024/7/21 12:44:35 标签: linux, vim, 运维

目录

00.前言

01.基本模式

02.基本操作

03.命令集

正常模式

末行模式

04.插件安装


00.前言

Vim(Vi IMproved)是一款强大的文本编辑器,是Unix系统中经典的Vi编辑器的增强版本。它在功能和灵活性方面超越了传统的Vi,并成为了许多开发者和系统管理员首选的编辑器。

vim具有以下优点:

  1. 模式驱动:Vim具有不同的工作模式,包括Normal模式、Insert模式、Visual模式等。每个模式下,按键的功能和行为都不相同。这种设计使得编辑过程更高效。

  2. 高度可定制:Vim可以通过编辑配置文件(.vimrc)来定制各种行为和快捷键。用户可以根据自己的喜好和需求进行个性化设置,以满足自己的工作习惯。

  3. 强大的编辑功能:Vim提供了丰富的编辑功能,包括正则表达式搜索、替换、自动缩进、代码折叠、语法高亮等。这些功能使得在编辑大型文件或编程时更加方便和高效。

  4. 插件生态系统:Vim拥有庞大的插件生态系统,用户可以通过安装和使用插件来扩展Vim的功能。这些插件可以提供代码补全、语法检查、版本控制集成等功能。

  5. 跨平台支持:Vim不仅可以在Unix-like系统(如Linux、macOS)上运行,还可以在Windows和其他操作系统上使用。这使得用户可以在不同的平台上保持一致的编辑体验。

Vim高度可定制、功能强大且高效,这使得其广为人喜爱。

01.基本模式

Vim具有很多工作模式,这里我们主要介绍三种,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

正常/普通/命令模式

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁 的编辑模式。

末行模式

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模 式。要查看你的所有模式:打开vim,底行模式直接输入

:help vim-modes

02.基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面,进入vim之后是处于【正常模式】的,想要输入文字需要切换到【插入模式】

vim test.c

  • 【正常模式】切换到【插入模式】

输入 a / i / o

  • 【插入模式】切换到【正常模式】

按 [esc] 返回正常模式

  • 【正常模式】切换到【末行模式】

「shift + ;」, 其实就是输入「:」

  • 【末行模式】切换到【正常模式】

按 [esc] 返回正常模式

  • 保存并退出

在末行模式下输入w(保存当前文件)wq(保存并退出)q!(强制退出不保存)

03.命令集

正常模式

插入模式

  • 按下[i]键后,光标会停留在当前位置,你可以在当前光标位置之前插入文本。
  • 按下[a]键后,光标会移动到当前位置的下一个字符处,你可以从当前位置的下一个字符开始输入文本。这对于需要在当前字符后添加内容时非常有用。
  • 按下[o]键后,会另起一行插入新的一行,并将光标移动到新行的行首,以便你可以从新行的开头开始输入文本。这在需要在当前行下方添加内容时很方便。

切换命令模式

  • 按下【esc】键。

移动光标

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、 「l」,分别控制光标左、下、上、右移一格

  • 「$」:移动到光标所在行的“行尾”

  • 「^」:移动到光标所在行的“行首”

  • 「w」:光标跳到下个字的开头

  • 「e」:光标跳到下个字的字尾

  • 「b」:光标回到上个字的开头

  • 「#l」:光标移到该行的第#个位置,如:5l,56l

  • [gg]:进入到文本开始

  • [shift+g]:进入文本末端

  • 「ctrl」+「b」:屏幕往“后”移动一页

  • 「ctrl」+「f」:屏幕往“前”移动一页

  • 「ctrl」+「u」:屏幕往“后”移动半页

  • 「ctrl」+「d」:屏幕往“前”移动半页

删除文字

  • 「x 」每按一次,删除光标所在位置的一个字符。x 键用来删除光标所在位置的字符。

  • 「#x」 例如,6x 表示删除光标所在位置及其后面的 6 个字符。#x 表示删除光标后指定数量的字符。

  • 「X」大写的 X,每按一次,删除光标所在位置的前一个字符。X 命令用来删除光标前面的字符。

  • 「#X」 例如,20X 表示删除光标所在位置的前面 20 个字符。#X 表示删除光标前指定数量的字符。

  • 「dd」 删除光标所在行。dd 命令将删除光标所在行的整行内容。

  • 「#dd」 从光标所在行开始删除 # 行,不修改原文本,进行一行一行的整理。#dd 命令用于删除从当前行开始数的指定行数。

复制

  • 「yw」 将光标所在位置到字尾的字符复制到缓冲区中。yw 命令用于复制从光标当前位置到单词末尾的字符。

  • 「 #yw」 例如,3yw 表示复制光标位置开始的 # 个字到缓冲区中。#yw 表示复制指定数量的字到缓冲区。

  • 「yy」 复制光标所在行到缓冲区中。yy 命令用于复制光标所在行的整行文本到缓冲区。

  • 「#yy」 例如,6yy 表示从光标所在的该行往下数 6 行文字,并将其复制到缓冲区中。#yy 命令用于复制指定数量的行到缓冲区。

  • 「p」 将缓冲区内的字符粘贴到光标所在位置。p 命令用于将之前复制到缓冲区的内容粘贴到光标位置。

替换

  • 「r」替换光标所在位置的字符。按下 r 键后,输入你要替换成的字符,当前光标所在的字符将被替换。

  • 「R」 进入替换模式,替换光标所在处的字符。在替换模式(R 模式)下,你可以连续替换多个字符,直到按下 ESC 键为止。

撤销

  • 「u」:如果误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次恢复。

  • 「ctrl + r」: 撤销的恢复

更改

  • 「cw」:更改光标所在处的字到字尾处

  • 「c#w」:例如,「c3w」表示更改3个字

跳转

  • 「ctrl」+「g」列出光标所在行的行号。

  • 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

末行模式

在使用末行模式之前,请记住先按「ESC」键确定已经处于正常模式,再按「:」冒号即可进入末行模式。

列出行号

  • 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

跳转

  • 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, 再回车,就会跳到文章的第15行。

查找

  • 「/关键字」: 先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按 「n」会往后寻找到你要的关键字为止。

  • 「?关键字」:先按「?」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直 按「n」会往前寻找到你要的关键字为止。 

保存

  • 「w」: 在冒号输入字母「w」就可以将文件保存起来

离开

  • 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim

  • 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

04.插件安装

要配置好用的vim,原生的配置可能功能不全,可以选择安装插件来完善配置。

注意:我们不建议在root用户下进行配置,出于以下考虑:

  1. 安全性:在 root 用户下配置 Vim 可能会增加系统面临的安全风险。如果配置文件中存在漏洞或者恶意代码,攻击者可能利用这些漏洞获取 root 权限,并对系统进行破坏或者植入恶意软件。

  2. 意外操作:在 root 用户下配置 Vim 时,可能会误操作导致系统文件被修改或删除,进而影响系统的正常运行。在非 root 用户下配置 Vim 则可以减少这种风险,因为非 root 用户的权限受到限制,无法直接修改系统关键文件。

  3. 权限控制:使用普通用户配置 Vim 可以更好地控制权限。普通用户可以通过 sudo 或 su 命令获取 root 权限来执行需要特权的操作,这样既能完成任务又能保持系统安全。

普通用户下配置的vim只在当前用户生效,安装vim插件需要遵循以下步骤:

  1. 选择插件管理器:首先,你需要选择一个适合的插件管理器来帮助你管理 Vim 插件。如果是使用云服务器的就不需要考虑这个,因为厂商已经为你修改好了插件管理器。

  2. 配置插件管理器:在用户的根目录下新建一个~/.vimrc文件,首先打开用户根目录,然后创建文件,随后打开.vimrc配置文件

cd /home/user

touch .vimrc

vim .vimrc

然后就可以通过插件管理器提供的命令或配置,可以轻松地安装所需的 Vim 插件。这里推荐一个大佬配置好的vim环插件:GitHub - ma6174/vim: vim配置文件和插件(不再维护)


http://www.niftyadmin.cn/n/5416956.html

相关文章

如何系统地去学python

学习Python是一个非常有用的技能,无论您是想成为一名软件工程师、数据科学家还是想自动化日常任务,Python都是一个非常强大且流行的编程语言。但是,对于初学者来说,学习Python可能会感到有些困难和混乱。因此,本文将分…

el-select下拉框无法显示 elementplus踩坑日常

在使用el-select的时候参考了官方文档&#xff0c;但下拉框无法显示 解决办法1&#xff1a;检查是否没有按需引入eloption只引入了elselect 解决办法2&#xff1a;在el-select里面加入:popper-append-to-body"false" <el-select:popper-append-to-body"fa…

Android Studio轮播图使用失败怎么办【已解决】

Android Studio轮播图使用失败怎么办 1.在gethub上面搜索轮播图 2.选择要使用的轮播图 3.查看该轮播图的配置方法 4.复制该依赖放入build.gradle中 5.重新构建 6.使用banner 发现没有报错了 7.参考网址 https://github.com/youth5201314/banner

Dubbo 和 Zookeeper 的关系

Dubbo 和 Zookeeper 的关系 Zookeeper的作用 zookeeper用来注册服务和进行负载均衡&#xff0c;哪一个服务由哪一个机器来提供必需让调用者知道&#xff0c;简 单来说就是ip地址和服务名称的对应关系。当然也可以通过硬编码的方式把这种对应关系在调用方 业务代码中实现&#…

22 easy 100. 相同的树

方法1&#xff1a; 递归&#xff0c;深度优先先遍历 //给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 // // 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 // // // // 示例 1&#xff1a…

在ubuntu16上用dkpg安装vscode 出现错误

Could not parse file "/usr/share/applications/Qt5.12.9.desktop": Key file contains line ktop Entry] which is not a key-value pair, group, or comment dpkg: 依赖关系问题使得 code 的配置工作不能继续&#xff1a;code 依赖于 libc6 (> 2.28)&#xff1…

python 蓝桥杯之并查集

文章目录 总述合并过程查找过程算法实战实战1 总述 并查集&#xff08;Disjoint-set Union&#xff0c;简称并查集&#xff09;是一种用来管理元素分组情况的数据结构。它主要用于解决集合的合并与查询问题&#xff0c;通常涉及到以下两种操作&#xff1a; 合并&#xff08;Uni…

探索数据可视化:Matplotlib 基础指南

图形绘制 import numpy as np import pandas as pd import matplotlib.pyplot as pltx np.linspace(0,2 * np.pi,100)# 说明&#xff1a;正弦波。x&#xff1a;NumPy数组 # 所有的数据&#xff0c;进行正弦计算 y np.sin(x)plt.plot(x,y)# 指定x轴范围 plt.xlim(-1,10) # 指…