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, 显示行号等操作
按键说明
一般模式
编辑模式
命令行模式
vim的保存文件, 恢复与打开时的警告信息
- 编辑文件时,vim会主动创建.filename.swp的暂存文件, 如果系统因为某些原因断线, 导致编辑的文件还没保存, 这个暂存文件可以发挥救援的功能
- 提供了6个可用按钮
- Open Read-Only: 打开只读
- Edit nayway: 以正常的方式打开, 不会载入暂存文件的内容
- Recover: 加载暂存文件的内容, 但离开vim后还需手动删除暂存文件
- Delete it: 删除暂存文件
- Quit: 离开vim
- Abort: 忽略编辑行为, 同Quit一样会送你离开
vim的功能
块选择(Visual Block)
多文件编辑
多窗口功能
vim环境设置与记录: ~/.vimrc, ~/.viminfo
- vim会将用户的行为记录在~/.viminfo文件, 如查找某个文件的字符串时, 字符串被反白, 下次再编辑该文件时, 反白依然存在
- vim的环境设置参数可以在一般模式下 :set all查看, 常用的如下
- 整体vim的设置值一般在/etc/vimrc中, 但不建议修改, 可以手动创建~/.vimrc文件, 将所希望的设置值写入
vim常用命令示意图
其他
中文编码问题
编码需要考虑:
- Linux系统默认支持的语系数据, 这与/etc/sysconfig/i18n有关
- 终端接口(bash)的语系, 与LANG变量有关
- 文件原本编码
- 打开终端机的软件, 如在GNOME下的窗口界面
最重要的是3,4只要这两点编码一致, 就能正确看到与编辑中文文件
DOS与Linux的断行字符
- DOS(Windows系统)使用的断行字符为^M&, 我们称为CR与LF两个符号
- Linux下只有LF($)一个符号
- Linux下的命令在开始执行时, 判断依据是Enter, 而Enter为LF符号; 所以如果在Win上编辑好shell script上传到Linux后, 可能发生错误无法执行, 可以使用dos2UNIX转换断行格式
语系编码转换
- 可以使用iconv来转换文件编码