vi与vim

  • Linux中绝大部分的配置文件都是以ASCII的纯文本形式存在
  • ASCII(American Standard Code for Information Interchange): 美国信息交换标准代码是基于拉丁字母的一套电脑编码系统, 主要用于显示现代英语和其他西欧语言
  • 纯文本文件是我们通过文字编码系统将计算机记录的0与1转成我们认识的文字文件
  • vi是文字处理器, 很多软件的编辑接口都会主动调用vi, 如crontab, visudo等
  • vim是程序开发工具, 可以主动以字体颜色辨别语法的正确性, 支持正则表达式的查找架构, 多文件编辑, 快复制等

vi的使用

vi分为3种模式:

  • 一般模式(默认): 可以使用上下左右按键来移动光标, 可以删除字符或整行, 也可以复制, 粘贴文件数据, 但无法编辑文件内容
  • 编辑模式: 按”i, I, o, O, a, A, r, R”等任何一个字母后进入编辑模式, 按esc退出
  • 命令行模式: 输入”:, /, ?”任何一个按键, 会将光标移至最下面一行, 进入命令行模式, 此模式可以进行查找数据, 读取, 保存, 大量替换字符, 离开vi, 显示行号等操作

image.png

按键说明

一般模式

image.png

编辑模式

image.png

命令行模式

image.png

vim的保存文件, 恢复与打开时的警告信息

  • 编辑文件时,vim会主动创建.filename.swp的暂存文件, 如果系统因为某些原因断线, 导致编辑的文件还没保存, 这个暂存文件可以发挥救援的功能

image.png

  • 提供了6个可用按钮
    • Open Read-Only: 打开只读
    • Edit nayway: 以正常的方式打开, 不会载入暂存文件的内容
    • Recover: 加载暂存文件的内容, 但离开vim后还需手动删除暂存文件
    • Delete it: 删除暂存文件
    • Quit: 离开vim
    • Abort: 忽略编辑行为, 同Quit一样会送你离开

vim的功能

块选择(Visual Block)

image.png

多文件编辑

image.png

多窗口功能

image.png

vim环境设置与记录: ~/.vimrc, ~/.viminfo

  • vim会将用户的行为记录在~/.viminfo文件, 如查找某个文件的字符串时, 字符串被反白, 下次再编辑该文件时, 反白依然存在
  • vim的环境设置参数可以在一般模式下 :set all查看, 常用的如下

image.png

  • 整体vim的设置值一般在/etc/vimrc中, 但不建议修改, 可以手动创建~/.vimrc文件, 将所希望的设置值写入

image.png

vim常用命令示意图

image.png


其他

中文编码问题

编码需要考虑:

  1. Linux系统默认支持的语系数据, 这与/etc/sysconfig/i18n有关
  2. 终端接口(bash)的语系, 与LANG变量有关
  3. 文件原本编码
  4. 打开终端机的软件, 如在GNOME下的窗口界面

最重要的是3,4只要这两点编码一致, 就能正确看到与编辑中文文件

DOS与Linux的断行字符

  • DOS(Windows系统)使用的断行字符为^M&, 我们称为CR与LF两个符号
  • Linux下只有LF($)一个符号
  • Linux下的命令在开始执行时, 判断依据是Enter, 而Enter为LF符号; 所以如果在Win上编辑好shell script上传到Linux后, 可能发生错误无法执行, 可以使用dos2UNIX转换断行格式

image.png

语系编码转换

  • 可以使用iconv来转换文件编码

image.png


重点回顾

image.png