介绍
所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在
默认编码:utf-8
vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
vim的这些优势主要体现在以下几个方面:
多级撤消
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。易用性
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。语法加亮
vim可以用不同的颜色来加亮你的代码。可视化操作
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。
安装
centos
yum install -y vim
或者
yum install -y vim-enhanced
3种模式
- 命令模式(Command mode):默认模式,敲
vim进入的就是命令模式。可以查找、撤销、跳到尾部等。
- 插入模式(Insert mode):在此模式下可以 编辑内容,按
ESC将回到命令模式。
- 底线命令模式(Last line mode):可以 保存文件、退出、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。
模式切换
上图摘自:https://www.runoob.com/linux/linux-vim.html
命令模式(普通模式、一般模式)
进入该模式:vim 文件名
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
以下是常用的几个命令:
i切换到 插入模式,光标在当前位置a切换到 插入模式,光标右移一位o:切换到 插入模式,光标切换到下一行
:切换到底线命令模式
- 移动光标
x删除当前光标所在处的字符。dd:删除一行
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
搜索
命令模式:/搜索内容
跳转到头、尾
gg跳转到文件头
shift+g跳转到文件尾
跳到指定行
:行号
撤销
u
反撤销
ctrl+r
底线命令模式(命令行模式、底行模式)
进入该模式:在命令模式下按下:(英文冒号)就进入了底线命令模式。
退出该模式:按ESC键
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
退出
q
q!强制退出
保存
w
保存并退出
wq
显示行号
:set nu
清空
:%d
解释:
%:表示匹配所有行d:表示删除
设置保存编码
:set fenc=gbk
或者
:set fileencoding=gbk
普通用户启动vim,root用户执行写入
应用场景
有时,使用 普通用户 编辑 /etc/profile 或 /etc/hosts 文件,当保存时,提示如下:
E505: "/etc/hosts" is read-only (add ! to override)
该文件只读,需要用 root 用户才能写入
解决
:w !sudo tee %
解释:
!:表示后面是外部命令tee命令:详见 链接%:表示当前文件名
等同于下面命令:
cat readonly-file-name | sudo tee readonly-file-name
读取 readonly-file-name 文件,并将其内容 写入到 readonly-file-name 文件中
感谢:
https://blog.csdn.net/LawssssCat/article/details/108454588
更详细命令参见
https://www.runoob.com/linux/linux-vim.html
