Linux 命令行与 shell 脚本编程大全 10 使用编辑器
2019-12-21 本文已影响0人
asing1elife
介绍在 Linux 中常用的文本编辑器
更多精彩
- 更多技术博客,请移步 IT人才终生实训与职业进阶平台 - 实训在线
10.6 导览
- Unix 中最流行的 vi 编辑器,被移植到 Linux 中后被叫做 vim 编辑器
- vim 编辑器功能强大,评价更是两极分化,因为太复杂了
- nano 编辑器是从 Unix 中的 Pico 编辑器衍生而来,Pico 编辑器没有遵循 GPL 协议,但是 nano 编辑器遵循了 GPL 协议
- emacs 编辑器支持控制台和图形化双模式
- KDE 桌面版 Linux 中内置了 Kwrite 基础编辑器和 Kate 旗舰编辑器
- GNOME 桌面版 Linux 内置了 gedit 编辑器,支持通过插件扩展功能
10.1 vim 编辑器
- vim 编辑器的前身是 vi 编辑器,vi 编辑器是 Unix 最初的编辑器
- vi 编辑器的复杂性导致其成为一款两极分化非常严重的产品
- GNU 项目将 vi 编辑器移植到了 Linux 中,同时将其改名为 vi improved ,vim
10.1.1 检查 vim 软件包
- 使用
which vim
命令可以检查当前系统安装的 vim 编辑器是不是完整版,如下图- 如果
/usr/bin/vim
没有通过链接的形式指向任何目录,说明这个 vim 编辑器就是完整版
- 如果
- 但是这还不够,使用
which vi
命令会发现当前系统还有一个 vi 编辑器,如下图- 可以看到 vi 和 vim 并不是同一个编辑器
- 有些系统中会通过
alias vi="vim"
,将 vi 指向 vim ,但使用alias vi
命令后发现当前系统没有指定这个别名
- 分别使用 vi 和 vim 打开文件,如下图
- 左侧是使用 vim 打开的效果,右侧则是使用 vi 打开的效果
-
可以看到,vim 的效果显然更强大
- 在第 5 章中学习了
alias
命令,在第 6 章学习了 .bashrc 文件可用来存储用户自定义的命令别名,如下图- 可以看到,通过 vim 打开的文件还有语法高亮,酷酷的
- 添加别名后,输入
:wq
保存并退出文件,再输入source ~/.bashrc
命令编译文件,刚才定义的命令别名才能生效 - 再次使用
vi test
命令就可以得到和vim test
命令一样的效果
10.1.2 vim 基础
- vim 编辑器在内存缓冲区中处理数据
- 使用
vim test
命令时,首先会检测 test 文件是否存在- 如果文件存在,则读取文件内容到缓冲区中,用于编辑
- 如果文件不存在,则直接开启一段新的缓冲区用于编辑
- 直接使用
vim
命令时,则默认开启一段新的缓冲区用于编辑,如下图- 下图是直接使用
vim
命令后进入的编辑器界面效果,出现的是一个欢迎界面
- 下图是直接使用
- vim 编辑器有两种操作模式,输入命令后,默认进入的是 普通模式 ,如下图
- 按下 i 键,就可以进入 插入模式
- 按下 ESC 键,可以退出 插入模式 ,回到 普通模式
- 界面操作方面提供几个用于行级跳转的快捷键,只能在普通模式下使用
- Ctrl+F 或 PageDown 下一页
- Ctrl+E 或 PageUp 上一页
- G 跳转到第一行,注意必须是大写的 G ,在默认没有开启大写模式的情况下,可以使用 Shift+G 实现效果
- n G 跳转到第一行,注意必须是大写的 G ,实际操作起来确实很反人类,如果没有开启大写模式,则需要先按数字,再按 Shift+G 才能达到效果,如果开启了大写模式,则可以按数字之后再按 G
- gg 跳转到最后一行,这里就是要使用小写模式的 g 键了
- 在普通模式中输入英文冒号,可以进入 命令行模式 ,在该模式下提供几个用于保存和退出的快捷键
- :q 如果没有修改文件内容,可以直接退出,否则会提出无法退出
- :q! 不管有没有修改文件内容,都可以强制退出
- :wq 保存修改内容后并退出
- w filename 将修改内容保存到新文件中
- 下图就是修改文件内容后,尝试使用 :q 退出编辑器,编辑器会提出无法退出
10.1.3 编辑数据
- 在 普通模式 中,还提供一些用于编辑数据的快捷键,如下图
- 上图中的删除、撤销、替换都支持通过数字增加次数,例如:
- 2x 就是连续删除两个字符,2dd 就是连续删除两行
- 2u 就是连续撤销两次
- 2r c 就是连续将两个字符替换成 c
10.1.4 复制和粘贴
- vim 编辑器中的复制和粘贴操作也需要在 普通模式 中进行
10.1.4.1 复制
-
复制操作的快捷键,如下图
- 通过 v 键进入的 可视模式 ,可以演示一下,如下图
- 可以看到,编辑器左下角显示可视提示符,光标处通过方向键覆盖了部分字符,这个时候按下 y 键,就可以复制这些被覆盖的内容
- 可以看到,编辑器左下角显示可视提示符,光标处通过方向键覆盖了部分字符,这个时候按下 y 键,就可以复制这些被覆盖的内容
10.1.4.2 粘贴
- 粘贴操作则比较简单,就是在光标所在位置按下 p 键
- 如果是通过 y 、yw 、y$ 复制的非整行数据,粘贴的数据会出现在光标所在位置的下一位
- 如果是通过 yy 复制的整行数据,粘贴的数据则出现在光标所在位置的下一行
10.1.4.3 剪切
- 剪切操作则比较巧妙,是通过和删除操作配合使用的
- 其实通过 x 、dd 、dw 、d$ 删除的数据会被直接存到粘贴板中
- 执行删除操作后,在需要粘贴数据的位置按下 p 键,刚才删除的数据就会出现在此处
10.1.5 查找和替换
- 查找需要在 普通模式 下进行
- 替换则需要在 普通模式 中再通过冒号进入 命令行模式 才能进行
10.1.5.1 查找
- 要在 普通模式 下使用查找功能,需要在英文状态中按下 斜线( / ,位于键盘右侧 Shift 键的左侧 ) 按键,然后输入待查找的字符后按下回车键即可,如下图
-
按回车之后就会出现下图
- 想要跳转到第二个匹配结果,按 n 键即可,如下图
- 也可以再次输入斜线之后再回车,当然按 n 键比较简单
- 也可以再次输入斜线之后再回车,当然按 n 键比较简单
10.1.5.2 替换
- 替换功能的使用方式如下图,看上去很复杂,其实就是在最基础的
:s/old/new
的前后加上各种参数,从而实现更丰富的效果
- 演示一个最丰富的的效果
:%s/old/new/gc
,表示从整个文件中查找所有的 old 字符串,并全部替换成 new 字符串,同时替换之前会弹出确认替换的操作提示,如下图
-
按回车后会先提示是否替换,而且每次替换之前都会提示
-
最终显示替换四次,涉及两行数据
10.2 nano 编辑器
- nano 编辑器是一款比较简易的编辑器,适合新手
- nano 编辑器是从 Unix 的 Pico 编辑器衍生过来的,相对于 Pico ,nano 的优势在于遵循了 GPL 协议,可以在开源项目中使用
- 当前系统并没有内置 nano 编辑器,就不实操了,努力掌握 vim 编辑器才是王道
10.3 emacs 编辑器
- emacs 编辑器的诞生比 Unix 还要早
- emacs 编辑器目前拥有控制台界面和图形化界面
- 当前系统并没有内置 emacs 编辑器,就不实操了,努力掌握 vim 编辑器才是王道
10.4 KDE 编辑器
- 在第 1 章中有介绍,KDE 是 Linux 的一种图形化界面
- 在 KDE 中官方支持以下两种编辑器 ,如下
- KWrite ,单屏幕文本编辑程序,是 KDE 的基础编辑器
- Kate ,功能全面的多窗口文本编辑程序,是 KDE 的旗舰编辑器
- 图形化编辑器没必要实操
10.5 GNOME 编辑器
- 在第 1 章有介绍,GNOME 是 Linux 的一种图形化界面
- gedit 是 GNOME 内置的编辑器,原生功能比较基础,但支持插件扩展
- 同样没必要实操图形化编辑器