Linux Vim 由浅入深的教程

引言

原文链接

Vim是Linux系统中非常强大的文本编辑器,因其强大的功能和灵活的操作而受到广泛使用。尤其是在服务器管理和开发环境中,Vim几乎是必备工具。本教程将以CentOS 7为例,详细讲解Vim的安装、基本操作以及一些高级技巧,帮助读者从零开始掌握Vim的使用。

安装Vim

在linux系统当中,可能会默认安装Vim的简化版本(vim-minimal),为了获得完整功能,我们需要安装完整版本的Vim。

检查Vim版本

首先,检查系统中Vim的版本:

vim --version

如果输出中包含“vim-minimal”,说明是简化版,我们需要安装完整版本。

安装Vim

使用yum包管理器安装Vim:

sudo yum install vim -y

安装完成后,再次检查版本,确认安装成功。

Vim的基本操作

启动Vim

在终端中输入vim,回车即可启动Vim。你也可以直接打开一个文件:

vim filename

基本模式

Vim主要有三种模式:命令模式、插入模式和底线命令模式。

  • 命令模式:启动Vim时默认进入的模式,可以执行各种命令。
  • 插入模式:按i进入,可以进行文本编辑。
  • 底线命令模式:按:进入,可以执行文件操作命令。

基本命令

  • 编辑模式:在命令模式下按i进入插入模式,可以开始输入文本。
  • 保存并退出:在命令模式下,输入:wq:x保存并退出,输入:q!不保存退出。
  • 退出插入模式:按Esc返回命令模式。

Vim的高级操作

多行编辑

多行编辑是Vim的一大优势,可以极大提高编辑效率。

  • 复制多行:在命令模式下,输入3yy复制当前行及其下两行。
  • 粘贴多行:在命令模式下,移动光标到目标位置,输入p粘贴。
  • 删除多行:在命令模式下,输入3dd删除当前行及其下两行。
  • 编辑多行:在命令模式下,输入Ctrl-v,再按上下左右的方向键,按del键可以实现多行多内容删除,按Shift-i(大写I),就可以进入多行编辑的默认,例如实现多行注释以及取消注释的实际案例。

查找与替换

Vim提供了强大的查找与替换功能。

  • 查找:在命令模式下,输入/keyword查找关键字,按n查找下一个,N查找上一个。
  • 替换:在命令模式下,输入:%s/old/new/g将全文中的old替换为new。如果只替换当前行中的内容,输入:s/old/new/g

其他实用技巧

  • 撤销和重做:按u撤销上一步操作,按Ctrl-r重做。
  • 行首和行尾:按0移动到行首,按$移动到行尾。
  • 跳转到指定行:输入行号G跳转到指定行,如10G跳转到第10行。

配置Vim

Vim的配置文件是.vimrc,可以在用户主目录下创建和编辑这个文件,以定制自己的Vim环境。

示例配置

以下是一个简单的.vimrc示例:

syntax on            # 开启语法高亮
set number           # 显示行号
set tabstop=4        # 设置tab键为4个空格
set shiftwidth=4     # 设置自动缩进为4个空格
set expandtab        # 将tab转换为空格
set autoindent       # 自动缩进
set clipboard=unnamedplus # 启用系统剪贴板

将这些内容添加到~/.vimrc文件中并保存,即可启用这些配置。

结论

通过本教程,我们了解了在CentOS 7中安装和使用Vim的基本和高级操作。从文本编辑到配置文件定制,Vim的强大功能让其成为Linux用户不可或缺的工具。掌握这些技巧后,读者可以更高效地进行文本编辑和文件管理,提高工作效率。

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

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

相关文章

【git】git中的rebase命令解析

在 Git 中, rebase 是一种强大的命令,用于将一个分支的更改重新应用到另一个分支的顶部。它将一个分支的历史记录重新整合到另一个分支上,使得历史记录看起来更干净和线性。这通常用于将一个功能分支的更改合并到主分支(如 mast…

ArcGIS Pro SDK (九)几何 5 多边形

ArcGIS Pro SDK (九)几何 5 多边形 文章目录 ArcGIS Pro SDK (九)几何 5 多边形1 构造多边形 - 从映射点的枚举2 构造多边形 - 从包络3 获取多边形的点4 获取多边形的各个部分5 枚举多边形的各个部分6 获取多边形的线段7 构建圆环…

Linux应急响应

1.排查账号 进行linux应急响应,首先你得优先查看是否多出来了管理员 (1)查询特权用户特权用户(uid 为0) awk -F: $30{print $1} /etc/passwd(2)查询进行远程链接的账号信息 awk /\$1|\$6/{print $1} /etc/shadow …

DB-GPT:LLM应用的集大成者

整体架构 架构解读 可以看到,DB-GPT把架构抽象为7层,自下而上分别为: 运行环境:支持本地/云端&单机/分布式等部署方式。顺便一提,RAY是蚂蚁深度参与的一个开源项目,所以对RAY功能的支持应该非常完善。…

Vue自定义指令与Vue插槽学习

文章目录 自定义指令1.指令介绍2.自定义指令3.自定义指令语法4.指令中的配置项 自定义指令-指令的值1.使用效果2.语法 插槽-默认插槽1.作用2.用处4.插槽的基本语法 插槽-具名插槽1.作用2.具名插槽语法3.v-slot的简写 插槽总结1.插槽分类2.作用3.场景4.使用步骤 自定义指令 1.指…

实现Nginx的反向代理和负载均衡

一、反向代理和负载均衡简介 1.1、反向代理 反向代理(reverse proxy)指:以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。此时代理服务器对外就表现为一个反向代理服务器。 反向代…

【Android Compose】ListView效果

【Android Compose】ListView效果 1、Column、Row 和 Box2、LazyColumn和LazyRow3、Compose 中的状态4、ListView效果5、android-compose-codelabs Jetpack Compose 使用入门 Jetpack Compose 教程 Jetpack Compose 1、Column、Row 和 Box Compose 中的三个基本标准布局元素是 …

算法day05 master公式估算递归时间复杂度 归并排序 小和问题 堆排序

2.认识O(NlogN)的排序_哔哩哔哩_bilibili master公式 有这样一个数组:【0,4,2,3,3,1,2】;假设实现了这样一个sort()排序方法, 将数组二分成左右两等分,使用so…

ubuntu如何安装Redis

文章目录 Ubuntu 版本安装配置密码 Ubuntu 版本 22.04 安装 在 Ubuntu 中安装 Redis 可以按照以下步骤进行: 更新软件包列表 sudo apt update安装 Redis sudo apt install redis-server安装完成后,Redis 服务会自动启动。您可以使用以下命令检查 R…

linux、windows、macos,命令终端清屏

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS的命令终端中,清屏的命令或方法各不相同。以下是针对这三种系统的清屏方法: Linux clear命令:这是最常用的清空终端屏幕的命令之一。在终端中输入clear命令后,屏幕上的所有内容…

【计算机网络】TCP/IP——流量控制与拥塞控制

学习日期:2024.7.22 内容摘要:TCP的流量控制与拥塞控制 流量控制 一般来说,我们总是希望数据传输的快一些,但是如果数据传输的太快,接收方可能就来不及接收,这就会导致数据的丢失,流量控制正是…

Vue中渲染函数

why? 在绝大多数情况下,Vue 推荐使用模板语法来创建应用。然而在某些使用场景下,我们真的需要用到 JavaScript 完全的编程能力。这时渲染函数就派上用场了。 例如:下方要在多个模型上方设置对话框,如果使用Vue模板语法相对较困难…

小技巧:如何在已知PDF密码情况下去掉PDF的密码保护

第一步,用Edge打开你的pdf,输入密码进去 第二步,点击打印 第三步,选择导出PDF,选择彩印 第四步,选择导出位置,导出成功后打开发现没有密码限制了!

什么是长效住宅IP?

长效住宅IP的定义 长效住宅IP,简而言之,是指长期稳定、非动态更换的住宅网络IP地址。这类IP地址通常由互联网服务提供商(ISP)分配给居民家庭用户,用于上网、网络通信等日常网络活动。与传统的动态IP相比,长…

【Flutter 面试题】 使用成熟状态管理库的弊端有哪些?

【Flutter 面试题】 使用成熟状态管理库的弊端有哪些? 文章目录 写在前面口述回答补充说明写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。 👏🏻 正在学 Flutter 的同学,你好! 😊 …

数据结构day5

一、思维导图 二、课后练习 1、使用循环链表完成约瑟夫环问题 2、使用栈,完成进制转换(输入:一个整数,进制数,输出:该数的对应的进制数) //头文件 #ifndef DEC_TO_BIN_H #define DEC_TO_BIN_H…

【WAF剖析】10种XSS某狗waf绕过姿势,以及思路分析

原文:【WAF 剖析】10 种 XSS 绕过姿势,以及思路分析 xss基础教程参考:https://mp.weixin.qq.com/s/RJcOZuscU07BEPgK89LSrQ sql注入waf绕过文章参考: https://mp.weixin.qq.com/s/Dhtc-8I2lBp95cqSwr0YQw 复现 网站安全狗最新…

Electron 渲染进程直接调用主进程的API库@electron/remote引用讲解

背景 remote是个老库,早期Electron版本中有个remote对象,这个对象可以横跨所有进程,随意通信,后来官方认为不安全,被干掉了,之后有人利用Electron的IPC通信,底层通过Promise的await能力&#x…

pytorch lightning报错all tensors to be on the same device

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! 修改指定为gpu trainer pl.Trainer(max_epochstrain_params.iterations, loggertb_logger,acceleratorgpu, devices1)

Air780EP- AT开发-阿里云应用指南

简介 使用AT方式连接阿里云分为一机一密和一型一密两种方式,其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式 关联文档和使用工具: AT固件获取在线加/解密工具阿里云平台 准备工作 Air780EP_全IO开发板一套,包括天线SIM卡&#xff0…