# 本章练习

TIP

本章开始,将会跟着做练习题了,因为笔者学习 linux 的主要目的就是工作中和能更加属性的在 mac 上安装开发软件环境等。

本章开始,一个差不多都是需要大量练习的知识点,且是平时经常用到的知识

  1. 第七章 中使用 nano 便利编辑 /etc/fastab 的练习,使用 vim 去编辑

    • 将新增的那一列的 defautuls 改成 default,会出现什么状态?

    • 离开前请务必要恢复成原本正确的信息,另外如果在该列最前面添加 # 批注信息,将看到有颜色的变化

  2. 尝试在你的系统中,你经常使用的账户的家的目录下,将本章介绍的 vimrc 内容进行一些常用设置,包括:

    • 搜索高亮度反白
    • 语法检验开启
    • 默认显示行号
    • 设置两行状态栏:一行状态 + 一行指令列;:set lastatus=2

# 简答题

  1. 我用 vi 开启某个文件后,要在 第 34 行向右移动 15 个字符,应该在一般指令模式中下达什么指令?

    1. 先「34G」
    2. 再「15 + 向右键」或 15l
  2. 在 vi 开启的文件中,如何去该文件的头部和尾部?

    1. 「gg」到头部,或「1G」
    2. 「G」到尾部
  3. 在 vi 开启的文件中,如何在光标所在行中,移动到行头及行尾?

    1. 「0」移动行头
    2. 「$」移动行尾
  4. vi 的一般指令模式下,按下 「r」有什么功能?

    替换光标所在的哪个字符

  5. 在 vi 的环境中,如何将目前正在编辑的文件另存为 newfilename?

    :w newfilename

  6. 在 linux 下最常用的文本编辑器为 vi,请问如何进入编辑模式

    • 在一般指令模式下输入:i、I、a、A 为在本行中输入新字符;出现 --Insert--
    • 在一般指令模式下输入:o、O 为在新的一行输入新字符
    • 在一般指令模式下输入:r、R 为替换字符。左下角出现 --Replace--
  7. 在 vi 软件中,如何由编辑模式跳回一般指令模式

    按下 「Ese」键

  8. 在 vi 环境中,若上下左右键无法使用时,在一般指令模式中如何移动光标?

    可以用 i、j、k、l 分别代替上下左右

  9. 在 vi 的一般指令模式中,如何删除一行、n 行;如何删除一个字符?

    • dd:删除一行
    • ndd:删除 n 行
    • x 或 X:删除一个字符
    • dG :删除到首
    • d1G:删除到页尾
  10. 在 vi 的一般指令模式中,如何复制一行、n 行并加以贴上?

    • yy:复制一行
    • nyy:复制 n 行
    • p 或 P:贴上
  11. 在vi 的一般指令模式中如何搜索 string 这个字符串?

    使用 /string 往后搜索,?string往前搜索

  12. 在 vi 的一般指令模式中,如何替换 word1 为 word 2,而若需要使用者确认机制,又该如何?

    • 1,$s/word1/word2/g
    • 1,$s/word1/word2/gc:尾部加 c 使用者确认
  13. 在 vi 目前的编辑文件中,在一般指令模式下,如何读取一个文件 filename 进来当前这个文件?

    :r filename

  14. 在 vi 的一般指令模式中,如何存盘、离开、存档后离开、强制存档离开?

    • :w:保存
    • :q:离开
    • :wq :保存后离开
    • :wq!:强制保存后离开
  15. 在 vi 下作了很多的编辑动作之后,却还想还原原来的文件内容,该怎么进行?

    可按下:e! 即可恢复为文件原始状态

  16. 在 vi 中,不想离开 vi,但是想指令 ls /home 这个指令,vi 有什么额外的功能可以达到这个目的?

    可以使用,:! ls /home,不过,在学过后面的章节后,会发现可以使用 ctrl + z 暂时退出 vi 让你在指令列模式中执行指令