在《Linux04-Linux文件权限与目录》Linux04-Linux文件权限与目录里,我们学过,Linux的7种文件类型如下:
| 标识 | 类型 | 英文 | 典型位置 | 解释 |
|---|---|---|---|---|
- | 普通文件 | regular file | /etc/passwd | 普通文件,后缀是什么不重要 |
d | 目录 | directory | /home | 一个特殊的文件,存储文件名 → inode 映射表 |
l | 软链接 | symbolic link | /bin → /usr/bin | 类似快捷方式 |
c | 字符设备 | char device | /dev/tty | 以字符流方式读写 |
b | 块设备 | block device | /dev/sda | 以块为单位读写 |
p | 管道 | pipe (FIFO) | 进程通信 | 进程间通信 |
s | 套接字 | socket | /var/run | 本机进程通信 |
其中“普通文件”中又包含纯字符文件,也叫纯文本文件,文件内容全部由可读字符组成,可以直接用文本编辑器阅读。
纯文本文件(Plain Text File) 是指文件中只保存字符数据,不包含任何格式信息、样式信息或二进制控制数据的文件。任何支持文本编码(如 ASCII、UTF-8、GBK)的编辑器都可以直接打开和阅读。
简单来说:
纯文本文件 = 字符 + 编码
富文本文件 = 字符 + 编码 + 格式信息(字体、颜色、图片等)
| 特点 | 说明 |
|---|---|
| 只有字符 | 保存的是字母、数字、汉字、符号等字符 |
| 无格式 | 没有字体、字号、颜色、粗体等信息 |
| 可直接查看 | cat、less、vim、notepad 都能打开 |
| 文件体积小 | 没有额外格式数据 |
| 易于解析 | 程序最喜欢读取纯文本 |
| 跨平台 | Linux、Windows、macOS 都能识别 |
shell脚本是纯文本,Linux并不知道它是脚本,直到执行时,Shell才会解释这些文本。
程序源代码也是纯文本。
| 文件 | 是否纯文本 |
|---|---|
| .txt | ✔ |
| .conf | ✔ |
| .cfg | ✔ |
| .ini | ✔ |
| .properties | ✔ |
| .yaml | ✔ |
| .yml | ✔ |
| .json | ✔ |
| .xml | ✔ |
| .csv | ✔ |
| .log | ✔ |
| .sh | ✔ |
| .py | ✔ |
| .java | ✔ |
| .c | ✔ |
| .cpp | ✔ |
| README | ✔ |
哪些不是纯文本?
| 文件 | 类型 |
|---|---|
| jpg | 图片(二进制) |
| png | 图片(二进制) |
| gif | 图片(二进制) |
| 二进制(内部包含文本和格式) | |
| doc/docx | 二进制或 ZIP 容器格式 |
| xls/xlsx | 二进制或 ZIP 容器格式 |
| pptx | 二进制或 ZIP 容器格式 |
| zip | 压缩文件 |
| tar.gz | 压缩文件 |
| rpm | 二进制包 |
| deb | 二进制包 |
| elf 程序 | 机器码 |
使用file命令
输出:
ASCII text或者:
UTF-8 Unicode text说明是纯文本。
[root@localhost data]# cat test.txtword2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2[root@localhost data]# file test.txttest.txt: ASCII text[root@localhost data]# file betterdocs.zipbetterdocs.zip: Zip archive data, at least v1.0 to extract[root@localhost data]# file /bin/ls/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0a2f3573580b1143e3efe56186d85849ca713ce7, for GNU/Linux 3.2.0, stripped[root@localhost data]# file /lib64/ld-linux-x86-64.so.2/lib64/ld-linux-x86-64.so.2: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), static-pie linked, BuildID[sha1]=a1d8ecdadb2e3b8353436d00c23178a1dfd19830, with debug_info, not stripped[root@localhost data]# cat test1.txt中国人[root@localhost data]# file test1.txttest1.txt: UTF-8 Unicode text
字符编码(Character Encoding) 是一种规定字符与二进制数据(0 和 1)之间对应关系的规则。
计算机本身只能存储和处理二进制数据(0 和 1),不能直接理解字符(如 A、中、@)。因此,需要字符编码把字符转换成计算机可以存储的字节序列,也能把字节序列再转换回字符。
简单来说:
字符 → 编码规则 → 二进制数据(存储)二进制数据 → 编码规则 → 字符(显示)
例如,你输入一个字符:
A计算机不会直接保存字符 A,而是保存它对应的数字。
以 ASCII 编码为例:
| 字符 | 十进制 | 十六进制 | 二进制 |
|---|---|---|---|
| A | 65 | 0x41 | 01000001 |
| B | 66 | 0x42 | 01000010 |
| a | 97 | 0x61 | 01100001 |
| 0 | 48 | 0x30 | 00110000 |
所以,文件中真正保存的是:
01000001而不是字符 A 本身。
假设输入:
Hello保存文件时(编码):
Hello ↓H → 72e → 101l → 108l → 108o → 111 ↓48 65 6C 6C 6F
打开文件时(解码):
48 65 6C 6C 6F ↓H e l l o
整个过程如下:
字符 │ │ 编码(Encoding) ▼字节(文件、网络) │ │ 解码(Decoding) ▼字符
如果编码和解码使用的是同一种规则,就能正确显示。
如果编码与解码使用的规则不一样,就会出现乱码。
ASCII 是最早、最简单的字符编码。
特点:
使用 1 个字节(8 位)
实际只用了前 7 位,共 128 个字符
只能表示英文、数字和常见符号
例如:
| 字符 | ASCII |
|---|---|
| A | 65 |
| Z | 90 |
| a | 97 |
| 0 | 48 |
| 空格 | 32 |
| 换行 | 10 |
ASCII 无法表示汉字。
ASCII字符编码表,全量表:
| 十进制 | 十六进制 | 字符 |
|---|---|---|
| 0 | 0 | NUL (空字符) |
| 1 | 1 | SOH (标题开始) |
| 2 | 2 | STX (正文开始) |
| 3 | 3 | ETX (正文结束) |
| 4 | 4 | EOT (传输结束) |
| 5 | 5 | ENQ (询问) |
| 6 | 6 | ACK (确认) |
| 7 | 7 | BEL (响铃) |
| 8 | 8 | BS (退格) |
| 9 | 9 | HT (水平制表) |
| 10 | 0A | LF (换行) |
| 11 | 0B | VT (垂直制表) |
| 12 | 0C | FF (换页) |
| 13 | 0D | CR (回车) |
| 14 | 0E | SO (移出) |
| 15 | 0F | SI (移入) |
| 16 | 10 | DLE (数据链路转义) |
| 17 | 11 | DC1 (设备控制1) |
| 18 | 12 | DC2 (设备控制2) |
| 19 | 13 | DC3 (设备控制3) |
| 20 | 14 | DC4 (设备控制4) |
| 21 | 15 | NAK (否定确认) |
| 22 | 16 | SYN (同步空闲) |
| 23 | 17 | ETB (传输块结束) |
| 24 | 18 | CAN (取消) |
| 25 | 19 | EM (介质结束) |
| 26 | 1A | SUB (替换) |
| 27 | 1B | ESC (转义) |
| 28 | 1C | FS (文件分隔符) |
| 29 | 1D | GS (组分隔符) |
| 30 | 1E | RS (记录分隔符) |
| 31 | 1F | US (单元分隔符) |
| 32 | 20 | (空格) |
| 33 | 21 | ! |
| 34 | 22 | " |
| 35 | 23 | # |
| 36 | 24 | $ |
| 37 | 25 | % |
| 38 | 26 | & |
| 39 | 27 | ' |
| 40 | 28 | ( |
| 41 | 29 | ) |
| 42 | 2A | * |
| 43 | 2B | + |
| 44 | 2C | , |
| 45 | 2D | - |
| 46 | 2E | . |
| 47 | 2F | / |
| 48 | 30 | 0 |
| 49 | 31 | 1 |
| 50 | 32 | 2 |
| 51 | 33 | 3 |
| 52 | 34 | 4 |
| 53 | 35 | 5 |
| 54 | 36 | 6 |
| 55 | 37 | 7 |
| 56 | 38 | 8 |
| 57 | 39 | 9 |
| 58 | 3A | : |
| 59 | 3B | ; |
| 60 | 3C | < |
| 61 | 3D | = |
| 62 | 3E | > |
| 63 | 3F | ? |
| 64 | 40 | @ |
| 65 | 41 | A |
| 66 | 42 | B |
| 67 | 43 | C |
| 68 | 44 | D |
| 69 | 45 | E |
| 70 | 46 | F |
| 71 | 47 | G |
| 72 | 48 | H |
| 73 | 49 | I |
| 74 | 4A | J |
| 75 | 4B | K |
| 76 | 4C | L |
| 77 | 4D | M |
| 78 | 4E | N |
| 79 | 4F | O |
| 80 | 50 | P |
| 81 | 51 | Q |
| 82 | 52 | R |
| 83 | 53 | S |
| 84 | 54 | T |
| 85 | 55 | U |
| 86 | 56 | V |
| 87 | 57 | W |
| 88 | 58 | X |
| 89 | 59 | Y |
| 90 | 5A | Z |
| 91 | 5B | [ |
| 92 | 5C | \ |
| 93 | 5D | ] |
| 94 | 5E | ^ |
| 95 | 5F | _ |
| 96 | 60 | ` | |
| 97 | 61 | a |
| 98 | 62 | b |
| 99 | 63 | c |
| 100 | 64 | d |
| 101 | 65 | e |
| 102 | 66 | f |
| 103 | 67 | g |
| 104 | 68 | h |
| 105 | 69 | i |
| 106 | 6A | j |
| 107 | 6B | k |
| 108 | 6C | l |
| 109 | 6D | m |
| 110 | 6E | n |
| 111 | 6F | o |
| 112 | 70 | p |
| 113 | 71 | q |
| 114 | 72 | r |
| 115 | 73 | s |
| 116 | 74 | t |
| 117 | 75 | u |
| 118 | 76 | v |
| 119 | 77 | w |
| 120 | 78 | x |
| 121 | 79 | y |
| 122 | 7A | z |
| 123 | 7B | { |
| 124 | 7C | |
| 125 | 7D | } |
| 126 | 7E | ~ |
| 127 | 7F | DEL (删除) |
中文编码体系从 GB2312 到 GB18030 的演变,核心是为了解决汉字数量不断增加以及与国际化标准接轨的问题。这三个标准是向下兼容的,即 GB18030 兼容 GBK,GBK 兼容 GB2312,GB2312 兼容 ASCII。
下面是它们的关键特性对比:

Big5(大五码) 是一种繁体中文字符编码,主要用于中国台湾、香港、澳门等使用繁体中文的地区。
Unicode 的目标是:
为世界上几乎所有字符分配一个唯一的编号(码点)。
Unicode 标准定义了一个巨大的“代码空间”(codespace),范围从 0 到 0x10FFFF,总共有 1,114,112 个码位(code point),足以容纳超过百万个字符。
码位 (Code Point):每个字符被分配的唯一数字编号,通常用 U+ 开头表示,例如 U+0041 代表大写字母 'A',U+6C49 代表汉字“汉”。
字符 (Character):一个抽象的文本单元,是编码的对象。Unicode 编码的是字符,而不是它的具体视觉呈现(字形)
| 编码格式 | 特点与优势 | 典型应用场景 |
|---|---|---|
| UTF-8 | 变长编码,使用 1-4 个字节。完全兼容 ASCII(0-127 用一个字节),对英文和互联网传输极其高效。是目前 Web 世界的事实标准。 | 网页、HTML、XML、电子邮件、绝大多数 Linux/Unix 系统、Python 默认编码。 |
| UTF-16 | 变长编码,使用 2 或 4 个字节(通过代理对)。BMP 内的字符用2字节,节约存储。在 BMP 内可视为定长,处理效率较高,是Unicode早期版本的继承者。 | Java、.NET、Windows 系统内部,以及许多需要平衡存储和访问效率的API。 |
| UTF-32 | 定长编码,固定使用 4 个字节。每个码位直接对应一个32位值,处理起来最简单、最直接。但空间占用较大。 | 一些 Unix/Linux 平台作为内部处理码,或在需要直接、快速访问单个码位的场景。 |
乱码通常是因为编码和解码使用了不同的规则。
[root@localhost data]# cat test.txtword2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2[root@localhost data]# cat test1.txt中国人[root@localhost data]# file test.txttest.txt: ASCII text[root@localhost data]# file test1.txttest1.txt: UTF-8 Unicode text
txt另存时,可以选择对应字符编码,右下角显示现在使用的是什么编码。

notepad++ 打开文件时,右下角有字符编码。

notepad++修改编码

命令:
iconv -f GBK -t UTF-8 old.txt -o new.txt表示:
-f GBK:源文件编码
-t UTF-8:目标编码
[root@localhost data]# which iconv/usr/bin/iconv[root@localhost data]# file test1.txttest1.txt: UTF-8 Unicode text[root@localhost data]# iconv -f UTF-8 -t GB18030 test1.txt -o test2.txt[root@localhost data]# file test2.txttest2.txt: ISO-8859 text
字符集(Character Set,简称 charset) 就是 字符的集合。
| 概念 | 类比 | 说明 |
|---|---|---|
| 字符集 | “字典” | 规定了有哪些字符,每个字符给一个编号(码位)。例如:A → 65,汉 → U+6C49。 |
| 编码 | “电话号码簿的压缩打包方式” | 规定了这个编号在计算机里怎么用字节存储。例如:U+6C49 在 UTF-8 里是 E6 B1 89(3 字节),在 GB2312 里是 BA BA(2 字节)。 |
同一个字符集可以用不同编码方式。最典型的例子就是 Unicode 字符集(收录了所有字符),但它在计算机里有三种主流编码格式:UTF-8、UTF-16、UTF-32——它们存的字节完全不同,但最终都能还原回同一个 Unicode 字符。
vi(Visual Editor)是 Linux/Unix 中最经典的文本编辑器之一,几乎所有 Linux 系统都自带。在Linux的世界中,绝大部分的配置文件都是以ASCII的纯文本形态存在,因此要修改这些配置文件,必须使用一个文本编辑器,而vi是最常用的文本编辑器。
vi [选项] 文件名例如:
vi test.txt如果文件不存在,会新建一个文件;如果存在,则打开进行编辑。

三种模式的作用如下表:


命令模式的常用命令



vim是vi的进阶版,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便编程。vim 是个'程序编辑器'啦! 甚至一些 Linux 基础配置文件内的语法,都能够用 vim 来检查呢! 例如vim可以检查 /etc/fstab这个档案的内容。
当我们在使用 vim 编辑时, vim 会在与被编辑的文件的目录下,再建立一个名为 .filename.swp (以点开头的是隐藏文件,需要使用ls -a查看)的文件。
[root@localhost testdir]# lsmessages1[root@localhost testdir]# ls -la总用量 284drwxr-xr-x 2 root root 4096 7月 17 15:48 .drwxr-xr-x 6 root root 4096 7月 17 15:47 ..-rw------- 1 root root 262169 7月 1 15:37 messages1-rw------- 1 root root 16384 7月 17 15:48 .messages1.swp[root@localhost testdir]# ps -ef |grep vimroot 15037 2557 0 15:48 pts/0 00:00:00 vim messages1root 15272 14842 0 15:49 pts/1 00:00:00 grep --color=auto vim
如果你的系统因为某些原因而宕机了,导致你的编辑的文件还没有保存,这个时候xxx.swp就能发挥救援恢复的功能。
由于暂存文件存在的关系,因此 vim 会主动的判断你的这个档案可能有些问题,在上面的图标中 vim 提示两点主要的问题与解决方案,分别是这样的:
问题一:可能有其他人或程序同时在编辑这个文件:
由于 Linux 是多人多工的环境,因此很可能有很多人同时在编辑同一个档案。 如果在多人共同编辑的情况下, 万一大家同时储存,那么这个档案的内容将会变的乱七八糟! 为了避免这个问题,因此 vim 会出现这个警告窗口! 解决的方法则是:
找到另外那个程序或人员,请他将该 vim 的工作结束,然后你再继续处理。
如果你只是要看该档案的内容并不会有任何修改编辑的行为,那么可以选择开启成为只读(O)档案, 亦即上述画面反白部分输入英文『o』即可,其实就是 [O]pen Read-Only 的选项。
问题二:在前一个 vim 的环境中,可能因为某些不知名原因导致 vim 中断 (crashed):
这就是常见的不正常结束 vim 产生的后果。 解决方案依据不同的情况而不同喔! 常见的处理方法为:
如果你之前的 vim 处理动作尚未储存,此时你应该要按下'R',亦即使用 (R)ecover 的项目, 此时 vim 会加载 .xxx.swp 的内容,让你自己来决定要不要储存! 这样就能够救回来你之前未储存的工作。 不过那个.xxx.swp 并不会在你结束 vim 后自动删除,所以你离开 vim 后还得要自行删除 .xxx.swp 才能避免每次打开这个档案都会出现这样的警告!
如果你确定这个暂存档是没有用的,那么你可以直接按下'D'删除掉这个暂存档,亦即 (D)elete it 这个项目即可。 此时 vim 会加载文件,并且将旧的 .xxx.swp 删除后,建立这次会使用的新的 .xxx.swp 。
至于这个发现临时文件警告信息的画面中,有出现六个可用按钮,各按钮的说明如下:
[O]pen Read-Only:打开此文件成为只读文件, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。 一般来说,在上课时,如果你是登入到同学的电脑去看他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式;
(E)dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入临时文件的内容。 不过很容易出现两个用户互相改变对方的档案等问题! 不好不好!
(R)ecover:就是加载暂存档的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个临时文件喔!
(D)elete it:你确定那个暂存档是无用的! 那么开启文件前会先将这个临时文件删除! 这个动作其实是比较常做的! 因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧! 哈哈!
(Q)uit:按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
(A)bort:忽略这个编辑行为,感觉上与 quit 非常类似! 也会送你回到命令提示字符就是啰!

Windows系统(DOS)与Linux断行字符不同,而我们也可以利用 cat -A 来观察以 DOS (Windows 系统) 创建的文件的特殊格式, 也可以发现在 DOS 使用的断行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。 而在 Linux 底下,则是仅有 LF ($) 这个断行符号。
在 Linux 底下的指令在开始执行时,他的判断依据是 'Enter',而 Linux 的 Enter 为 LF 符号, 不过,由于DOS的断行符号是CRLF,也就是多了一个^M的符号出来, 在这样的情况下,如果是一个 shell script 的脚本文件,将可能达不到脚本想要的结果,因为他会误判程序所下达的指令内容啊!
我们可用用cat -A 来面容以DOS创建的文件的特殊格式。
123.txt是我们在windows上创建的文件,截图如下:

上传123.txt文件至Linux服务器,使用cat -A 查看,可以看到结尾为 ^M$
[root@localhost testdir]# cat -A 123.txtabcd124af^M$fewqgqg123f^M$13rfefqr2f^M$wefqgfwqg12fg[root@localhost testdir]# dos2unix 123.txt #将格式转换为Linux的格式后,换行为`$`dos2unix: 正在转换文件 123.txt 为Unix格式...[root@localhost testdir]# cat -A 123.txtabcd124af$fewqgqg123f$13rfefqr2f$wefqgfwqg12fg[root@localhost testdir]#
将格式转换成为 Linux 格式的命令:dos2unix
nano 的快捷键用 ^ 和 M- 来表示,你可以这样理解:
^ 代表 Ctrl 键,比如 ^X 就是同时按下 Ctrl 和 X。
M- 代表 Alt 键,比如 M-A 就是同时按下 Alt 和 A。
启动与打开文件:在终端输入 nano 文件名。如果文件存在,会直接打开它;如果文件不存在,会为你创建一个新的空白文件。例如,编辑一个叫 my_note.txt 的文件:
bash
nano my_note.txt编辑文本:nano 是“无模式”编辑器,打开文件后直接用键盘输入文字即可,光标可以用方向键移动。
保存与退出:这是最核心的两个操作,通常在屏幕底部有提示:
保存文件:按下 ^O (Ctrl+O)。如果是新文件,nano会询问你要保存的文件名,确认后按 Enter 即可。
退出编辑器:按下 ^X (Ctrl+X)。如果文件有未保存的修改,nano会询问是否保存,按 Y 保存,按 N 不保存直接退出。

nano 编辑器被设计用来模仿华盛顿大学 Pico 文本编辑器, 且具有类似的功能性与易用性。它包括四个主要部分: 顶行显示程序版本、当前被编辑的文件名以及该文件是否已被修改。 接着是主要编辑区,显示正在编辑的文件。 状态行位于倒数第三行,用来显示重要的信息。 底部的两行显示了编辑器中最常用的快捷键。 快捷键用如下方式进行表示:控制键序列使用一个“^”符号标记,它可以用 Ctrl 键或按 Esc 键两次的方式进行输入。Meta 键序列使用“M-”符号标记,它可以用 Alt、Cmd 或 Esc 键输入,具体取决于您的键盘设置。 另外,按 Esc 两次之后再键入从 000 到 255 之间的三位数字,则会输入该 ASCII 码对应的字符。下列按键组合可用于主要编辑区,替代按键则显示于括号内:^G (F1) 显示帮助^X (F2) 关闭当前缓冲区 / 离开 nano^O (F3) 将当前缓冲区(或标记的区域)写入磁盘^R (Ins) 将另一个文件插入当前缓冲区(或者插入新缓冲区)^W (F6) 正向查找字符串或正则表达式^\ (M-R) 替换字符串或正则表达式^K (F9) 剪切当前行(或者标记的区域)并存至剪贴缓冲区^U (F10) 在当前游标位置粘贴剪贴缓冲区内容^T 执行函数或外部命令^J (F4) 对齐当前段落^C (F11) 显示光标位置^_ (M-G) 跳至指定行与列位置M-U 撤销上次操作M-E 重做撤销的操作M-A (^6) 标记游标所在位置开始的文本M-6 (M-^) 复制当前行(或者标记的区域)并存至剪贴缓冲区M-] 移动至对应括号^Q 反向查找字符串或正则表达式M-Q 向后搜索下一个出现位置M-W 向前搜索下一个出现位置^B (◀) 向后跳一字符^F (▶) 向前跳一字符^◀ (M-Space) 向后跳一个词^▶ (^Space) 向前跳一个词^A (Home) 跳至当前行首^E (End) 跳至当前行尾^P (▲) 跳至前一行^N (▼) 跳至后一行M-▲ (M--) 向上滚动一行但不移动文本中的游标M-▼ (M-+) 向下滚动一行但不移动文本中的游标^▲ (M-7) 跳至前一段文本^▼ (M-8) 跳至后一段文本M-( (M-9) 跳至当前段落开头,如已在段落开头,则调至上一段落起始处M-) (M-0) 跳至当前段落结尾,如已在段落结尾,则调至下一段落结尾^Y (PgUp) 向上跳转一屏^V (PgDn) 向下跳转一屏M-\ (^Home) 跳至文件第一行M-/ (^End) 跳至文件最后一行M-◀ (M-<) 切换至上个文件缓冲区M-▶ (M->) 切换至下个文件缓冲区^I (Tab) 插入制表符于游标位置^M (Enter) 插入新行于游标位置^H (Bsp) 删除游标左侧的字符^D (Del) 删除游标之下的字符M-Bsp (Sh-^Del) 从游标向单词起始位置向后删除^Del 从游标向下一个单词起始位置向前删除M-T 从游标位置剪切至文件结尾M-J 对齐整个文件M-D 计算字数、行数与字符数M-V 插入下一按键原型^L 重新显示当前画面^Z 挂起编辑器(如果启用了挂起功能)M-} (Tab) 缩进当前行(或者标记的行)M-{ (Sh-Tab) 取消缩进当前行(或者标记的行)M-3 注释/反注释当前行(或者标记的行)^] 尝试补全当前单词M-: 开始/停止录制宏M-; 运行最近录制的宏M-Ins 在当前行放置或移除锚点M-PgUp 向上跳转至最近的锚点M-PgDn 向下跳转至最近的锚点M-Del 去除当前行(或者标记的行)F12 尝试运行拼写检查M-B 尝试运行代码语法检查M-F 调用其它程序来格式化/修改/操作缓冲区^L 将游标所在的行居中^S 不提示而保存文件M-X 辅助模式 启用/关闭M-C 持续显示游标位置 启用/关闭M-S 为过长行进行软折行 启用/关闭M-N 行编号 启用/关闭M-P 显示空格 启用/关闭M-Y 语法色彩高亮 启用/关闭M-H 智能HOME键 启用/关闭M-I 自动缩进 启用/关闭M-K 剪切至行尾 启用/关闭M-L 为过长行强制换行 启用/关闭M-O 已输入制表符至空白的转换 启用/关闭M-M 鼠标支持 启用/关闭M-Z 挂起 启用/关闭