vim

介绍

所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在

默认编码:utf-8

vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

vim的这些优势主要体现在以下几个方面:

  1. 多级撤消
    我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。

  2. 易用性
    vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。

  3. 语法加亮
    vim可以用不同的颜色来加亮你的代码。

  4. 可视化操作
    就是说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


原文出处:/show_1EF5nuGTpUAc.html