Skip to content
← 返回文件与文本处理列表
文件与文本处理任务与配置

命令与脚本:文本处理与检索 · 编辑、检查拼写与扩展输入至Shell命令的兼容入口 ​

返回分篇目录

编辑、检查拼写与扩展输入 ​

需要修改正文时选编辑器;aspell 与 alex 检查文本,espanso 扩展常用输入。不同编辑器的快捷键与模式各自保留。

nano · 命令行文本编辑器。一个功能更强的 Pico 克隆版 ​

另请参阅:pico, rnano。 更多信息:https://nano-editor.org/dist/latest/nano.html。

  • 启动编辑器:
bash
nano
  • 启动编辑器且不使用配置文件:
bash
nano {{[-I|--ignorercfiles]}}
  • 打开指定文件,在关闭前一个文件后移动到下一个文件:
bash
nano {{路径/到/文件1 路径/到/文件2 ...}}
  • 打开文件并将光标定位到指定行和列:
bash
nano +{{行号}},{{列号}} {{路径/到/文件}}
  • 打开文件并启用软换行:
bash
nano {{[-S|--softwrap]}} {{路径/到/文件}}
  • 打开文件并使新行缩进对齐到上一行:
bash
nano {{[-i|--autoindent]}} {{路径/到/文件}}
  • 打开文件并在保存时创建备份文件(如 路径/到/文件~):
bash
nano {{[-B|--backup]}} {{路径/到/文件}}
  • 退出 nano:
bash
<Ctrl x>

vim · Vi IMproved,一个程序员的文本编辑器,提供为不同类型的文档修改设计的多种模式 ​

按 <i> 进入插入模式。<Esc> 返回正常模式,正常模式允许使用 Vim 命令。 另请参阅:vimdiff, vimtutor, nvim, gvim。 更多信息:https://www.vim.org/。

  • 打开文档:
bash
vim {{文件}}
  • 打开文件的指定行数:
bash
vim +{{行数}} {{文件}}
  • 查看 Vim 的使用说明:
bash
<:>help<Enter>
  • 保存并退出:
bash
{{<Esc><Z><Z>|<Esc><:>x<Enter>|<Esc><:>wq<Enter>}}
  • 撤销上一个操作:
bash
<Esc><u>
  • 用特征(pattern)在文件中搜寻,按下 <n>/<N> 切换至下一个 / 上一个结果:
bash
</>{{特征}}<Enter>
  • 对整个文件使用regex式进行替换:
bash
<:>%s/{{正则表达式}}/{{替换字}}/g<Enter>
  • 显示行号:
bash
<:>set nu<Enter>

nvim · Neovim,基于 Vim 的代码编辑器,使用多种不同的模式来修改文本 ​

在普通模式(normal mode)下,按下 <i> 键以进入插入模式(insert mode)。通过 <Esc> 或 <Ctrl c> 返回普通模式。普通模式下不支持一般的文本输入。 另请参阅:vim, vimtutor, vimdiff。 更多信息:https://neovim.io/。

  • 打开文件:
bash
nvim {{path/to/file}}
  • 进入文本编辑模式(insert mode):
bash
<Esc><i>
  • 复制("yank")或剪切("delete")当前行(使用 <p> 粘贴):
bash
<Esc>{{<y><y>|<d><d>}}
  • 进入普通模式并撤消上次操作:
bash
<Esc><u>
  • 在当前文件中使用正则表达式搜索(使用 <n>/<N> 查看下一个/上一个搜索结果):
bash
<Esc></>{{search_pattern}}<Enter>
  • 在当前文件中使用regex式进行全局替换:
bash
<Esc><:>%s/{{regular_expression}}/{{replacement}}/g<Enter>
  • 进入普通模式,保存文件并退出:
bash
{{<Esc><Z><Z>|<Esc><:>x<Enter>|<Esc><:>wq<Enter>}}
  • 退出并不保存更改:
bash
<Esc><:>q!<Enter>

hx · Helix,一个后现代的文本编辑器,为不同类型的文本操作提供了几种模式 ​

按 <i> 进入插入模式。按 <Esc> 进入正常模式,并且可以使用 Helix 命令。 更多信息:https://manned.org/man/debian-forky/hx。

  • 打开文件:
bash
hx {{路径/到/文件}}
  • 并排打开多个文件:
bash
hx --vsplit {{路径/到/文件1 路径/到/文件2}}
  • 显示 Helix 教程(也可以在 Helix 中按 <Esc> 后输入 <:>tutor<Enter> 访问):
bash
hx --tutor
  • 更改 Helix 主题:
bash
<:>theme {{主题名称}}<Enter>
  • 保存并退出:
bash
<:>wq<Enter>
  • 强制退出并不保存:
bash
<:>q!<Enter>
  • 撤销上次操作:
bash
<u>
  • 搜索文件中的关键字(按 <n>/<N> 前往下一个/上一个匹配):
bash
</>{{搜索模式}}<Enter>

zed · 一款旨在快速、高效且便捷的文本编辑器 ​

更多信息:https://zed.dev/docs/reference/cli。

  • 在 Zed 中打开指定路径:
bash
zed {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}
  • 在前台打开一个路径并显示日志:
bash
zed {{路径/到/项目}} --foreground
  • 在新窗口中打开一个路径:
bash
zed {{路径/到/项目}} {{[-n|--new]}}
  • 在指定的行号和列号处打开文件:
bash
zed {{路径/到/文件}}:{{行号}}:{{列号}}
  • 在 Zed 中为同一文件的两个版本打开一个差异选项卡:
bash
zed --diff {{路径/到/旧文件}} {{路径/到/新文件}}

joe · Joe 自己的文本编辑器 ​

更多信息:https://joe-editor.sourceforge.io/4.6/man.html。

  • 在 JOE 中打开一个新文件:
bash
joe
  • 打开一个指定文件:
bash
joe {{路径/到/文件}}
  • 打开一个指定文件,并将光标定位在指定的行:
bash
joe +{{行号}} {{路径/到/文件}}
  • 以只读模式打开一个指定文件:
bash
joe -rdonly {{路径/到/文件}}

atom · 一个跨平台的可扩展文本编辑器 ​

插件由 apm 管理。 注意:Atom 已经停止更新并且不再积极维护。 更多信息:https://atom.io/。

  • 打开文件或目录:
bash
atom {{路径/到/文件或目录}}
  • 在新窗口中打开文件或目录:
bash
atom {{[-n|--new-window]}} {{路径/到/文件或目录}}
  • 在已有窗口中打开文件或目录:
bash
atom {{[-a|--add]}} {{路径/到/文件或目录}}
  • 以安全模式启动 Atom(不加载额外插件):
bash
atom --safe
  • 阻止 Atom 分叉到后台,保持 Atom 与终端连接:
bash
atom {{[-f|--foreground]}}
  • 等待 Atom 窗口关闭后再返回(对于 Git 提交编辑器很有用):
bash
atom {{[-w|--wait]}}

aspell · 交互式拼写检查工具 ​

更多信息:http://aspell.net/man-html/index.html。

  • 为一个文件做拼写检查:
bash
aspell check {{文件路径}}
  • 列出来自标准输入的拼写错误单词:
bash
cat {{文件}} | aspell list
  • 列出可用的字典语言:
bash
aspell dicts
  • 指定不同的语言(取 ISO 639 语言代码的 2 个字母)来运行 aspell:
bash
aspell --lang {{cs}}
  • 列出来自标准输入的拼写错误单词,并且忽略个人单词列表中的单词:
bash
cat {{文件}} | aspell --personal {{个人单词列表.pws}} list

alex · 捕捉文本中的不敏感、不考虑他人的写作风格。它帮助您找出文本中的性别偏向、极端化、种族相关、宗教考虑不周等不平等表达 ​

更多信息:https://github.com/get-alex/alex。

  • 从标准输入分析文本:
bash
echo {{His network looks good}} | alex --stdin
  • 分析当前目录中的所有文件:
bash
alex
  • 分析特定文件:
bash
alex {{路径/到/文件.md}}
  • 分析除了 示例文件.md 之外的所有 Markdown 文件:
bash
alex *.md !{{示例文件.md}}

espanso · 用 Rust 编写的跨平台文本扩展器 ​

更多信息:https://espanso.org/docs/command lIne/cli_list/。

  • 检查状态:
bash
espanso status
  • 编辑配置:
bash
espanso edit config
bash
espanso install {{软件包的名字}}
  • 重新启动(安装软件包后需要,在失败的情况下很有用):
bash
espanso restart

编码与解码二进制内容 ​

下列工具把字节转换成便于传输的文本,或执行逆向解码;按接收方要求选择编码格式。

base64 · 将文件或标准输入编码到 Base64 或从 Base64 解码为标准输出 ​

更多信息:https://manned.org/base64。

  • 编码一个文件:
bash
base64 {{路径/到/文件}}
  • 按特定宽度包装编码输出(“0”表示禁用包装):
bash
base64 {{[-w|--wrap]}} {{0|76|...}} {{路径/到/文件}}
  • 解码一个文件:
bash
base64 {{[-d|--decode]}} {{路径/到/文件}}
  • 从标准输入编码:
bash
{{某指令}} | base64
  • 将标准输入解码:
bash
{{某指令}} | base64 {{[-d|--decode]}}

base32 · 将文件或标准输入编码到 Base32 或从 Base32 解码为标准输出 ​

更多信息:https://manned.org/base32。

  • 编码一个文件:
bash
base32 {{路径/到/文件}}
  • 按特定宽度包装编码输出(“0”表示禁用包装):
bash
base32 {{[-w|--wrap]}} {{0|76|...}} {{路径/到/文件}}
  • 解码一个文件:
bash
base32 {{[-d|--decode]}} {{路径/到/文件}}
  • 从标准输入编码:
bash
{{某指令}} | base32
  • 将标准输入解码:
bash
{{某指令}} | base32 {{[-d|--decode]}}

uuencode · 将二进制文件编码为 ASCII,以便通过仅支持简单 ASCII 编码的媒介传输 ​

更多信息:https://manned.org/uuencode。

  • 编码一个文件并将结果打印到 stdout:
bash
uuencode {{路径/到/输入文件}} {{解码后文件名}}
  • 编码一个文件并将结果写入到一个文件:
bash
uuencode -o {{路径/到/输出文件}} {{路径/到/输入文件}} {{解码后文件名}}
  • 使用 Base64 而不是默认的 uuencode 编码一个文件,并将结果写入到一个文件:
bash
uuencode {{[-m|--base64]}} -o {{路径/到/输出文件}} {{路径/到/输入文件}} {{解码后文件名}}

uudecode · 解码被 uuencode 编码的文件 ​

更多信息:https://manned.org/uudecode。

  • 解码到编码头指定的文件名(不是标准输出;确认文件名及覆盖范围):
bash
uudecode {{路径/到/编码文件}}
  • 解码用 uuencode 编码的文件,并将结果写入到一个文件中:
bash
uudecode -o {{路径/到/解码文件}} {{路径/到/编码文件}}

Shell命令的兼容入口 ​

test、[ 与 [[ 的示例放在一起对照;历史替换和目录记录属于交互 Shell 操作,使用前确认当前 Shell。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。

打开本条命令的完整说明与示例。


示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。

继续阅读