Fish shell的abbr命令行参数介绍和Bat文件查看工具

发布于:2025-08-11 ⋅ 阅读:(16) ⋅ 点赞:(0)

Fish Shell abbr命令详细参考

基本语法

abbr [OPTIONS] WORD EXPANSION
abbr [OPTIONS] --add WORD EXPANSION
abbr [OPTIONS] --erase WORD
abbr [OPTIONS] --list
abbr [OPTIONS] --show

所有参数详解

基本操作参数

-a, --add WORD EXPANSION
  • 作用: 添加新的缩写
  • 示例: abbr -a ll "ls -la"
  • 说明: 创建一个名为ll的缩写,展开为ls -la
-e, --erase WORD
  • 作用: 删除指定的缩写
  • 示例: abbr -e ll
  • 说明: 删除名为ll的缩写
-l, --list
  • 作用: 列出所有已定义的缩写名称
  • 示例: abbr -l
  • 输出: 显示所有缩写的名称列表
-s, --show
  • 作用: 显示所有缩写及其完整定义
  • 示例: abbr -s
  • 输出: 显示格式为abbr -a name expansion的完整列表

作用域参数

-g, --global
  • 作用: 设置全局缩写(所有会话共享)
  • 示例: abbr -g -a gst "git status"
  • 说明: 创建的缩写在所有fish会话中都可用
  • 默认行为: 如果不指定作用域,默认为全局
-U, --universal
  • 作用: 设置通用缩写(跨所有fish实例持久化)
  • 示例: abbr -U -a gc "git commit"
  • 说明: 缩写会被保存并在所有fish实例中同步

位置参数

-p, --position anywhere|command
  • 作用: 指定缩写的触发位置
  • 选项:
    • command: 仅在命令位置触发(默认)
    • anywhere: 在任意位置都可以触发
  • 示例:
    • abbr -a -p command gc "git commit" (只在命令开头触发)
    • abbr -a -p anywhere teh "the" (在任意位置触发)

类型参数

-r, --regex
  • 作用: 使用正则表达式模式匹配
  • 示例: abbr -a -r "gc[0-9]+" "git checkout"
  • 说明: 支持正则表达式匹配,如gc1, gc2, gc123等都会触发
-f, --function FUNCTION
  • 作用: 使用函数来生成缩写展开
  • 示例: abbr -a -f myfunction myabbr
  • 说明: 当触发缩写时,调用指定函数来生成展开内容

查询参数

-q, --query WORD
  • 作用: 查询指定缩写是否存在
  • 示例: abbr -q ll
  • 说明: 如果缩写存在返回0,不存在返回1(可用于脚本判断)

帮助参数

-h, --help
  • 作用: 显示帮助信息
  • 示例: abbr -h

实用示例

基本使用

# 添加简单缩写
abbr -a ll "ls -la"
abbr -a gs "git status"
abbr -a gp "git push"

# 删除缩写
abbr -e ll

# 查看所有缩写
abbr -l
abbr -s

高级使用

# 全局缩写
abbr -g -a myalias "echo 'Hello World'"

# 通用缩写(持久化)
abbr -U -a gc "git commit"

# 正则表达式缩写
abbr -a -r "gc[0-9]+" "git checkout"

# 任意位置触发的缩写
abbr -a -p anywhere teh "the"

# 查询缩写是否存在
if abbr -q myabbr
    echo "缩写存在"
else
    echo "缩写不存在"
end

函数缩写示例

# 首先定义一个函数
function current_date
    date "+%Y-%m-%d"
end

# 然后创建使用该函数的缩写
abbr -a -f current_date today

注意事项

  1. 持久化: 使用-U参数的缩写会自动保存到配置文件中
  2. 优先级: 命令行定义的缩写优先于配置文件中的缩写
  3. 触发时机: 缩写在按下空格或回车时触发展开
  4. 作用域: 全局缩写在当前会话有效,通用缩写跨会话持久化
  5. 正则表达式: 使用-r参数时,WORD应该是有效的正则表达式模式

配置文件位置

缩写配置通常保存在:

  • ~/.config/fish/config.fish (手动添加)
  • fish的内部配置系统 (使用-U参数时自动管理)

在Fish默认启动文件中配置缩写

配置文件路径

  • 用户配置: ~/.config/fish/config.fish
  • 系统配置: /etc/fish/config.fish (需要管理员权限)

创建和编辑配置文件

1. 创建配置目录(如果不存在)
mkdir -p ~/.config/fish
2. 编辑配置文件
# 使用你喜欢的编辑器
nano ~/.config/fish/config.fish
# 或者
vim ~/.config/fish/config.fish
# 或者
code ~/.config/fish/config.fish

在config.fish中添加缩写的方法

方法1: 直接在config.fish中定义
# ~/.config/fish/config.fish

# Git相关缩写
abbr -a gs "git status"
abbr -a ga "git add"
abbr -a gc "git commit"
abbr -a gp "git push"
abbr -a gl "git log --oneline"

# 系统命令缩写
abbr -a ll "ls -la"
abbr -a la "ls -la"
abbr -a l "ls -CF"

# 导航缩写
abbr -a .. "cd .."
abbr -a ... "cd ../.."
abbr -a .... "cd ../../.."

# Docker缩写
abbr -a d "docker"
abbr -a dc "docker-compose"
abbr -a dps "docker ps"

# 其他实用缩写
abbr -a h "history"
abbr -a c "clear"
abbr -a e "exit"
方法2: 条件性添加(避免重复)
# ~/.config/fish/config.fish

# 检查缩写是否已存在,避免重复定义
if not abbr -q gs
    abbr -a gs "git status"
end

if not abbr -q ll
    abbr -a ll "ls -la"
end
方法3: 批量导入缩写
# ~/.config/fish/config.fish

# 定义一个函数来批量添加缩写
function setup_abbreviations
    set -l abbreviations \
        "gs" "git status" \
        "ga" "git add" \
        "gc" "git commit" \
        "gp" "git push" \
        "ll" "ls -la" \
        "la" "ls -la"
    
    for i in (seq 1 2 (count $abbreviations))
        set abbr_name $abbreviations[$i]
        set abbr_expansion $abbreviations[(math $i + 1)]
        
        if not abbr -q $abbr_name
            abbr -a $abbr_name $abbr_expansion
        end
    end
end

# 调用函数设置缩写
setup_abbreviations

使用通用缩写(-U参数)的优势

# 在任意终端中执行,会自动持久化
abbr -U -a gs "git status"
abbr -U -a ll "ls -la"

# 这些缩写会自动保存,无需手动编辑config.fish

管理和维护

1. 备份当前缩写
# 导出所有缩写到文件
abbr -s > ~/.config/fish/my_abbreviations_backup.fish
2. 恢复缩写
# 从备份文件恢复
source ~/.config/fish/my_abbreviations_backup.fish
3. 重新加载配置
# 重新加载config.fish
source ~/.config/fish/config.fish

# 或者重启fish shell
exec fish

最佳实践建议

  1. 组织结构: 在config.fish中按类别组织缩写(Git、系统命令、导航等)
  2. 注释: 为复杂的缩写添加注释说明
  3. 避免冲突: 检查缩写名称是否与现有命令冲突
  4. 定期清理: 删除不再使用的缩写
  5. 版本控制: 将config.fish加入版本控制系统进行管理

示例配置文件结构

# ~/.config/fish/config.fish

# Fish shell配置文件

# ===================
# 环境变量
# ===================
set -gx EDITOR vim

# ===================
# 缩写定义
# ===================

# Git命令缩写
abbr -a gs "git status"
abbr -a ga "git add"
abbr -a gc "git commit"

# 系统命令缩写  
abbr -a ll "ls -la"
abbr -a la "ls -la"

# 其他配置...

bat 命令完整使用手册

基本语法

bat [OPTIONS] [FILE]...

主要选项参数

显示选项

参数 长参数 说明
-A --show-all 显示不可打印字符
-n --number 显示行号
-p --plain 纯文本模式,不显示装饰
--paging=<when> 分页模式:auto, always, never
--pager=<command> 指定分页器程序
--wrap=<mode> 文本换行:auto, never, character
--tabs=<T> 设置 tab 宽度

主题和样式

参数 长参数 说明
--theme=<theme> 设置主题
--list-themes 列出所有可用主题
--style=<components> 设置输出组件
--color=<when> 颜色输出:auto, never, always
--italic-text=<when> 斜体文本:always, never

语言和语法

参数 长参数 说明
-l --language=<language> 指定语法高亮语言
--list-languages 列出支持的语言

行范围和高亮

参数 长参数 说明
-r --line-range=<N:M> 显示指定行范围
-H --highlight-line=<N> 高亮指定行

文件处理

参数 长参数 说明
--file-name=<name> 指定显示的文件名
--diff 只显示 git diff 的内容
--diff-context=<N> diff 上下文行数

输出控制

参数 长参数 说明
--terminal-width=<width> 设置终端宽度
--no-config 忽略配置文件
--config-dir 显示配置目录
--config-file 显示配置文件路径
--cache-dir 显示缓存目录

帮助选项

参数 长参数 说明
-h --help 显示帮助信息
-V --version 显示版本信息

样式组件 (–style)

可用的样式组件:

  • auto - 默认组件
  • full - 所有组件
  • plain - 无组件
  • changes - Git 变更标记
  • header - 文件名头部
  • header-filename - 只显示文件名
  • header-filesize - 显示文件大小
  • grid - 垂直网格线
  • rule - 水平分隔线
  • numbers - 行号
  • snip - 省略标记

组合使用示例:

bat --style=numbers,changes file.py

常用主题

内置主题包括:

  • 1337
  • DarkNeon
  • Dracula
  • GitHub
  • Monokai Extended
  • Monokai Extended Bright
  • Monokai Extended Light
  • Monokai Extended Origin
  • Nord
  • OneHalfDark
  • OneHalfLight
  • Solarized (dark)
  • Solarized (light)
  • Sublime Snazzy
  • TwoDark
  • ansi
  • base16
  • zenburn

实用示例

基本使用

# 查看文件
bat README.md

# 查看多个文件
bat src/*.rs

# 纯文本模式
bat --plain config.json

语法高亮

# 指定语言
bat --language=json data.txt

# 查看支持的语言
bat --list-languages

行号和范围

# 显示特定行范围
bat --line-range=40:60 file.py

# 高亮特定行
bat --highlight-line=25 script.sh

# 高亮多行
bat --highlight-line=10 --highlight-line=20 file.txt

主题设置

# 使用特定主题
bat --theme=Dracula file.py

# 查看所有主题
bat --list-themes

# 预览主题效果
bat --list-themes | bat --language=txt

Git 集成

# 显示 git diff 风格
bat --diff file.py

# 只显示变更内容
git show HEAD:file.py | bat --diff --file-name=file.py

输出控制

# 禁用分页
bat --paging=never file.log

# 强制分页
bat --paging=always file.txt

# 自定义分页器
bat --pager="less -RF" file.txt

样式自定义

# 只显示行号和变更
bat --style=numbers,changes file.py

# 完整样式
bat --style=full file.py

# 最小样式
bat --style=plain file.py

配置文件

bat 支持配置文件来设置默认选项。配置文件位置:

  • Linux/macOS: ~/.config/bat/config
  • Windows: %APPDATA%\bat\config

配置文件示例:

# 设置默认主题
--theme="Dracula"

# 显示行号
--style="numbers,changes"

# 设置 tab 宽度
--tabs=4

# 自动换行
--wrap=auto

环境变量

  • BAT_THEME - 设置默认主题
  • BAT_STYLE - 设置默认样式
  • BAT_TABS - 设置 tab 宽度
  • BAT_PAGER - 设置分页器
  • BAT_CONFIG_PATH - 配置文件路径

快捷键(分页模式下)

当使用内置分页器时,支持以下快捷键:

  • q - 退出
  • j / - 向下滚动一行
  • k / - 向上滚动一行
  • f / Space / Page Down - 向下翻页
  • b / Page Up - 向上翻页
  • g - 跳到文件开头
  • G - 跳到文件结尾
  • / - 搜索
  • n - 下一个搜索结果
  • N - 上一个搜索结果
  • h - 显示帮助

与其他工具结合

# 与 find 结合
find . -name "*.py" -exec bat {} \;

# 与 grep 结合
grep -r "function" . | bat --language=grep

# 管道输入
curl -s https://api.github.com/users/github | bat --language=json

# 与 tail 结合查看日志
tail -f /var/log/nginx/access.log | bat --paging=never --language=log

性能优化

对于大文件:

# 只查看前几行
bat --line-range=:100 large-file.txt

# 禁用 Git 集成以提高性能
bat --style=numbers large-file.txt

网站公告

今日签到

点亮在社区的每一天
去签到