Linux 命令行与 shell 脚本编程大全 10 使用编辑器

介绍在 Linux 中常用的文本编辑器

更多精彩

10.6 导览

  1. Unix 中最流行的 vi 编辑器,被移植到 Linux 中后被叫做 vim 编辑器
  2. vim 编辑器功能强大,评价更是两极分化,因为太复杂了
  3. nano 编辑器是从 Unix 中的 Pico 编辑器衍生而来,Pico 编辑器没有遵循 GPL 协议,但是 nano 编辑器遵循了 GPL 协议
  4. emacs 编辑器支持控制台和图形化双模式
  5. KDE 桌面版 Linux 中内置了 Kwrite 基础编辑器和 Kate 旗舰编辑器
  6. GNOME 桌面版 Linux 内置了 gedit 编辑器,支持通过插件扩展功能

10.1 vim 编辑器

  1. vim 编辑器的前身是 vi 编辑器,vi 编辑器是 Unix 最初的编辑器
  2. vi 编辑器的复杂性导致其成为一款两极分化非常严重的产品
  3. GNU 项目将 vi 编辑器移植到了 Linux 中,同时将其改名为 vi improved ,vim

10.1.1 检查 vim 软件包

  1. 使用 which vim 命令可以检查当前系统安装的 vim 编辑器是不是完整版,如下图
    • 如果 /usr/bin/vim 没有通过链接的形式指向任何目录,说明这个 vim 编辑器就是完整版
  2. 但是这还不够,使用 which vi 命令会发现当前系统还有一个 vi 编辑器,如下图
    • 可以看到 vi 和 vim 并不是同一个编辑器
    • 有些系统中会通过 alias vi="vim" ,将 vi 指向 vim ,但使用 alias vi 命令后发现当前系统没有指定这个别名
  3. 分别使用 vi 和 vim 打开文件,如下图
    • 左侧是使用 vim 打开的效果,右侧则是使用 vi 打开的效果
    • 可以看到,vim 的效果显然更强大
  4. 在第 5 章中学习了 alias 命令,在第 6 章学习了 .bashrc 文件可用来存储用户自定义的命令别名,如下图
    • 可以看到,通过 vim 打开的文件还有语法高亮,酷酷的
    • 添加别名后,输入 :wq 保存并退出文件,再输入 source ~/.bashrc 命令编译文件,刚才定义的命令别名才能生效
    • 再次使用 vi test 命令就可以得到和 vim test 命令一样的效果

10.1.2 vim 基础

  1. vim 编辑器在内存缓冲区中处理数据
  2. 使用 vim test 命令时,首先会检测 test 文件是否存在
    • 如果文件存在,则读取文件内容到缓冲区中,用于编辑
    • 如果文件不存在,则直接开启一段新的缓冲区用于编辑
  3. 直接使用 vim 命令时,则默认开启一段新的缓冲区用于编辑,如下图
    • 下图是直接使用 vim 命令后进入的编辑器界面效果,出现的是一个欢迎界面
  4. vim 编辑器有两种操作模式,输入命令后,默认进入的是 普通模式 ,如下图
    • 按下 i 键,就可以进入 插入模式
    • 按下 ESC 键,可以退出 插入模式 ,回到 普通模式
  5. 界面操作方面提供几个用于行级跳转的快捷键,只能在普通模式下使用
    • Ctrl+FPageDown 下一页
    • Ctrl+EPageUp 上一页
    • G 跳转到第一行,注意必须是大写的 G ,在默认没有开启大写模式的情况下,可以使用 Shift+G 实现效果
    • n G 跳转到第一行,注意必须是大写的 G ,实际操作起来确实很反人类,如果没有开启大写模式,则需要先按数字,再按 Shift+G 才能达到效果,如果开启了大写模式,则可以按数字之后再按 G
    • gg 跳转到最后一行,这里就是要使用小写模式的 g 键了
  6. 在普通模式中输入英文冒号,可以进入 命令行模式 ,在该模式下提供几个用于保存和退出的快捷键
    • :q 如果没有修改文件内容,可以直接退出,否则会提出无法退出
    • :q! 不管有没有修改文件内容,都可以强制退出
    • :wq 保存修改内容后并退出
    • w filename 将修改内容保存到新文件中
  7. 下图就是修改文件内容后,尝试使用 :q 退出编辑器,编辑器会提出无法退出

10.1.3 编辑数据

  1. 普通模式 中,还提供一些用于编辑数据的快捷键,如下图
  2. 上图中的删除、撤销、替换都支持通过数字增加次数,例如:
    • 2x 就是连续删除两个字符,2dd 就是连续删除两行
    • 2u 就是连续撤销两次
    • 2r c 就是连续将两个字符替换成 c

10.1.4 复制和粘贴

  1. vim 编辑器中的复制和粘贴操作也需要在 普通模式 中进行

10.1.4.1 复制

  1. 复制操作的快捷键,如下图
  2. 通过 v 键进入的 可视模式 ,可以演示一下,如下图
    • 可以看到,编辑器左下角显示可视提示符,光标处通过方向键覆盖了部分字符,这个时候按下 y 键,就可以复制这些被覆盖的内容

10.1.4.2 粘贴

  1. 粘贴操作则比较简单,就是在光标所在位置按下 p
    • 如果是通过 yywy$ 复制的非整行数据,粘贴的数据会出现在光标所在位置的下一位
    • 如果是通过 yy 复制的整行数据,粘贴的数据则出现在光标所在位置的下一行

10.1.4.3 剪切

  1. 剪切操作则比较巧妙,是通过和删除操作配合使用的
  2. 其实通过 xdddwd$ 删除的数据会被直接存到粘贴板中
  3. 执行删除操作后,在需要粘贴数据的位置按下 p 键,刚才删除的数据就会出现在此处

10.1.5 查找和替换

  1. 查找需要在 普通模式 下进行
  2. 替换则需要在 普通模式 中再通过冒号进入 命令行模式 才能进行

10.1.5.1 查找

  1. 要在 普通模式 下使用查找功能,需要在英文状态中按下 斜线( / ,位于键盘右侧 Shift 键的左侧 ) 按键,然后输入待查找的字符后按下回车键即可,如下图
  2. 按回车之后就会出现下图
  3. 想要跳转到第二个匹配结果,按 n 键即可,如下图
    • 也可以再次输入斜线之后再回车,当然按 n 键比较简单

10.1.5.2 替换

  1. 替换功能的使用方式如下图,看上去很复杂,其实就是在最基础的 :s/old/new 的前后加上各种参数,从而实现更丰富的效果
  2. 演示一个最丰富的的效果 :%s/old/new/gc ,表示从整个文件中查找所有的 old 字符串,并全部替换成 new 字符串,同时替换之前会弹出确认替换的操作提示,如下图
  3. 按回车后会先提示是否替换,而且每次替换之前都会提示
  4. 最终显示替换四次,涉及两行数据

10.2 nano 编辑器

  1. nano 编辑器是一款比较简易的编辑器,适合新手
  2. nano 编辑器是从 Unix 的 Pico 编辑器衍生过来的,相对于 Pico ,nano 的优势在于遵循了 GPL 协议,可以在开源项目中使用
  3. 当前系统并没有内置 nano 编辑器,就不实操了,努力掌握 vim 编辑器才是王道

10.3 emacs 编辑器

  1. emacs 编辑器的诞生比 Unix 还要早
  2. emacs 编辑器目前拥有控制台界面和图形化界面
  3. 当前系统并没有内置 emacs 编辑器,就不实操了,努力掌握 vim 编辑器才是王道

10.4 KDE 编辑器

  1. 在第 1 章中有介绍,KDE 是 Linux 的一种图形化界面
  2. 在 KDE 中官方支持以下两种编辑器 ,如下
    • KWrite ,单屏幕文本编辑程序,是 KDE 的基础编辑器
    • Kate ,功能全面的多窗口文本编辑程序,是 KDE 的旗舰编辑器
  3. 图形化编辑器没必要实操

10.5 GNOME 编辑器

  1. 在第 1 章有介绍,GNOME 是 Linux 的一种图形化界面
  2. gedit 是 GNOME 内置的编辑器,原生功能比较基础,但支持插件扩展
  3. 同样没必要实操图形化编辑器
发布了418 篇原创文章 · 获赞 47 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/asing1elife/article/details/103647177