背景

  1. 最近在学习RHCE,考试内容包括 ansible-playbook 的编写。ansible-playbook 使用的是YAML(.yml 后缀),对空格缩进的要求比较高。包括但不限于
  1. 不能使用制表符,只能使用空格进行缩进
  2. 属性、属性值的写法 --> 属性: 属性值
  3. 同级的对象须有相同的缩进
  4. 子对象必须比父对象有更多的缩进
  1. 培训老师建议使用vim,但是我始终无法适应vim诡异的快捷键和繁杂的命令(尤其是自己上班的环境主要用 vscode 比较多,两者快捷键、操作相差较大)。
  2. 因此考虑使用 RHEL 系统自带的Text Editor进行编辑

调教内容

参考 vim 的调教内容

网上参考的vim调教方法:https://www.ctyun.cn/zhishi/p-169281

centos 文件可写_vim

RHEL8 中的 text editor

RHEL 中预装的 text editor 类似 windows 电脑中的 记事本:虽然功能简单,但至少是图形化界面,能用鼠标操作(当然实际上 RHEL 的 text editor 很强大,接下来的配置中就能感受出来)
实际上此 text editor 是 gedit文本编辑器,软件介绍详见:https://help.gnome.org/users/gedit/unstable/index.html.zh_CN

对 text editor (gedit)进行调教

  1. 打开 text editor
  2. 进入软件配置界面:
    右上角菜单按键 --> Preferences
  3. 类似于vim的配置,修改 text editor 的配置
  1. 显示(View)
  1. 显示行号:便于报错后根据行号进行排错
    类似vim中的 set nu
  2. 第 X 个字符出现对齐线:便于写列表项(尤其是 tasks)对齐
    类似于vim的 set cc=X 指令
    这个配置在调整时可以动态刷新的
  3. 显示状态栏:状态栏可显示当前光标所在的行、列、当前使用的语法高亮配置、缩进配置等信息

    对比一下vim的状态栏
  4. 高亮显示当前行:提醒自己当前编辑的是哪一行
  5. 高亮显示匹配的括号:在使用变量时(playbook 语法 "{{ 变量名 }}")便于查找
  1. 编辑器(Editor)

常规情况下的使用

指定当前使用 YAML 高亮方案

状态栏中指定使用 YAML 高亮方案即可

centos 文件可写_编辑器_02

复制粘贴

类似常规软件,复制Ctrl + C,粘贴Ctrl + V

查找替换

类似常规软件,查找Ctrl + F,替换Ctrl + H回车查找后,会将所有满足条件的内容高亮显示

相隔较远的列表项对齐

配置显示(View)中的对齐设置

centos 文件可写_编辑器_03

跳转至第 X 行

点击菜单 --> 点击Go to Line

centos 文件可写_vim_04

缩进的使用

在配置好缩进后(设置的 Editor 中的选项)。按Tab键,向右缩进一次,按Shift + Tab向左取消缩进一次
这样配好以后,基本不用使用空格进行手工对齐了
取消缩进的按键操作相当于vim中配置 sw=2

键盘按键的基本操作

以下按键是绝大多数有界面的文本编辑器的通用按键(如记事本、word、notepad++、vscode)

  1. 跳转至行首:按HOME
  2. 跳转至行尾:按END
  3. 从当前位置选中至行首 / 行尾:shift+home / shift+END
  4. 从当前位置跳至一个单词的开头 / 末尾:ctrl+方向左 / ctrl+方向右不同单词之间默认以空格、制表符分隔,如果是中文符号,无法分隔
  5. 从当前位置选中到一个单词开头 / 末尾:ctrl+shift+方向左 / ctrl+shift+方向右可理解为选中(按下shift键)+ 跳至单词开头 / 末尾
  6. 选中一个单词:先跳至此单词开头(结尾),再选中至结尾(开头)
    也可用鼠标双击选中整个单词

终端编辑 YAML 的工作流

总体思路:先将 vim 中的内容复制出来,在 text editor 中编辑好后,再将 vim 中原来内容全部删除,将编好的内容复制进去,并保存退出

  1. 终端使用vim打开要编辑的文件
  2. 在命令模式下,按gg(连续按两次小写的g)返回文件最开头(首字符)
  3. 鼠标选中所有的内容,右键“复制”,将 vim 中的内容从终端复制到本机上
  4. 在本机的 text editor 上正常的粘贴(可使用快捷键ctrl+c)、编辑
  5. 编辑好后,全选、复制 text editor 中的内容
  6. 在终端内的vim删除全部内容:在命令模式下输入9999dd(删除从光标所在行开始往下9999行,由于光标在第2步中已经第一个字符,因此相当于删除从第一行开始删除9999行,而一般文件少有9999行的,因此相当于把原来的内容全删了)
  7. 在vim中插入 text editor 中编好的内容:在命令模式下,按insert键进入编辑模式,鼠标右击,然后点击“粘贴”
  8. 在vim中保存退出:按esc键,退出编辑模式,进入命令模式。在命令模式下,输入:wq保存退出