当前位置: 首页 > news >正文

简单介绍vim

文章目录

  • 前言
  • 一、Vim的特点
  • 二、安装Vim
  • 三、设置Vim
    • 配置文件的位置:
    • 编辑配置文件:
    • 添加配置选项:
    • 保存并退出编辑器:
    • 快速配置
    • 验证设置:
  • 总结


前言

Vim是一款强大的文本编辑器,被广泛用于各种编程和文本编辑任务。它起源于Vi,一个古老的Unix文本编辑器,但Vim(Vi Improved)提供了更多的功能和改进。Vim具有模式化的编辑界面,主要包括普通模式、插入模式、命令模式等,每种模式都有各自的操作方式和快捷键,这种设计使得Vim在编辑文本时非常高效。


一、Vim的特点

  1. 高效:Vim提供了丰富的快捷键和命令,让用户可以快速地在文件中进行移动、编辑、查找和替换等操作,极大地提高了文本编辑的效率。
  2. 可扩展性:Vim支持各种插件和脚本,用户可以根据自己的需求定制Vim的功能和界面。这些插件和脚本可以覆盖从语法高亮、代码补全到版本控制等各个方面。
  3. 多平台支持:Vim可以在多种操作系统上运行,包括Linux、macOS和Windows等,这使得Vim成为了一个跨平台的文本编辑器。
  4. 命令行操作:Vim可以在命令行界面中运行,不需要图形用户界面(GUI),这使得Vim在服务器等没有图形界面的环境中也能使用。
  5. 可配置性:Vim的配置文件(如.vimrc)允许用户根据自己的习惯定制Vim的编辑环境,包括设置快捷键、修改颜色主题、定义自定义命令等。

在CentOS 7中安装和设置Vim,可以按照以下步骤进行:

二、安装Vim

  1. 检测是否已经安装Vim:
rpm -qa | grep vim

如果系统已经安装了Vim,那么会显示出类似 vim-common, vim-enhanced,vim-minimal, vim-filesystem 这样的包名。
在这里插入图片描述

  1. 安装Vim:
yum -y install vim*
  • vim* 是一个通配符,它会匹配所有以“vim”开头的软件包。

三、设置Vim

配置文件的位置:

Vim的配置文件通常位于
/etc/vimrc 是用户级别的配置文件,只对当前用户有效。
~/.vimrc 是全局配置文件,对所有用户都有效;

编辑配置文件:

使用文本编辑器(如Vim本身)打开配置文件。如果是全局配置文件,可以使用 sudo vim /etc/vimrc 命令;如果是用户级别的配置文件,则直接使用 vim ~/.vimrc 命令。

添加配置选项:

在配置文件中,可以添加各种配置选项来定制Vim的行为。以下是一些常用的配置选项及其功能:

set nu         "设置显示行号 
set showmode   "设置在命令行界面最下面显示当前模式等
set ruler      "在右下角显示光标所在的行数等信息
set autoindent "设置每次单击Enter键后,光标移动到下一行时与上一行的起始字符对齐
syntax on      "即设置语法检测,当编辑C或者Shell脚本时,关键字会用特殊颜色显示
set number     "语法高亮"

保存并退出编辑器:

在Vim中,按 Esc 键退出插入模式,然后输入 :wq 并按 Enter 键保存并退出编辑器。

快速配置

tee -a  /etc/vimrc << 'EOF'
set nu
set showmode
set ruler
set autoindent
syntax on
set number
EOF

验证设置:

打开一个新的Vim窗口或重新打开一个已存在的Vim文件,检查你的设置是否生效。
通过以上步骤,你应该能够在CentOS 7中成功安装并设置Vim。请注意,Vim的配置非常灵活,你可以根据自己的需求和习惯进行更深入的定制。
在这里插入图片描述



总结

Vim的学习曲线相对较陡峭,因为它的操作方式和快捷键与大多数常见的文本编辑器不同。但是,一旦掌握了Vim的基本操作,你会发现Vim的编辑效率远远超过其他编辑器。许多程序员和文本编辑爱好者都将Vim视为他们的首选工具。

相关文章:

  • PostgreSQL查看表的大小
  • 性能工具之 JMeter 常用组件介绍(八)
  • Python3发送邮件如何添加附件?怎么配置?
  • Python抓取天气信息
  • SQL AND OR 运算符的使用与区别
  • 全域外卖系统源码部署怎么做,外卖市场新机遇!
  • 护眼灯哪些牌子好?一文刨析护眼灯怎么选择!
  • 通用大模型VS垂直大模型,你更青睐哪一方?
  • 神经网络模型---ResNet
  • 一个基于MySQL的数据库课程设计的基本框架
  • 通过防抖动代码解决ResizeObserver loop completed with undelivered notifications.
  • Java基础学习-方法
  • ByteTrack跟踪理解
  • 存储、管理和展示多媒体文件
  • MySQL 连接的使用方法与技巧
  • 【mysql】环境安装、服务启动、密码设置
  • Centos6.8 使用rpm安装mysql5.7
  • classpath对获取配置文件的影响
  • ComponentOne 2017 V2版本正式发布
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JS字符串转数字方法总结
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Theano - 导数
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 阿里云购买磁盘后挂载
  • 分享一份非常强势的Android面试题
  • 观察者模式实现非直接耦合
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 解析带emoji和链接的聊天系统消息
  • 设计模式 开闭原则
  • nb
  • Nginx实现动静分离
  • Python 之网络式编程
  • 选择阿里云数据库HBase版十大理由
  • ​批处理文件中的errorlevel用法
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $.ajax()
  • (02)vite环境变量配置
  • (2)leetcode 234.回文链表 141.环形链表
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (zt)最盛行的警世狂言(爆笑)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (七)理解angular中的module和injector,即依赖注入
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)ABI是什么
  • (转载)Linux网络编程入门
  • .cn根服务器被攻击之后
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core使用NPOI导出复杂,美观的Excel详解