前言:
早期Unix系统中一般都会有预装vi这款文本编辑器,而vim则是vi的增强版。
vim是一款Linux操作系统的经典文本编辑器,掌握基本的使用方法可以极大的提升命令行工作效率。
安装
Debian:
apt update && apt install vimCentOS:
yum install vimFedora:
dnf install vimArch Linux:
pacman -S vim
配置
增加行号
vim --version查看vim的配置信息,其中包含vimrc的路径
通常user vimrc file后面的路径就是vim的配置文件,一般为$HOME/.vimrc
vim $HOME/.vimrc打开配置文件
写入
set number然后保存并退出
增加相对行号
vim $HOME/.vimrc打开vim配置文件
写入
set relativenumber然后保存并退出
使用
Vim的模式
Vim 主要有 3 种常用模式:
正常模式(Normal mode)
打开文件后默认进入的模式
在此模式下可以进行 移动光标、删除、复制、粘贴 等操作
插入模式(Insert mode)
在正常模式下按
i、a、o等键进入用于输入和编辑文本
命令行模式(Command-line mode)
在正常模式下输入
:、/或?进入可以执行保存、退出、搜索、替换等命令
补充:还有一个常用的 可视模式(Visual mode),通过 v 进入,可以选择文本块进行操作(删除、复制、缩进等)
新建/打开
vim <文件路径>如果文件存在 → 打开文件
如果文件不存在 → 新建文件
保存与退出
在 命令行模式(输入 :)下:
:q→ 退出(如果未修改文件):q!→ 强制退出(不保存修改):w→ 保存(不退出):wq或:x→ 保存并退出ZZ(大写,正常模式下输入) → 保存并退出
导航与编辑
光标移动
h→ 左移l→ 右移j→ 下移k→ 上移<数字><方向>→ 移动多步,例如5j向下 5 行gg→ 跳转到文件第一行G→ 跳转到文件最后一行:<行号>→ 跳转到指定行
插入文本
i→ 在光标前插入a→ 在光标后插入I→ 在行首插入A→ 在行尾插入o→ 在当前行下方新建一行并进入插入模式O→ 在当前行上方新建一行并进入插入模式
删除与复制
dd→ 删除整行yy→ 复制整行p→ 粘贴到光标之后<次数>p→ 粘贴多次dw→ 删除一个单词cw→ 删除一个单词并进入插入模式(change word)yw→ 复制一个单词ci{→ 删除{}内的内容并进入插入模式(同理可用于[]、())
撤销与重复
u→ 撤销上一次修改Ctrl + r→ 恢复撤销的修改(redo).→ 重复上一次操作
单词间跳转
w→ 跳到下一个单词开头e→ 跳到下一个单词结尾b→ 跳到上一个单词开头
搜索
/word:从光标位置向下搜索word?word:从光标位置向上搜索wordn:重复上一次搜索(同方向)N:重复上一次搜索(反方向)
替换*
基本用法
:[范围]s/旧内容/新内容/[参数]常见范围
:%s/.../.../→ 全文替换:1,10s/.../.../→ 替换第 1 行到第 10 行:.,$s/.../.../→ 从当前行到最后一行替换:s/.../.../→ 只替换当前行第一个匹配:s/.../.../g→ 替换当前行所有匹配
参数说明
g→ 替换一行中的所有匹配(global)c→ 交互确认(confirm),会逐个询问:y替换n跳过a替换所有q退出
i→ 忽略大小写(ignore case)
示例
:%s/foo/bar/g→ 把全文中所有foo替换为bar:5,20s/test/TEST/gc→ 在第 5 到 20 行,把test替换成TEST,并逐一确认:%s/\<cat\>/dog/g→ 把全文中单词cat替换为dog(加\<\>表示整个单词匹配)