初识vim文本编辑器

1.进入vim编辑器

在Linux中使用vi或者vim命令进入vi或vim文本编辑器
Cent OS 7中默认没有安装vim文本编辑器,需自行安装。安装方法见 Linux常用命令yum部分

[root@aspen ~]# vi ~/aspen/Aspen.txt 
Hello World
Welcome to Linux

2.vim编辑器的三种模式

  • 命令模式:设有大量快捷键,以提高编辑操作效率;
vim中的快捷键与系统快捷键不同,不是同一个概念
  • 编辑模式:向目标文本中输入内容;
  • 底行模式:进行保存、搜索、退出等操作;

三种模式的转换方式见下图

3.vim快捷键

命令模式

  • : / ? 由命令模式进入底行模式
  • i o O a A 由命令模式进入编辑模式
o 在当前光标所在处下一行进入编辑模式
O 在当前光标所在处上一行进入编辑模式
a 在当前光标所在处行首进入编辑模式
A 在当前光标所在处行尾进入编辑模式
  • gg 快速移动至文件首行
    数字gg 快速移动到数字指定行
  • G 快速移动至文件尾行
  • ZZ 保存并退出
  • yy 复制光标所在行
  • dd 剪切或删除光标所在行
  • p 粘贴剪贴板
    数字p 按数字指定次数粘贴内容
  • u 撤销
  • ctrl+r 恢复操作
  • C 删除光标所在处至行尾的内容并进入编辑模式
  • D 删除光标所在处至行尾的内容
  • shift+v 进入可视行模式
选择编辑行区域 上下键
y 复制可视行区域内容
d 删除可视行区域内容
  • ctrl+v 进入可视块模式
选择可编辑区域:方向键
d 删除可视块区域内容
I 可视块模式进入编辑模式
r 替换可视块区域内容

编辑模式

  • Esc键 退回至命令模式

底行模式

  • :w 保存文件不退出
  • :q 不保存,退出文件(无法退出已修改的文件)
  • :wq 保存文件并退出
  • :wq! 保存文件并强制退出
  • :q! 强制退出文件(不保存文件)
  • :set nu 显示行号
  • set nonu 取消显示行号
  • :set ai 自动缩进
  • :set noai 取消自动缩进
  • :set ic 忽略大小写(一般在搜索时使用)
  • :set noic 取消忽略大小写
  • :set list 显示制表符(空行、tab键等)
  • :set nolist 取消显示制表符(空行、tab键等)
  • \关键字 查找关键字内容(n-显示下一个查询结果;N-显示上一个搜索结果)
  • Esc 退回至命令行模式

4.vim故障

故障1
故障原因:vim编辑文件时,突然与系统断开;
故障现象:系统提示该文件存在缓存文件

E325: ATTENTION
Found a swap file by the name "./aspen/.Aspen.txt.swp"
          owned by: root   dated: Thu Apr 11 20:00:01 2019
         file name: ~root/aspen/Aspen.txt
          modified: YES
         user name: root   host name: aspen
        process ID: 7641
While opening file "./aspen/Aspen.txt"
             dated: Thu Apr 11 19:17:50 2019

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r ./aspen/Aspen.txt"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "./aspen/.Aspen.txt.swp"
    to avoid this message.

Swap file "./aspen/.Aspen.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

解决方案:按回车进入文件后,直接退出文件;删除缓存文件后,重新用vi编辑器打开文件

[root@aspen ~]# ls -a ./aspen/
.  ..  Aspen.txt  .Aspen.txt.swp
[root@aspen ~]# rm -f ./aspen/.Aspen.txt.swp
[root@aspen ~]# vim ./aspen/Aspen.txt 
Hello World
Welcome to Linux
I
am
studying
Linux
可以使用vim -r 将缓存文件的内容恢复到文件中并继续编辑文件;编辑完成后,需手动删除缓存文件!
实际工作中不建议恢复缓存文件内容

未完待续...

发表评论

您的电子邮箱地址不会被公开。