Browse Source

Update 03_Zsh-开发指南(第三篇-字符串处理之转义字符和格式化输出).md

Xingyu.Wang 6 years ago
parent
commit
fb8e9d6065

+ 16 - 17
03_Zsh-开发指南(第三篇-字符串处理之转义字符和格式化输出).md

@@ -49,7 +49,7 @@ Hello
 
 ### 单引号
 
-单引号的左右主要是为了避免字符串里的特殊字符起作用。在单引号中,只有一个字符需要转义,转义符号 `\` 。所以如果字符串里包含特殊符号时,最好使用单引号包含起来,避免不必要的麻烦。但是单引号里不能再有单引号,即使加转义符号也不行,如果字符串需要包含单引号,可以使用这几种方法。
+单引号的左右主要是为了避免字符串里的特殊字符起作用。在单引号中,只有一个字符需要转义,转义符号 `\` 。所以如果字符串里包含特殊符号时,最好使用单引号包含起来,避免不必要的麻烦。如果字符串需要包含单引号,可以使用这几种方法。
 
 ```
 # 用双引号包含
@@ -150,7 +150,7 @@ Line    one
 `-l` 用于分行输出字符串:
 
 ```
-# 每个字符串一行,字符串是用空格隔开的
+# 每个字符串一行,字符串列表是用空格隔开的
 % print -l aa bb
 aa
 bb
@@ -168,7 +168,7 @@ bb
 ```
 % print abc
 abc
-# 这个 % 高亮显示,代表这一行末尾没有换行符
+# 下面输出 abc 后的 % 高亮显示,代表这一行末尾没有换行符
 % print -n abc
 abc%
 ```
@@ -269,7 +269,7 @@ aabbcc%
 0000000c
 ```
 
-`-X` 用于将所有的 tab 替换成空格。注意不是简单地替换成空格。比如每行有一个 tab,`-X 8`,那么如果 tab 前(到行首或者上一个 tab)有 5 个字符,就补全 3 个空格,凑够 8,这么做是为了对齐每一列的。但如果前边有 8 个或者 8 个以上字符,那么依然是一个 tab 替换成 8 个字符,因为 tab 不能凭空消失,一定要转成至少一个空格才行。如果没理解就自己多试试找规律吧。
+`-X` 用于将所有的 tab 补全成空格。注意不是简单地替换成空格。比如每行有一个 tab,`-X 8`,那么如果 tab 前(到行首或者上一个 tab)有 5 个字符,就补全 3 个空格,凑够 8,这么做是为了对齐每一列的。但如果前边有 8 个或者 8 个以上字符,那么依然是一个 tab 替换成 8 个字符,因为 tab 不能凭空消失,一定要转成至少一个空格才行。如果没理解就自己多试试找规律吧。
 
 ```
 % print -X 2 'ab\t\tabc' | hexdump -C
@@ -281,7 +281,7 @@ aabbcc%
 0000000c
 ```
 
-`-u` 用于指定 fd 输出。`print` 默认输出到 fd 1,即 stdout,可以指定成其他 fd(2 是 stderr,其他的可以运行 `ls -l /proc/$$/fd` 查看。
+`-u` 用于指定文件描述符(fd)输出。`print` 默认输出到 fd 1,即 stdout,可以指定成其他 fd(2 是 stderr,其他的可以运行 `ls -l /proc/$$/fd` 查看。
 
 ```
 % print -u 2 good
@@ -334,9 +334,9 @@ aa bb cc
 `printf` 命令很像 c 语言的 `printf` 函数,用于输出格式化后的字符串:
 
 ```
-# 输出末尾的 % 代表该行末尾没有换行符
-# printf 不会在输出末尾添加换行符
-# 为了避免误解,之后的例子省略该符号
+# 末尾输出高亮的 % 代表该行末尾没有换行符
+# printf 不会在输出末尾自动添加换行符
+# 为了避免误解,之后的例子省略该 % 符号
 % printf ":%d %f:" 12 34.56
 :12 34.560000:%
 ```
@@ -348,7 +348,7 @@ aa bb cc
 % printf "%d %f %s" 12 12.34 abcd
 12 12.340000 abcd%
 
-# 取小数点后
+# 取小数点后 1 
 % printf "%.1f" 12.34
 12.3
 
@@ -360,7 +360,7 @@ aa bb cc
 % printf "%x" 12
 c
 
-# 补齐空格或者0
+# 补齐空格或者补齐 0
 % printf "%5d\n%05d" 12 12
    12
 00012
@@ -413,7 +413,6 @@ X  x  -- unsigned hexadecimal number, letters capitalized as x
 % print -P '%B%F{red}abc'
 abc
 
-
 # 没覆盖到的功能可以用原始的转义符号,可读性比较差
 # 4[0-7] 背景色
 # 3[0-7] 前景色
@@ -431,18 +430,18 @@ abc
 | 选项   | 功能                    | 参数        |
 | ---- | --------------------- | --------- |
 | -C   | 按列输出                  | 列数        |
-| -D   | 替换路径成带 ~ 的版本          | 无         |
-| -N   | 使用 \x00 作为字符串的间隔      | 无         |
+| -D   | 替换路径成带 `~` 的版本          | 无         |
+| -N   | 使用 `\x00` 作为字符串的间隔      | 无         |
 | -O   | 降序排列                  | 无         |
 | -P   | 输出颜色和特殊样式             | 无         |
-| -R   | 模拟 echo 命令            | 无         |
+| -R   | 模拟 `echo` 命令            | 无         |
 | -S   | 放命令放入历史命令文件(要加引号)     | 无         |
 | -X   | 替换所有 tab 为空格          | tab 对应空格数 |
-| -a   | 和 -c/-C 一起使用时,改为从左到右  | 无         |
+| -a   | 和 `-c`/`-C` 一起使用时,改为从左到右  | 无         |
 | -b   | 识别出 bindkey 转义字符串     | 无         |
 | -c   | 按列输出(自动决定列数)          | 无         |
-| -f   | 同 printf              | 无         |
-| -i   | 和 -o/-O 一起用时,大小写不敏感排序 | 无         |
+| -f   | 同 `printf`              | 无         |
+| -i   | 和 `-o`/`-O` 一起用时,大小写不敏感排序 | 无         |
 | -l   | 使用换行符作为字符串分隔符         | 无         |
 | -m   | 只输出匹配的字符串             | 匹配模式字符串   |
 | -n   | 不自动添加最后的换行符           | 无         |