06_vim编辑器

为什么要使用vi和vim

vi和vim是最常用的文本编辑工具,就像Windows上的笔记本一样。在linux中修改任何文件,不管是nginx配置还是系统配置文件,都会用到vi和vim命令。

很多软件的编辑接口实际上调用的是vi。

vim是vi的高级版,操作更流畅还可以显示颜色等。linux默认可以使用vi,vim可能需要额外安装。

使用vi命令

使用vi + 文件名,就可以编辑一个文件了。vi命令有以下三个模式

  • 一般命令模式 command mode

    打开文件时默认进入的模式,可以进行光标移动、复制粘贴等

  • 编辑模式 insert mode

    摁下i,就进入编辑模式,可以进行修改和编辑;摁下esc,退出编辑模式回到一般命令模式

  • 命令行模式 command-line mode

    摁下: 就进入命令行模式,一般是执行保存

举例说明

# vi + 文件名进行编辑;如果文件不存在,就创建一个新文件
[root@node4 ~]# vi hello.txt

默认进入的是一般命令模式:

在这里插入图片描述

点击i进行输入,左下角有INSERT说明可以输入

在这里插入图片描述

摁下esc,然后输入:wq回车,进行保存

在这里插入图片描述

常用快捷键

在vi和vim命令中可用的快捷键非常多,以下只挑选几个常用的进行说明

  • 一般命令模式

    移动光标

    G移动到文件最后一行
    -向上移动到非空格的上一行
    数字+空格输入20然后空格,会移动到该行第20个字符处
    0移动到该行最左边
    end移动到这一行的最后
    gg移动到这个文件的第一行

    查找和替换:

    /keyword向后查找一个字符串
    ?keyword向上查找一个字符串
    :n1,ni2s/word1/word2/g在第n1行和n2行之间查找word1替换为word2

    复制黏贴:

    dd删除(剪切)光标所在的那一整行
    数字+dd删除(剪切)光标往下n行
    yy复制光标所在的一行
    数字+yy复制光标往下n行
    p和P小p是粘贴到光标所在的下一行;P则是上一行
    u恢复上一个操作
  • 编辑模式

    编辑模式没啥好说的,就是一般的编辑和修改。

  • 命令行模式

    :w保存
    :w!强制保存
    :q退出
    :wq!强制保存后退出,这是最常用的命令了
  • vim中的追加命令

    :set nu显示行号
    :set nonu取消行号显示

vim的缓存和恢复

使用vim时,会在当前目录建立一个filename.swp的文件。如果系统在此时意外关机了,那么借由这个swp文件,就可以恢复还未保存的内容。我们来模拟一下这个操作

# 编辑hello.txt文件
[root@node4 ~]# vim hello.txt 
# 按下ctrl + z ,此时vim会在后台继续执行
[1]+  已停止               vim hello.txt

接下来模拟系统中断

[root@node4 ~]# ls -al
总用量 88
-rw-r--r--   1 root root     7 48 20:10 hello.txt
-rw-r--r--   1 root root 12288 48 20:46 .hello.txt.swp
# 通过kill命令强行终止vim
[root@node4 ~]# kill -9 %1

[1]+  已停止               vim hello.txt
# 此时可以看到swp文件还是存在的
[root@node4 ~]# ls -al
总用量 88
-rw-r--r--   1 root root     7 48 20:10 hello.txt
-rw-r--r--   1 root root 12288 48 20:46 .hello.txt.swp

此时如果用vim继续编辑,就会有如下警告

E325: 注意
发现交换文件 ".hello.txt.swp"
            所有者: root    日期: Mon Apr  8 20:46:40 2024
            文件名: ~root/hello.txt
            修改过: 否
            用户名: root      主机名: node4
           进程 ID: 3619
正在打开文件 "hello.txt"
              日期: Mon Apr  8 20:10:50 2024

(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.
    如果是这样,请用 ":recover""vim -r hello.txt"
    恢复修改的内容 (请见 ":help recovery")。
    如果你已经进行了恢复,请删除交换文件 ".hello.txt.swp"
    以避免再看到此消息。

交换文件 ".hello.txt.swp" 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):

分别解释一下各个选项的意思

  1. 如果是多人在编辑同一个文件,让其他人退出,然后再操作
  2. 只读取文件内容不进行编辑的话,输入o
  3. 使用R恢复文件,然后需要手动删除swp文件,否则每次编辑都会有这个警告
  4. 如果确定不需要恢复,这个缓存时没用的,那么就按下D,删除缓存文件

vim的额外功能

如果你的系统还不能使用vim命令,可以使用如下命令进行安装

yum install vim

vim会对系统文件进行颜色显示,可以通过如下命令打开系统文件看下

vim /etc/profile

也可以试试输入:set nu显示行号

多文件编辑、多窗口

这些感觉不太常用所以略过

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值