Linux Vim 由浅入深的教程

引言

原文链接

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

安装Vim

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

检查Vim版本

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

bash 复制代码
vim --version

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

安装Vim

使用yum包管理器安装Vim:

bash 复制代码
sudo yum install vim -y

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

Vim的基本操作

启动Vim

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

bash 复制代码
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示例:

vim 复制代码
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用户不可或缺的工具。掌握这些技巧后,读者可以更高效地进行文本编辑和文件管理,提高工作效率。

相关推荐
龙鸣丿44 分钟前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘2 小时前
uniapp-是否删除
linux·前端·uni-app
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410833 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.3 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-04 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代4 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方5 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘5 小时前
NFS服务器
运维·服务器
苹果醋36 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx