Linux vi/vim编辑器介绍

一、vi/vim编辑器介绍

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

vi是visual interface的简称, 是Linux中最经典的文本编辑器(Windows中的记事本)

vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域, 就能完成所有编辑操作

vi/vim的特点

  • 只能是编辑文本内容, 不能对字体段落进行排版
  • 不支持鼠标操作
  • 没有菜单
  • 只有命令

vim 是从vi的升级版,具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
由于在程序员中被广泛使用, 被称为编辑器之神


二、vim的使用

1、打开文件

vim [options] 文件名

vi demo.txt          		# 以vi编辑器打开文件
vim demo.txt         		# 以vim编辑器打开文件
vim +5 demo.txt  	  		# 直接打开文件,并定位到第5行

2、三种模式

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入(插入)模式(Insert mode)和底线命令模式(Last line mode)

  • 命令模式:复制、粘贴、移动光标、撤销和恢复
  • 输入模式:编辑文件内容
  • 底线命令模式:保存文件、退出文件、显示行号、搜索关键词

在这里插入图片描述


2.1、命令模式

当我们通过vim命令打开文件时,默认处于命令模式

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
比如我们此时按下i,并不会输入一个字符,i被当作了一个命令

命令功能
i当前光标前面插入内容
a当前光标后面插入内容
x删除当前光标所在处的字符
o当前行后面插入一空行
O当前行前面插入一空行
dd剪切或删除光标所在行
ndd从光标位置向下连续剪切或删除 n 行
yy复制光标所在行
nyy从光标位置向下连续复制n行
p粘贴
u撤销上一次命令,相当于Windows中的Ctrl + Z
gg回到文件顶部
G回到文件末尾
切换到底线命令模式,以在最底一行输入命令

2.2、输入模式

在输入模式中,可以使用以下按键:

  • 字符按键以及shift键组合,输入字符
  • 方向键,在文本中移动光标
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • HOME/END,移动光标到行首 / 行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • Ctrl + n,自动补全
  • ESC,退出输入模式,切换到命令模式

2.3、底行命令模式

在Linux操作系统中,文件必须先保存后退出

命令功能
:w保存文件
:w 文件另存为
:q退出(如果没有保存,不允许退出)
:q!强行退出, 不保存退出
:wq保存并退出
:x保存并退出
:set nu开启行号显示
:set nonu取消行号显示
:s/旧关键词/新关键词当行文本替换
:%s/旧关键词/新关键词(全局)文本替换
/关键词搜索某一关键词(高亮显示)
:noh取消高亮

:wq和:x两者的区别?

如果文件内容有改变,两者的效果是一样的。

如果文件内容没有改变:

  • :x 不会改变文件的最后修改时间
  • :wq 会更新文件的最后修改时间

Vim常见错误E325处理流程

在这里插入图片描述
如果在打开某个文件时,出现以上提示,那代表该文件之前没有保存就强制退出了,所以触发了vim的备份机制产生了一个xxx.swp交换文件


有两种解决方案:

一、无需保留之前的修改

第一步:按 d 键,系统会自动删除此备份

第二步:然后会进入vim编辑器,此时在底行命令模式下输入 :q 即可正常退出

后续再进入此问题不会再有此提示

二、需要保留之前的修改

第一步:按 r 键,恢复文件内容

第二步:针对找回的内容进行:wq保存并退出

第三步:输入ls -a 命令,查看所有文件(包括隐藏文件),复制出问题的交换文件

第四步:输入rm -f 隐藏的交换文件(比如出问题的文件是demo.txt,此时的交换文件就是 .demo.txt.swp)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值