通过bash函数添加了生词本。可以将下述代码加入到.bashrc或.zshrc中,从而让kd命令能够自动将所有查询历史记录都追加保存到一个词汇表(vocabulary book)中。同时,增加了直接同步和github上的远程单词表的函数。
# 定义自己的一个github仓库用来实时更新单词表,我的是https://github.com/exaithrg/vocab_book
ExaithrgVocabBookDir=~/github/exaithrg/vocab_book
# 提供一个函数,让我在任意目录下均能直接向我的单词表github仓库提交更新
git_push_vocab_book_func() {
local current_dir=$(pwd)
cd "$ExaithrgVocabBookDir" || {
echo "Error: Failed to change directory to $ExaithrgVocabBookDir"
return 1
}
git add . || {
echo "Error: Failed to add changes"
return 1
}
git commit -m "auto update"
git push
cd "$current_dir"
echo "Auto update completed successfully"
}
# 下面的版本虽然实现简单,但是kd自身的颜色输出会因为重定向而被删掉
# Uncolored Version
# ff_func() {
# mkdir -p "$ExaithrgVocabBookDir"
# kd "$@" | tee -ai "$ExaithrgVocabBookDir/vocab_book.txt"
# }
# fff_func() {
# mkdir -p "$ExaithrgVocabBookDir"
# kd -t "$@" | tee -ai "$ExaithrgVocabBookDir/vocab_book.txt"
# }
# 为了保证kd仍然维持带颜色、下划线和斜体等格式的输出,而只将纯文本追加保存到一个.txt文件,使用如下函数:
# Colored Version
ff_func() {
mkdir -p "$ExaithrgVocabBookDir"
echo "========================================================================" >> "$ExaithrgVocabBookDir/vocab_book.txt"
unbuffer kd "$@" | tee -ai >(sed 's/\x1b\[[0-9;]*m//g' >> "$ExaithrgVocabBookDir/vocab_book.txt")
echo "" >> "$ExaithrgVocabBookDir/vocab_book.txt"
}
fff_func() {
mkdir -p "$ExaithrgVocabBookDir"
echo "========================================================================" >> "$ExaithrgVocabBookDir/vocab_book.txt"
unbuffer kd -t "$@" | tee -ai >(sed 's/\x1b\[[0-9;]*m//g' >> "$ExaithrgVocabBookDir/vocab_book.txt")
echo "" >> "$ExaithrgVocabBookDir/vocab_book.txt"
}
alias kdl='kd -t'
# 以ff替代td命令,因为一般翻译的时候左手在键盘上,右手摸着鼠标准备按右键向终端粘贴,所以最好翻译命令能非常容易的使用左手打出来,ff非常合适
alias ff='ff_func'
alias fff='fff_func'
# 有了ffpush命令后,可以在使用一段时间的ff hello/fff hello world之后,直接使用ffpush在任意路径下更新github仓库从而将词汇表更新到远程
alias ffpush='git_push_vocab_book_func'
通过bash函数添加了生词本。可以将下述代码加入到.bashrc或.zshrc中,从而让kd命令能够自动将所有查询历史记录都追加保存到一个词汇表(vocabulary book)中。同时,增加了直接同步和github上的远程单词表的函数。