命令与脚本:文本处理与检索 · 编辑、检查拼写与扩展输入至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 · 一款旨在快速、高效且便捷的文本编辑器
- 在 Zed 中打开指定路径:
bash
zed {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 在前台打开一个路径并显示日志:
bash
zed {{路径/到/项目}} --foreground- 在新窗口中打开一个路径:
bash
zed {{路径/到/项目}} {{[-n|--new]}}- 在指定的行号和列号处打开文件:
bash
zed {{路径/到/文件}}:{{行号}}:{{列号}}- 在 Zed 中为同一文件的两个版本打开一个差异选项卡:
bash
zed --diff {{路径/到/旧文件}} {{路径/到/新文件}}joe · Joe 自己的文本编辑器
- 在 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 · 交互式拼写检查工具
- 为一个文件做拼写检查:
bash
aspell check {{文件路径}}- 列出来自标准输入的拼写错误单词:
bash
cat {{文件}} | aspell list- 列出可用的字典语言:
bash
aspell dicts- 指定不同的语言(取 ISO 639 语言代码的 2 个字母)来运行
aspell:
bash
aspell --lang {{cs}}- 列出来自标准输入的拼写错误单词,并且忽略个人单词列表中的单词:
bash
cat {{文件}} | aspell --personal {{个人单词列表.pws}} listalex · 捕捉文本中的不敏感、不考虑他人的写作风格。它帮助您找出文本中的性别偏向、极端化、种族相关、宗教考虑不周等不平等表达
- 从标准输入分析文本:
bash
echo {{His network looks good}} | alex --stdin- 分析当前目录中的所有文件:
bash
alex- 分析特定文件:
bash
alex {{路径/到/文件.md}}- 分析除了
示例文件.md之外的所有 Markdown 文件:
bash
alex *.md !{{示例文件.md}}espanso · 用 Rust 编写的跨平台文本扩展器
- 检查状态:
bash
espanso status- 编辑配置:
bash
espanso edit config- 从 hub 商店(https://hub.espanso.org/)安装一个软件包:
bash
espanso install {{软件包的名字}}- 重新启动(安装软件包后需要,在失败的情况下很有用):
bash
espanso restart编码与解码二进制内容
下列工具把字节转换成便于传输的文本,或执行逆向解码;按接收方要求选择编码格式。
base64 · 将文件或标准输入编码到 Base64 或从 Base64 解码为标准输出
- 编码一个文件:
bash
base64 {{路径/到/文件}}- 按特定宽度包装编码输出(“0”表示禁用包装):
bash
base64 {{[-w|--wrap]}} {{0|76|...}} {{路径/到/文件}}- 解码一个文件:
bash
base64 {{[-d|--decode]}} {{路径/到/文件}}- 从标准输入编码:
bash
{{某指令}} | base64- 将标准输入解码:
bash
{{某指令}} | base64 {{[-d|--decode]}}base32 · 将文件或标准输入编码到 Base32 或从 Base32 解码为标准输出
- 编码一个文件:
bash
base32 {{路径/到/文件}}- 按特定宽度包装编码输出(“0”表示禁用包装):
bash
base32 {{[-w|--wrap]}} {{0|76|...}} {{路径/到/文件}}- 解码一个文件:
bash
base32 {{[-d|--decode]}} {{路径/到/文件}}- 从标准输入编码:
bash
{{某指令}} | base32- 将标准输入解码:
bash
{{某指令}} | base32 {{[-d|--decode]}}uuencode · 将二进制文件编码为 ASCII,以便通过仅支持简单 ASCII 编码的媒介传输
- 编码一个文件并将结果打印到
stdout:
bash
uuencode {{路径/到/输入文件}} {{解码后文件名}}- 编码一个文件并将结果写入到一个文件:
bash
uuencode -o {{路径/到/输出文件}} {{路径/到/输入文件}} {{解码后文件名}}- 使用 Base64 而不是默认的 uuencode 编码一个文件,并将结果写入到一个文件:
bash
uuencode {{[-m|--base64]}} -o {{路径/到/输出文件}} {{路径/到/输入文件}} {{解码后文件名}}uudecode · 解码被 uuencode 编码的文件
- 解码到编码头指定的文件名(不是标准输出;确认文件名及覆盖范围):
bash
uudecode {{路径/到/编码文件}}- 解码用
uuencode编码的文件,并将结果写入到一个文件中:
bash
uudecode -o {{路径/到/解码文件}} {{路径/到/编码文件}}Shell命令的兼容入口
test、[ 与 [[ 的示例放在一起对照;历史替换和目录记录属于交互 Shell 操作,使用前确认当前 Shell。
示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。
继续阅读
- 文件与文本处理完整实践与解答
- 文件与文本处理上手与对象
- 文件与文本处理任务与配置