怎么在CentOS下装vi_CentOS安装vi编辑器及基本使用教程

答案是安装vim-enhanced包可解决CentOS中vi功能简陋问题。CentOS默认预装vim-minimal,仅提供基础编辑功能,需通过yum或dnf安装vim-enhanced以获得语法高亮、多级撤销、分屏等完整Vim功能。

怎么在centos下装vi_centos安装vi编辑器及基本使用教程

在CentOS系统下安装vi编辑器其实通常不是一个“安装”动作,因为绝大多数CentOS版本,包括其基础镜像,都会预装一个简化版的vi,通常是

vim-minimal

或者指向它的符号链接。如果你发现它功能过于基础,比如没有语法高亮,那么你真正需要的是安装功能更强大的

vim-enhanced

版本。这个过程非常直接,只需通过系统的包管理器(

yum

或

dnf

)执行一个简单的命令即可。

解决方案

如果你想在CentOS上确保拥有一个功能完整的vi(即Vim),或者你的系统确实缺失了,以下是具体的步骤:

检查当前vi版本:在终端输入

vi --version

或者

which vi

。如果

vi

命令可用,通常会显示其版本信息,或者指出它是一个指向

vim

或

nvi

的符号链接。如果提示

command not found

,那确实需要安装。

安装或升级到Vim增强版:CentOS 7及更早版本,或者那些依然使用

yum

作为主要包管理器的系统:

sudo yum install vim-enhanced

CentOS 8及更新版本,或者那些切换到

dnf

的系统:

sudo dnf install vim-enhanced

执行命令后,系统会提示你确认安装,输入

y

并回车即可。这个包会替换掉可能存在的

vim-minimal

,提供一个功能更丰富的Vim版本。

验证安装:安装完成后,再次输入

vi

或

vim

。你会发现编辑器启动时可能会显示Vim的版本信息,并且在编辑文件时,如Shell脚本或Python代码,会看到语法高亮。

CentOS系统为什么自带的vi用起来有些“简陋”?Vim和Vi究竟有什么区别?

这个问题问得很好,也是很多初学者甚至有经验的Linux用户会感到困惑的地方。我个人在刚接触Linux时,也曾被这个“简陋”的vi搞得一头雾水,总觉得是不是自己哪里没配置好。

其实,CentOS默认提供的

vi

,很多时候并不是我们常说的那个功能强大的

vim

(Vi IMproved)。它通常是一个指向

vim-minimal

或者更原始的

nvi

的符号链接。这个“简陋”版本的设计初衷是为了尽可能地小巧、快速,占用最少的系统资源,这对于服务器环境来说非常重要,尤其是在系统资源紧张或者需要进行紧急修复时。它能保证你在一个几乎“裸奔”的系统上也能进行最基本的文本编辑。

那么,

vi

和

vim

究竟有什么区别呢?简单来说,

vim

是

vi

的“升级版”或“增强版”,正如其名“Vi IMproved”。

vi

是上世纪70年代末期诞生的经典文本编辑器,它的核心理念是“模态编辑”,即有命令模式、插入模式等。这种模式切换在当时是非常高效的,但功能相对单一。

vim

在此基础上进行了巨大的扩展和改进:

语法高亮: 这是最直观的区别,让代码和配置文件更易读。多级撤销/重做:

vi

通常只能撤销最后一次操作,

vim

则可以无限次撤销。可视模式(Visual Mode): 允许你像在图形界面编辑器中那样选中一块文本进行操作。分屏编辑: 可以在一个终端窗口中同时打开并编辑多个文件。宏录制与回放: 录制一系列按键操作并重复执行,极大地提高了重复性任务的效率。插件系统:

vim

拥有庞大的插件生态,可以扩展出无数功能,从代码补全到文件管理,无所不能。正则表达式增强: 搜索和替换功能更加强大。

所以,当你觉得

vi

用起来“简陋”时,其实你是在期待

vim

的功能。一旦安装了

vim-enhanced

,你会发现它完全是另一个世界。对于日常开发和管理工作,我几乎不会选择使用

vim-minimal

,因为

vim-enhanced

带来的效率提升是巨大的,那点额外的磁盘空间和内存占用完全值得。

安装Vim后,如何快速上手进行文件编辑和保存?

Vim的模态编辑是它最核心也最让人“望而生畏”的特性。初次接触,很多人会卡在“怎么输入文字”、“怎么保存退出”这些基本操作上。别急,我们一步步来。理解了这几个模式和基本命令,你就能在Vim的世界里迈出第一步了。

Vim主要有以下几个模式:

普通模式(Normal Mode/命令模式): 这是Vim启动时的默认模式。在这个模式下,你不能直接输入文本,而是通过各种按键来执行命令,比如移动光标、删除行、复制粘贴等。插入模式(Insert Mode): 在普通模式下,按下特定的键(如

i

,

a

,

o

等)就可以进入插入模式。在这个模式下,你就可以像在普通文本编辑器里一样输入文字了。末行模式(Command-line Mode): 在普通模式下,按下冒号

:

,Vim会在屏幕底部显示一个命令行提示符,你可以在这里输入各种命令,比如保存、退出、查找、替换等。可视模式(Visual Mode): 在普通模式下,按下

v

(字符)、

v

(行)或

Ctrl+v

(块),可以进入可视模式,用于选中文本。

快速上手编辑和保存:

打开/创建文件:在终端输入

vim filename

。如果

filename

存在,则打开;如果不存在,则创建一个新文件。

进入插入模式(开始输入文字):文件打开后,你处于普通模式。

按下

i

:在当前光标位置前插入。按下

a

:在当前光标位置后插入。按下

o

:在当前行下方新建一行并插入。按下

o

:在当前行上方新建一行并插入。选择其中一个,然后你就可以自由输入文字了。

退出插入模式(回到普通模式):无论何时,只要你想停止输入文字,执行命令,就按下键盘左上角的

Esc

键。你会发现光标可能会变粗,表示回到了普通模式。

保存文件:在普通模式下,按下

:

(进入末行模式),然后输入

w

(write),回车。

:w

这样就保存了文件,但不会退出Vim。

保存并退出:在普通模式下,按下

:

,然后输入

wq

(write and quit),回车。

:wq

或者,你也可以在普通模式下直接按下

ZZ

(大写Z两次),这同样会保存并退出。

不保存退出:如果你做了修改但不想保存,想直接退出:在普通模式下,按下

:

,然后输入

q!

(quit forcefully),回车。

:q!

这个命令会强制退出,不保存任何修改。

光标移动(在普通模式下):

h

:左移

j

:下移

k

:上移

l

:右移

w

:跳到下一个单词开头

b

:跳到上一个单词开头

0

:跳到行首

$

:跳到行尾

gg

:跳到文件开头

G

:跳到文件结尾

数字G

:跳到指定行(例如

10G

跳到第10行)

Vim的哲学是“手不离键盘”,一旦你习惯了这些模式切换和命令,你会发现它的编辑效率是惊人的。刚开始可能会觉得有些反直觉,但坚持下去,你会发现它能让你沉浸在编辑中,效率远超鼠标点击。

Vim有哪些实用的高级功能或配置技巧能提升我的工作效率?

Vim的强大之处远不止基本的编辑和保存,它的可配置性和丰富的特性是提升工作效率的关键。一个精心配置的

.vimrc

文件,加上一些常用技巧,能让你的Vim变成一个高度定制化的开发环境。

1. 配置文件

.vimrc

:你的Vim个性化工作室

Vim的所有高级配置都集中在用户主目录下的

.vimrc

文件中。如果文件不存在,你可以自己创建一个。

AI图像编辑器 AI图像编辑器

使用文本提示编辑、变换和增强照片

AI图像编辑器 46 查看详情 AI图像编辑器

touch ~/.vimrcvim ~/.vimrc

一些我个人觉得非常实用的配置项:

显示行号:

set nu " 或者 set number

这几乎是我打开任何Vim的第一件事,方便定位和参考。

语法高亮:

syntax on

让代码和配置文件变得五彩斑斓,大大提升可读性。

设置缩进:

set tabstop=4    " 设置Tab键的宽度为4个空格set shiftwidth=4 " 自动缩进的宽度为4个空格set expandtab    " 将Tab键转换为空格

统一代码风格,避免Tab和空格混用造成的混乱。

自动缩进:

set autoindentset smartindent

当你敲回车时,新行会自动继承上一行的缩进,写代码时非常方便。

搜索结果高亮:

set hlsearchset incsearch

hlsearch

让所有匹配项高亮,

incsearch

则在输入搜索词时实时显示匹配。

文件类型识别与插件:

filetype plugin indent on

这行配置非常重要,它让Vim能根据文件类型加载相应的插件和缩进规则,比如Python文件有Python的缩进,C++文件有C++的。

光标行高亮:

set cursorline

高亮显示当前光标所在的行,方便阅读。

这些只是冰山一角,

.vimrc

可以非常复杂,但从这些基础开始,你就能感受到Vim的强大。

2. 实用高级功能

分屏操作:在一个Vim窗口中同时编辑多个文件,或者查看同一个文件的不同部分。

:
sp

或

:split

:水平分屏,在新分屏中打开当前文件。

:
vsp

或

:vsplit

:垂直分屏,在新分屏中打开当前文件。

Ctrl+w

后跟

h/j/k/l

:在分屏间切换光标。

Ctrl+w

后跟

方向键

:同样可以在分屏间切换。

Ctrl+w

后跟

q

:关闭当前分屏。

多文件缓冲区(Buffer)管理:你可以同时打开多个文件,但只在当前窗口显示一个。

:
e filename

:打开一个新文件到新的缓冲区。

:
ls

:列出所有打开的缓冲区。

:
b N

:切换到编号为N的缓冲区。

:
bnext

/

:bprev

:切换到下一个/上一个缓冲区。

宏(Macro)录制:录制一系列按键操作,然后重复执行,对于重复性任务非常高效。

q

后跟一个字母(例如

qa

):开始录制宏到寄存器

a

。执行你的操作序列。再次按下

q

:停止录制。

@a

:回放寄存器

a

中的宏一次。

数字@a

:回放寄存器

a

中的宏指定次数(例如

5@a

回放5次)。

查找与替换(加强版):Vim的查找替换支持强大的正则表达式。

:/pattern

:查找

pattern

。

:%s/old/new/g

:全局替换所有行中所有

old

为

new

。

:%s/old/new/gc

:全局替换,每次替换前询问确认。

:
s/old/new/g

:只替换当前行中所有

old

为

new

。

这些高级功能和配置技巧,一旦掌握,能极大地提升你在命令行下的文本编辑效率。Vim的学习曲线确实陡峭,但一旦你越过了那个初始的障碍,你会发现它带来的回报是巨大的。它不仅仅是一个编辑器,更像是一个可编程的文本处理平台,值得投入时间去探索和定制。

以上就是怎么在CentOS下装vi_CentOS安装vi编辑器及基本使用教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/349195.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
deepseek官网登录入口 deepseek官网入口网页免费版登录
上一篇 2025年11月5日 21:34:36
宇树科技发布开源世界模型-动作架构:UnifoLM-WMA-0
下一篇 2025年11月5日 21:34:47

相关推荐

  • sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置

    sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置

    安装ConvertToUTF8插件可解决Sublime Text打开GBK文件乱码问题,该插件能自动识别并转换编码,确保文件正确显示且保存时保留原编码,同时建议设置默认编码为UTF-8、备用编码为GBK,并通过项目配置或团队规范统一编码,避免后续乱码。 Sublime Text在处理GBK编码文件时…

    2026年9月28日 • 用户投稿
    100
  • linux关机命令哪个好

    linux关机命令哪个好linux关机命令哪个好linux关机命令哪个好linux关机命令哪个好

    Linux 系统中最常用的关机命令为 shutdown,它支持以下功能:立即关机:shutdown -h now延时关机:shutdown +n “信息”指定时间关机:shutdown hh:mm “信息”取消关机:shutdown -c 最常用的 L…

    2026年9月28日 • 用户投稿
    000
  • PHP中静态数组的优势与应用详解

    静态数组是PHP中一个重要的概念,理解其特性有助于编写更高效、更易于维护的代码。本文将详细介绍静态数组与普通数组的区别,以及静态数组在实际开发中的应用场景。 静态变量的作用域与生命周期 在PHP中,使用static关键字声明的变量具有特殊的性质。与普通变量不同,静态变量在函数或方法调用结束后不会被销…

    2026年9月28日
    100
  • VSCode如何集成Git版本控制 VSCode中Git操作的便捷技巧

    首先确认git已安装并配置好用户名和邮箱;2. vscode通常自动检测git,若未检测到可手动在设置中指定git.path;3. 在vscode中打开项目并使用内置终端运行git init初始化仓库;4. 通过左侧源代码管理图标暂存、提交和推送更改;5. 遇到提交乱码时将files.encodin…

    2026年9月28日
    200
  • linux怎么查看端口是否被占用

    linux怎么查看端口是否被占用linux怎么查看端口是否被占用linux怎么查看端口是否被占用linux怎么查看端口是否被占用

    Linux系统上检查端口占用情况:使用 netstat 命令:netstat -tnlp | grep 使用其他工具:lsoffuserss 如何检查 Linux 上的端口占用情况 在 Linux 系统上,您可以使用以下命令来检查特定端口是否被占用: netstat -tnlp | grep 其中:…

    2026年9月28日 • 用户投稿
    000
  • linux怎么查看内存大小

    linux怎么查看内存大小linux怎么查看内存大小linux怎么查看内存大小linux怎么查看内存大小

    可使用以下命令查看 Linux 系统中的内存大小:freetopvmstatcat /proc/meminfo 如何查看 Linux 系统中的内存大小 1. 使用 free 命令 free 命令是查看系统内存状态最常用的命令。它显示了总内存、已用内存、空闲内存、共享内存、缓冲区和缓存。 free 2…

    2026年9月28日 • 用户投稿
    100
  • sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置

    sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置

    配置Clangd实现C++智能补全,需安装LSP插件和Clangd服务器,并通过compile_commands.json告知编译信息,从而获得语义级代码补全、实时诊断与重构支持,显著提升Sublime Text的C++开发体验。 在Sublime Text里配置Clangd来搞定C++代码补全,说…

    2026年9月28日 • 用户投稿
    000
  • Win7资源管理器总是提示已停止工作的解决方法

    Win7资源管理器总是提示已停止工作的解决方法Win7资源管理器总是提示已停止工作的解决方法Win7资源管理器总是提示已停止工作的解决方法Win7资源管理器总是提示已停止工作的解决方法

    使用电脑过程中难免会遇到各种问题,近期有不少win7用户向小编反映,在操作电脑时频繁出现“windows资源管理器已停止工作”的提示。这种情况通常由误操作或某些恶意软件、病毒篡改系统设置所引起。那么应该如何有效解决这一故障呢?接下来,黑鲨小编将为大家详细介绍win7系统中资源管理器频繁崩溃的应对方法…

    2026年9月28日 • 用户投稿
    000
  • 豆包AI安装需要哪些运行时库 豆包AI系统依赖项完整清单

    豆包AI安装需要哪些运行时库 豆包AI系统依赖项完整清单豆包AI安装需要哪些运行时库 豆包AI系统依赖项完整清单豆包AI安装需要哪些运行时库 豆包AI系统依赖项完整清单豆包AI安装需要哪些运行时库 豆包AI系统依赖项完整清单

    #%#$#%@%@%$#%$#%#%#$%@_b05121b5eff2c++ee27d5b7d6a4dd8f2af运行需要python 3.8+、numpy、pandas、requests、torch/tensorflow、transformers、gradio/streamlit等核心库;操作系统…

    2026年9月28日 • 用户投稿
    100
  • 将Java或Groovy中的字符串转换为JSON对象

    将Java或Groovy中的字符串转换为JSON对象将Java或Groovy中的字符串转换为JSON对象将Java或Groovy中的字符串转换为JSON对象将Java或Groovy中的字符串转换为JSON对象

    将Java或Groovy中的字符串转换为JSON对象,需要根据实际情况进行分析。如果字符串是标准的JSON格式,可以直接使用JSON解析库进行转换。但如果字符串不是标准的JSON格式,则需要自定义解析器。 理解JSON格式 首先,我们需要明确标准的JSON格式。一个JSON对象是由键值对组成的,键和…

    2026年9月28日 • 用户投稿
    000
  • linux jar包怎么运行

    linux jar包怎么运行linux jar包怎么运行linux jar包怎么运行linux jar包怎么运行

    在 Linux 上运行 JAR 包需遵循以下步骤:安装 Java 运行时环境打开终端并导航到 JAR 包所在目录使用 java -jar jar-file-name.jar 命令运行 JAR 包处理 JAR 包的依赖项(如使用类路径、清单文件或模块系统)解决常见问题(例如 Java 找不到、权限问题…

    2026年9月28日 • 用户投稿
    000
  • sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题

    sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题

    代码提示失效多因插件未安装、语法识别错误或auto_complete被关闭。检查设置中是否启用auto_complete,安装Emmet、Anaconda等语言插件,确认文件语法正确,必要时清除缓存重建索引,可恢复补全功能。 Sublime Text 代码提示(自动补全)失效是不少用户在开发过程中遇…

    2026年9月28日 • 用户投稿
    400
  • 如何在Java中使用循环直到输入特定字符串?

    如何在Java中使用循环直到输入特定字符串?如何在Java中使用循环直到输入特定字符串?如何在Java中使用循环直到输入特定字符串?如何在Java中使用循环直到输入特定字符串?

    本文将解释如何在Java中使用while循环接收用户输入,并根据特定字符串(例如 “quit”)来终止循环。文章将解释为什么不能使用 == 运算符比较字符串,并提供使用 equals() 方法的正确示例,确保循环在用户输入特定字符串时正常退出。 在Java中,控制循环的执行直…

    2026年9月28日 • 用户投稿
    000
  • linux怎么查看日志

    linux怎么查看日志linux怎么查看日志linux怎么查看日志linux怎么查看日志

    Linux 系统中查看日志的方法包括:通过终端使用 tail 命令显示文件末尾行。使用 grep 命令在日志中搜索字符串。使用 journalctl 命令显示系统日志条目。使用图形界面系统监视器或日志分析器。查看常见日志文件,如 /var/log/syslog、/var/log/auth.log 和…

    2026年9月28日 • 用户投稿
    100
  • 如何在Jupyter中运行AI代码 Jupyter Notebook环境配置要点

    如何在Jupyter中运行AI代码 Jupyter Notebook环境配置要点如何在Jupyter中运行AI代码 Jupyter Notebook环境配置要点如何在Jupyter中运行AI代码 Jupyter Notebook环境配置要点如何在Jupyter中运行AI代码 Jupyter Notebook环境配置要点

    在jupyter notebook中运行ai代码的关键在于正确配置环境。1. 安装python 3.8+和pip,并通过命令行验证安装;2. 使用虚拟环境隔离项目依赖,激活后安装ai库如torch、tensorflow;3. 安装并启动jupyter notebook,必要时手动添加内核以确保其使用…

    2026年9月28日 • 用户投稿
    400
  • sublime怎么显示文件树形结构_Sublime Text侧边栏文件目录树显示

    sublime怎么显示文件树形结构_Sublime Text侧边栏文件目录树显示sublime怎么显示文件树形结构_Sublime Text侧边栏文件目录树显示sublime怎么显示文件树形结构_Sublime Text侧边栏文件目录树显示sublime怎么显示文件树形结构_Sublime Text侧边栏文件目录树显示

    使用快捷键 Ctrl/Cmd + K,然后 Ctrl/Cmd + B 可切换侧边栏显示;2. 通过 View → Side Bar → Show Side Bar 菜单开启;3. 添加文件夹到项目以显示目录树;4. 保存项目可实现启动时自动加载,无需插件。 Sublime Text 默认就带有侧边栏…

    2026年9月28日 • 用户投稿
    100
  • 谷歌浏览器如何给打开的标签页进行分组_谷歌浏览器标签页分组方法

    通过标签页分组功能可高效管理Chrome浏览器中大量标签,支持创建分组、添加标签页、自定义颜色名称、展开折叠及移除操作,提升浏览效率。 如果您在使用谷歌浏览器时打开了大量标签页,导致页面混乱难以管理,可以通过标签页分组功能将相关网页归类整理,提升浏览效率。以下是具体操作方法。 本文运行环境:MacB…

    2026年9月28日
    200
  • Xftp6 绿色版-特别版

    Xftp6 绿色版-特别版Xftp6 绿色版-特别版Xftp6 绿色版-特别版Xftp6 绿色版-特别版

    xftp6是一款适用于ms windows平台的sftp和ftp文件传输软件工具,旨在帮助用户在unix/linux和windows pc之间安全传输文件。软件采用了标准的windows风格向导,界面简洁,易于与其他windows应用程序无缝协作,满足初级和高级用户的传输需求,功能强大,欢迎有需要的…

    2026年9月28日 • 用户投稿
    200
  • linux怎么进入mysql

    linux怎么进入mysqllinux怎么进入mysqllinux怎么进入mysqllinux怎么进入mysql

    要进入 MySQL 命令行界面,请遵循以下步骤:打开终端窗口。输入 MySQL 命令:mysql -u 用户名 -p。输入密码。连接成功后,输入 exit 退出 MySQL 命令行界面。 如何进入 MySQL 命令行界面 要进入 MySQL 命令行界面,您可以使用以下步骤: 打开终端窗口 在 Lin…

    2026年9月28日 • 用户投稿
    100
  • sublime怎么配置python环境_Sublime Text Python开发环境搭建指南

    sublime怎么配置python环境_Sublime Text Python开发环境搭建指南sublime怎么配置python环境_Sublime Text Python开发环境搭建指南sublime怎么配置python环境_Sublime Text Python开发环境搭建指南sublime怎么配置python环境_Sublime Text Python开发环境搭建指南

    首先安装Sublime Text并配置Python路径,接着通过安装Package Control来管理插件,然后安装Anaconda、SublimeREPL等常用Python开发插件以实现代码补全、语法检查和交互式调试,最后通过设置缩进、语法高亮和快捷键提升编码效率。 要在Sublime Text…

    2026年9月28日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信