第八次作业(使用编辑器) 课堂笔记今天我们主要学习了 Linux 下几种常用的文本编辑器其中 vim 和 nano 是重点。一、vim 编辑器vim 的全称是 Vi Improved它是 Unix 系统最初那个 vi 编辑器的增强版本。vim 是一个全屏的、基于控制台的文本编辑器它不像图形界面编辑器那样有菜单和鼠标点击所有操作都靠键盘命令来完成。正因为如此初学者会觉得有些难但只要掌握了三种模式之间的切换和常用命令编辑效率会非常高。启动 vim 的方法很简单在终端输入 vim 文件名。如果文件不存在vim 会新建一个空白缓冲区如果文件已经存在它会将文件全部内容读入内存中的缓冲区等待我们编辑。在 Ubuntu 系统中我们可以用 which vim 或 ls -l /usr/bin/vim 来查看 vim 是否安装如果没有安装可以用 sudo apt-get install vim 来安装。1. 三种操作模式vim 最核心的概念就是三种操作模式这也是我们必须要记住的。第一种是普通模式这是我们刚打开文件时默认进入的模式。在这个模式下键盘上的每个按键都被解释为一条命令而不是输入文字。比如按 j 是向下移动光标按 d 是删除等等。普通模式是 vim 的“指挥中心”我们大部分时间都在这个模式下下达编辑指令。第二种是插入模式也就是真正的文本输入模式。在插入模式下我们敲击键盘的每一个字符都会直接写入到缓冲区中就像记事本一样。要从普通模式进入插入模式最常用的方法是按 i 键表示 insert当然也可以按 a在当前光标后追加、A行尾追加、o新建下一行并进入插入等但老师说了一般按 i 就够了。退出插入模式回到普通模式只需要按一下 ESC 键。第三种是命令行模式也叫 Ex 模式。在普通模式下按下冒号 :光标就会跳到屏幕底部的消息行同时出现一个冒号等待我们输入额外的控制命令。比如保存文件、退出编辑器、执行替换等操作都需要在命令行模式下完成。注意键盘一定要在半角状态否则冒号可能输入不进去。2. 普通模式下的光标移动在普通模式下我们可以用方向键移动光标但 vim 更推荐使用字母键因为这样手不用离开主键盘区效率更高。四个基本移动键是h 左移一个字符j 下移一行k 上移一行l 右移一个字符。记住它们的位置关系h 在左边l 在右边j 像下箭头k 像上箭头。如果文件很大一行一行移动太慢我们可以用翻屏命令CtrlF 或 PageDown 向下翻一屏CtrlB 或 PageUp 向上翻一屏。另外gg 可以直接跳到文件的第一行G 跳到文件的最后一行数字 G 可以跳到指定的行号比如 25G 就跳到第 25 行。这些命令在长文件中非常实用。3. 普通模式下的编辑命令在普通模式下我们可以执行很多编辑操作而不需要进入插入模式。常用的有x 删除当前光标所在位置的一个字符dd 删除当前光标所在的整行dw 删除从光标位置开始的一个单词d$ 删除从光标位置到行尾的所有内容J 删除当前行末尾的换行符把下一行合并到当前行来u 是撤销刚才的操作类似于 Windows 下的 CtrlZ可以多次撤销。这些命令前面还可以加上数字表示重复执行多少次。比如 5dd 会从当前行开始删除 5 行3x 会删除 3 个字符。数字修饰符大大提高了批量操作的速度。4. 复制与粘贴的操作vim 的复制和粘贴稍微有点特别。当我们执行删除命令如 dd、dw时被删除的内容其实并没有消失而是被保存到了一个寄存器中我们可以随时用 p 命令把它粘贴出来。比如用 dd 删除一行然后把光标移到目标位置按 p刚才删除的那一行就会出现在当前行的下一行。同样dw 删除的单词也可以用 p 粘贴回来。复制文本的命令是 y代表 yank拉取。它的用法和删除类似yy 复制一整行yw 复制一个单词y$ 复制到行尾。复制之后同样移动光标到目标位置按 p 粘贴。老师还介绍了一种更直观的复制方式——可视模式。在普通模式下按 v 键就会进入可视模式这时移动光标被经过的文本会高亮显示。我们高亮选中想要复制的区域后按 y 复制然后移动光标到目标位置按 p 粘贴。可视模式特别适合复制不规则区域的文本。5. 查找和替换功能查找功能在普通模式下按 / 键然后输入要查找的字符串回车。vim 会从当前光标位置向后搜索如果找到光标就跳到第一个匹配位置如果当前光标之后没有它会绕到文件开头继续找如果整个文件都找不到会提示错误信息。找到之后我们可以按 n 键跳到下一个匹配位置继续查找同一个词。替换功能则需要进入命令行模式输入 :s/old/new/这会把当前光标所在行的第一个“old”替换为“new”。如果我们想替换当前行的所有匹配可以在末尾加上 g即 :s/old/new/g。如果想替换指定行号范围之间的所有匹配比如第 5 行到第 10 行就用 :5,10s/old/new/g。而 :%s/old/new/g 会替换整个文件中的所有匹配项。如果再加上 c 选项即 :%s/old/new/gc则每次替换前都会询问我们是否确认这样比较安全防止误替换。6. 命令行模式下的保存与退出在命令行模式下我们最常用的命令就是保存和退出。:w 表示保存当前缓冲区内容到文件:q 表示退出但前提是文件没有被修改过否则会提示:q! 表示强制退出放弃所有修改不保存:wq 则是先保存再退出最常用:wq! 是强制保存并退出有时文件权限不够时可以用。另外:w 新文件名 可以把当前内容另存为一个新文件而不影响原文件。二、插入模式的补充说明插入模式本身没有太多命令主要就是输入文字。老师提到除了按 i 进入插入还可以用 I 跳到行首插入a 在光标后插入A 在行尾插入o 在下一行新开一行插入O 在上一行插入。这些可以根据习惯选用但最常用的还是 i 和 o。三、nano 编辑器相比 vimnano 要简单得多。启动命令是 nano 文件名。nano 的好处是界面底部会一直显示常用的控制命令比如 ^X 表示退出^O 表示保存^W 表示查找等等。这里的 ^ 代表 Ctrl 键所以 ^X 就是按 CtrlX。nano 没有模式切换的概念打开就能直接输入文字对于初学者非常友好。老师还提到了几个常用命令CtrlC 显示光标位置CtrlG 打开帮助窗口CtrlK 剪切当前行CtrlU 粘贴CtrlR 读入另一个文件CtrlT 拼写检查CtrlV 和 CtrlY 分别下翻和上翻一页。总的来说nano 适合快速编辑小文件不需要记太多命令。四、其他图形化编辑器除了控制台下的 vim 和 nanoLinux 还有一些图形化编辑器。emacs 原本也是控制台编辑器但现在已经发展出强大的图形界面功能非常丰富。KDE 桌面环境下有 KWrite单窗口简单编辑和 Kate多窗口、功能更全面。GNOME 桌面也有自带的文本编辑器。这些编辑器的操作方式与 Windows 下的记事本类似有菜单、鼠标选择和复制粘贴适合不习惯命令行操作的同学。但老师强调在服务器环境或没有图形界面的情况下vim 和 nano 是必备技能所以我们必须熟练掌握。小结今天这节课vim 是重中之重三种模式普通、插入、命令行的切换是基础普通模式下的移动、删除、复制粘贴以及命令行模式下的查找替换和保存退出都是必须掌握的。nano 则简单易用可以作为备选。课后需要多加练习尤其要习惯在普通模式下按命令操作而不是像图形编辑器那样一直停留在输入状态。只有多练才能真正提高编辑效率。作业