跳转至

常用与备用软件、语言和框架

记性不好,这是本人备忘用的、曾经常用,或者正在使用,或者有意将来使用的的软件、语言和框架。

文本处理【老编辑必备】#

  • 正则表达式
  • TextPro,汉字的正则处理,批量正则替换
  • EmEditor,打开大文件,跨行正则处理,表格模式
  • VS Code,各种语言支持(比如办公常用的markdown),丰富的插件,Git版本控制
  • LibreOffice Writer,正则处理MS Word文档,命令行批处理。使用问题参见libreoffice使用问题

校对、AI 改稿#

  • https://effidit.qq.com/
  • https://smodin.io/

文件管理【老编辑必备】#

  • Total Commander,简称TC,文件管理
  • robocopy,快速备份
  • Everything,文件查找,可与TC双向整合,可局域网分享
  • 多文件全文正则查找与处理
    • 仅支持PDF
    • TC插件,wdx_xpdfsearch,同样使用pdftotext而速度不如dnGREP
    • PDF-XChange Editor,查看方便,可指定搜书签,跨行似乎有问题
    • dnGREP,比较轻便实用,支持正则表达式
    • Powergrep,强大,商业软件
    • AnyTXT Searcher,预先索引,索引时间可能较长(跟文件量有关)
  • 近似Total Commander的linux文件管理器
  • https://gcmd.github.io/
  • https://krusader.org/
  • https://midnight-commander.org/
  • 同步
  • Syncthing,网络
  • FreeFileSync,本地
  • 差异比较
  • git、TC、MS Word、LibreOffice Writer等软件内置的比较功能
  • WinMerge,开源软件
  • Beyond Compare,商业软件
  • meld

fd#

查找目录、文件名。

fzf#

模糊搜索。可结合rga。

rga#

文件名和文件内容查找。

rga是ripgrep的包装,文件内容查找时可处理的文件类型:PDFs, E-Books, Office documents, zip, tar.gz,等等。帮助信息:

1
2
rg -h
rga -h

词典与翻译【老编辑必备】#

  • GoldenDict,支持各种格式的词典,最常用的是.mdx
  • 有道词典,外文词典、双语用例、翻译,某些旧版支持本机的星际译王词典
  • 自动广告:有道词典笔2.0(硬件),给孩子用来学习很不错
  • 谷歌翻译、DeepL,翻译质量极好
  • OmegaT,翻译辅助,可用各平台翻译服务

语音识别,语音转文字#

  • openai/whisper
  • autosub,视频语音转写成字幕、翻译等,用到Google服务,需要翻墙
  • pyTranscriber, 图形界面分支

TTS/语音校对【老编辑必备】#

看稿子看到眼神恍惚的时候,不妨做一会儿语音校对;对于OCR、五笔打字而来的文本,形近字错误可能比较多,效果更好。

为了防止耳朵滑,可以预先处理一下文本,比如全分成词语,或分成单字,或者把顺序全部倒过来……总之,文本越没意思,越能避免大脑情不自禁地做完形填空,这样能更好地专注于单纯的声音。

听到耳朵恍惚的时候别忘了再切换回来~

  • Edge的朗读功能
  • AI模型tortoise-tts,仅有英语模型,训练一种语言模型需要一万小时以上语音材料
  • Python库edge-tts
  • TTS引擎
  • IVON Eric等,英语
  • neospeech Paul,英文
  • neospeech Liang,汉语
  • Microsoft Huihui,汉语,Win10自带的,读词语还算自然,但读错比较多,需要自己配置词典;句子层面还差点,机器感还比较浓
  • TextAloud,朗读工具

热键【老编辑必备】#

  • Autohotkey
  • 宏录制
  • tinytask;
  • Pulover's Macro Creator,录制Autokey脚本

学习相关#

  • Anki,记忆卡片,部分开源,iPhone版收费。社区活跃,推荐
  • Mnemosyne,记忆卡片,开源、实验,不支持iPhone
  • supermemo,记忆卡片,商业软件,复习机制最优,PC版强大
  • anymemo,记忆卡片,仅安卓适用。以前我常用,开发不活跃的,最新版是2018的
  • aboboo,通过视频、字幕学外语

图像和声音相关#

视频播放器#

  • vlc player,如果打开列表,有时可能会看不到画面,用ctrl+l闭关列表即可
  • MPlayer-corei7-r37875+gce466d0

直播、展示、串流#

屏幕标注与教学白板#

  • gink,标注功能功能多,可用图形界面(可隐藏)或快捷键,可与OBS整合
  • ppink,增强版
  • ZoomIt,屏幕的放大、标画、录制,以及定时器;简洁,主要依赖快捷方式;微软的免费产品
  • OpenBoard,Open-Sankoré的分支,电子白板,还没有用过
  • Microsoft Whiteboard,电子白板,还没有用过

截屏、录屏、串流#

  • ScreenToGif 录屏为动图、视频(无音频)
  • active presenter 制作互动教程(比如录频为软件操作教程),强大的标注能力
  • OBS-Studio 录屏,串流
  • Captura-Portable 录屏,串流。较为简单,没用过
  • 击键可视化
  • KeyCastr
  • carnac
  • 截屏
  • ShareX,开源软件,支持滚动截取长图,众多自动化设置;众多效率工具,如OCR
  • Snipaste
  • QQ,支持滚动截取长图

拷贝手机屏幕到电脑#

  • scrcpy 打开usb调试模式; 屏幕录制scrcpy -r filename.mp4; 如果屏幕设置了缩放比例,投屏界面会模糊。右键 scrcpy.exe,属性 - 兼容性 - 更改高 DPI 设置 - 勾选替代高 DPI 缩放行为。

视频格式转换#

  • HandBrake,格式转换

音视频转换:FFmpeg#

  • 截取视频
1
2
# -ss 始时; -i 输入源; -t 到时; -c:v 视频编码; -c:a 音频编码
ffmpeg -ss 00:00 -i original.mp4 -t 00:62 -c:v copy -c:a copy output.mp4
  • 图像序列转为视频:
1
2
3
4
5
ffmpeg -f image2 -r 24 -i img%03d.jpg -c:v libx264 -pix_fmt yuv420p out.mp4
# -f输入文件类型;
# -r 帧率,在-i前为输入帧率,在输出前为输入帧率;
# %03d表示三位数字序列;
# 多行命令各新开窗口并最小化依次等候处理:每行前加`start /wait /min`,后加回车空行
  • 拼接文件

详见

1
ffmpeg -i "concat:1.mp3|2.mp3" -c copy output.mp3

或预先做成文件列表mylist.txt

1
2
3
4
# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

然后:

1
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output

如果是相对路径,不需要-safe 0

如果wav录音文件使用ffmpeg -i input1.wav -i input2.wav -acodec output.wav   `命令拼接的录音最终输出的录音只有第一段。 原因是wav的音频编码格式不属于MPEG 类,所以需要加一个过滤器。解决办法:

1
ffmpeg -i input1.wav -i input2.wav -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' output.wav
根据录音数量需要修改的就只是[0:0][0:1]和n=2 这两个的数量。比如三个文件拼接就用:
1
ffmpeg -i input1.wav -i input2.wav -i input3.wav -filter_complex '[0:0][1:0][2:0]concat=n=3:v=0:a=1[out]' -map '[out]' output.wav

OverSpeed抓取的h.264封装成mp4文件:

1
2
ffmpeg -i source.264 -r 30 -c:v copy -f mp4 myOutputFile.mp4
# 输出帧率30;编码不变,原样拷贝copy
  • mp4转mp3
1
ffmpeg -i filename.mp4 filename.mp3

or

1
ffmpeg -i video.mp4 -b:a 192K -vn music.mp3

flash/swf#

  • ming, 使用php,perl,python生成swf文件
  • swftools, 用程序生成swf(flash)文件
  • MoyeaSWFtoVideoConverterPro_4.2

点阵图转矢量图如svg#

  • autotrace,命令行工具,有一些问题
  • Illustrator: 图像描摹,可用动作批处理
  • Inkscape: 临摹位图轮廓(命令行工具不能用此功能,可用Python操作)
  • 在线应用vectorizer
  • 在线应用picsvg
  • 商业软件Vectormagic

PDF转svg#

pdf2svg,inkScape包含此工具

svg优化#

  • svgcleaner,调参后压缩率最高
  • svgo,压缩率高(未调参)
  • scour,不可调参

图像处理,ImageMagick#

适合shell命令行操作,批处理。更复杂的逻辑控制可用Python+Pillow。

  • 将大图割成小,小图尺寸是124x146
1
magick convert src.jpg -crop 124x146 dest.jpg
  • 将白色转成透明
1
magick src.png -fuzz 5% -transparent #ffffff out.png
  • 转换svg文件为png,保留透明
1
magick -background transparent play.svg play.png
  • 反相(把rga三个通道反相,而保持a通道/透明不变)
1
magick in.png -channel rgb -negate out.png
  • 剪除白边/透明边(repage重置信息)
1
magick in.png -trim +repage out.png
  • 拼字游戏部件与字头处理
1
2
magick in.png -fuzz 0% -transparent white -trim -resize 80x80 -background transparent -gravity center -extent 80x80 -channel rgb -negate +repage out.png
# 输入图像、模糊量+白转透明、剪边、大边尺寸、透明背景+重心居中+扩展画布、通道rgb+反相、重置信息页、输出图像
1
2
# 给海报.png贴上ip_label.png标签(左上角对齐),生成海报vip.png
magick composite -geometry +0+0 vip_label.png 海报.png 海报vip.png
1
2
3
4
# 多图层叠
convert -size 100x100 xc:skyblue comp_resize.gif # 生成背景
composite -geometry 40x40+5+10  balloon.gif comp_resize.gif comp_resize.gif # 缩放和定位:40x40+5+10
composite -geometry      +35+30 medical.gif comp_resize.gif comp_resize.gif
1
2
3
4
5
# 拼接
convert -append in-*.jpg out.jpg
convert in-1.jpg in-5.jpg in-N.jpg +append out-in1-plus-in5-and-inN.jpg
# -append,垂直拼接,一列n行;+append,水平拼接,n列一行
# 更复杂的拼接用montage(蒙太奇)

PDF相关#

  • PDF-XChange Editor
  • SumatraPDF,快,支持多种文件格式,支持命令行,比如:
  • SumatraPDF.exe -named-dest -view "continuous single page" -zoom "180" -reuse-instance [filepath ...]
  • SumatraPDF.exe -page -view "continuous single page" -zoom "fit width" -reuse-instance [filepath ...]
  • Adobe Arobat
  • 常用处理工具
  • pdftk
  • stapler(pdftk的python绑定)
  • 比较PDF文件
  • diff-PDF
  • Acrobat
  • ABBY FineReader

电子书图片预处理#

  • Abbyy Finereader(整体校直)
  • Photoshop(模板调位置, 统一) 建立固定大小的模板,拉若干条参考线(中线、文本顶端线/下划线、左右边界线)      --> 一次性打开50张图片,再一张张拖入到上面的模板中,全选所有图层,居中,再一张张慢慢移位      --> 最终:【脚本】->【把图层导出到文件】-->【文件类型:TIFF, 图像压缩:LZW】(这样速度快!)      --> 还可以继续使用“老马”的 "ComicEnhancerPro" 将图片缩小化,转换格式为png
  • ComicEnhancerPro(转换格式、大小) 等*
  • PDG转PIC:使用“老马”的"pdg2pic
  • 图片词典PNG格式瘦身优化
  • pngquant https://pngquant.org/ pngquant is a command-line utility and a library for lossy compression of PNG images. The conversion reduces file sizes significantly (often as much as 70%) and preserves full alpha transparency. Generated images are compatible with all modern web browsers, and have better fallback in IE6 than 24-bit PNGs.

  • optipng http://optipng.sourceforge.net/

动画与3D建模#

  • ZBrush,雕刻
  • Cinema 4D(C4D),建模和动画,视频包装行业多用,容易上手,效果好,适合美工爱好者,可配合Houdini的动力、特效和AE的后期效果
  • MAYA,曲面建模,动画片
  • 3DMAX,建筑可视化,游戏建模,游戏动画
  • blender,动画,游戏,免费软件,极客风格
  • AE合称效果

OCR#

  • Abbyy,商业软件
  • Umi-OCR,支持PaddleOCR-json、RapidOCR-json等离线引擎
  • 屏幕、图片识别轻便的ShareX

常用商业软件的替代#

  • MS Word、WPS,换用
  • libreOffice Writer
  • vsCode+markdown插件
  • 排版
  • Adobe InDesign、方正飞翔,换用Scribus、ConTeXt
  • 方正书版,换用LaTeX
  • Adobe Photoshop,换用GIMP
  • Autodesk SketchBook,绘画,平板设备
  • Adobe Audition,换用Audacity
  • Adobe Illustrator,换用InkScape
  • 笔顺动画用ai批量转svg:批处理+动作

办公、日用#

文档转换#

demo

  • pandoc -o output.docx -f markdown -t docx filename.md

用MS Word批量转换工具转换当前路径下所有doc为docx:

1
for /R %f in (*.doc) do "C:\Program Files (x86)\Microsoft Office\root\Office16\Wordconv.exe" -oice -nme "%f" "%fx"

微软拼音输入法自定义时间#

1
2
%yyyy%-%MM%-%dd%
%yyyy%-%MM%-%dd% %hh%:%mm%:%ss%

静态网站生成器#

  • MkDocs,python语言,常用来写文档,也可以做博客,目前用的它
  • Pelican,python语言,多用来做博客,本站就是用它生成的,原来用的它
  • Zola,Rust语言

网页pdf下载(如国家标准全文#

控制台命令:PDFViewerApplication.save()

目前只能截屏,比如用Edge的GoFullPage插件

SSL/https证书自动连续申请工具#

https://github.com/acmesh-official/acme.sh

使用英文说明,中文说明可能陈旧、过时

linux中的win环境#

装机#

  • Driver Booster # 驱动管理

邮件客户端(已不多用)#

  • becky

编程相关#

语言学习列表#

  • 常用python, TypeScript/javascript, actionscript3
  • 以后学Kotlin。用于Android开发,替代/配合Java;可以编译成Java字节码,也可以编译成 JavaScript。“如果你正在为Android开发寻找一种替代编程语言,那么应该试下Kotlin。它很容易在Android项目中替代Java或者同Java一起使用。”
  • 关注Rust。用于替代C/C++,供python、javascript等绑定
  • pyo3,与python互相调用

python数据科学常用库#

  • numpy
  • pandas
  • SymPy,符号计算库
  • Matplotlib
  • plotly
  • dash,数据展示
  • scikit-learn
  • scikit-image
  • Scrapy,爬虫
  • 多平台应用:Kivy/KivyMD, Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS
  • 在线应用,数据展示
  • Streamlit/PyWebIO,用纯Python编写在线的数据科学APP(Streamlit的每次交互都会把脚本重新执行一遍)
    • streamlit-drawable-canvas,操作画布上的图像数据
  • Plotly Dash, 基于Plotly的生态,client-side state with a stateless server伸缩性较强,可作为服务,工业级别
  • voila(Voilà),Jupyter native, 把Jupyter notebooks转换成独立应用,适于探索与演示
    • ipycanvas, 画布绘图,可配合voila使用
    • Jupylet, 为强化学习、合成声音/现场音乐编程、儿童编程准备的Jupyter notebook环境的Python游戏库
  • panel, 基于Bokeh的接口工具和服务器,的支持Jupyter/IPython和一般Python环境,有授权模块,可多用户共享线程,地理空间方面的生态成熟
  • PyScript, 由Anaconda团队开发,基于pyodide,支持在浏览器运行Python,Python和JavaScript双向的对象与命名空间通信,可以控制web API,现成的UI组件

  • 代码运行平台

  • https://colab.research.google.com/
  • pyodide,编译到WebAssembly(可在网页运行)的Python科学计算技术栈,包括了NumPy, Pandas, Matplotlib, SciPy, and scikit-learn
  • mybinder.com
  • Heroku.com,应用部署平台
  • 临时分享本地服务
  • ngrok

视觉化/图形化#

数学可视化#

思维导图【老编辑必备】#

  • Freeplane,依赖java,开源,基于已经停止开发的FreeMind,文件是xml格式,还可以导出markdown
  • mermaid,可在vsCode、网页中使用
  • vsCode+markmap插件,可即时以思维导图形式呈现markdown文件的提纲
  • 可以导出可交互HTML(方拷入Pelican的markdown博客文章中)
  • 缺点:不同级别标题之间的文本不好处理(Freeplane称之为“节点明细”)

在网页中插入markmap的方法(同样可插入markdown):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
**如果没有看见思维导图,请按`F5`刷新**

<!-- 上代码起 -->
<div>

    <!-- 在下行中设置尺寸 -->
    <svg id="mindmap" style="width: 800px; height: 1600px"></svg>
    <script src="https://cdn.jsdelivr.net/npm/d3@6"></script>
    <script src="https://cdn.jsdelivr.net/npm/markmap-lib@0.7.11/dist/browser/view.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/markmap-lib@0.7.11/dist/browser/transform.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/markmap-view"></script>
    <div id="mm" hidden>
    <!-- 上代码终 -->

# 这里是你的markdown文件

## 标题

* 列表项
* 分为多行的
  列表列表项
* 详见官方文档

    <!-- 上面只留一个空行。下代码: -->
</div>

<script>
    markdown =  document.getElementById("mm").innerHTML;
    const data = markmap.transform(markdown);

    markmap.Markmap.create("#mindmap", null, data);
</script>
</div>

网络图#

https://github.com/visjs/vis-network

时间线/时间线2D图表#

https://github.com/visjs/vis-timeline

js压缩和混淆#

  • UglifyJS
  • jsFuck
1
uglifyjs  strokes.js -m -c -o strokes.min.js

开发工具#

  • VS Code,官方支持TypeScript,JavaScript,Python,可以连接WSL
  • Pycharm,Python专用,有社区版
  • Thonny: Python初学者IDE,自带最新版Python、pip、命令行、包管理器等;能看到变量名、堆heap、值的对应关系,分步调试时能看到代码的实际执行顺序和变量的变动情况。
  • Mu,儿童Python入门
  • as3:FlashDevelop

python打包exe: pyinstaller#

1
pyinstaller --onefile --noconsole --upx-dir=c:\python27\scripts setFlashInstanceName.py

H5游戏#

Python游戏框架#

Arcade:适合少儿Python入门的游戏框架

Rust游戏框架#

  • bevy,3D+2D,完善,最活跃,ECS模式
  • Fyrox,3D+2D,完善,有编辑器,OOP模式
  • macroquad,简单(没有物理引起等),2D

数字艺术#

  • nannou,Rust语言(也可以用上面的游戏框架)
  • p5.js,JavaScript语言,数字艺术,音频可视化,粒子,游戏(继承自Processing)
  • p5,Python3语言,适合儿童编程入门(目前在Windows上运行会有诸多问题
  • 可以利用各种Python库,以及开发环境辅助功能
  • 帧率略差
  • 部分接口可以手动转写成p5.js代码,在线展示
  • pyp5js,从Python到P5.js的转写器(因此无法通过编辑器获得代码编写辅助
  • 方便在浏览上使用
  • API与p5.js高度兼容
  • 用Transcrypt转写帧率更高,但支持的库有限,适合Python入门
  • 用pyodide运行在WASM中则文件较大(官方库可离线),帧率低,但支持很多科学库

音乐合成#

  • pyo is a Python module containing classes for a wide variety of audio signal processing types。
  • csound
  • supercollider
  • chuck,主要用于computer music的创造性演出,live coding

字体#

  • FontForge

VS Code插件与设置#

  • 编辑、显示
  • cursor align,多光标对齐
  • insert seq,插入序列文本(数字、字母)
  • Increment Selection,数字和枚举的升降
  • Incrementor
  • markdown
    • markdown preview enhanced(MPE),格式支持、预览
    • past image,插入图片【已经有官方功能支持】
    • markdown table,表格
    • markdownlint,markdown格式检查
    • Typewriter Auto-scroll,自动卷纸(像打字机保持焦点居中)
    • Markdown Fiction Writer,小说作家
  • Rainbow csv,通过颜色区分csv各列
  • typst lsp,typst支持
  • vscode-pdf,显示pdf
  • anki for vscode,制作anki卡片
  • Open,通过鼠标右键用系统默认软件打开文件
  • Tabnine,AI自动补全
  • CodeSnap,代码快照
  • Print,通过浏览器打印markdown和上色代码
  • Code Spell Checker,外文拼写检查,特定词语提醒
  • vscode-textlint,文本检查
  • Multi-purpose Hanzi and Word Counter,字数统计
  • 图像图表
  • mermaidjs库,可直接载入markdown(或通过插件如MPE)预览、网页
  • 绘制示意图
  • Luna Paint,图片编辑器
  • 语言支持(仅列不常见的语言)
  • ConTeXt Syntax,语法高亮
  • Metapost,语法高亮
  • Typst LSP,Typst语法高亮、预览等
  • 微软Jupyter系列
  • 项目管理
  • favorites,文件收藏
  • 开发
  • WSL,打开WSL文件夹
  • save and run,保存文件时执行命令
  • live server,服务器
  • live share,代码实时分享、协作
    • Live Share Pomodoro,番茄工作法时钟
    • Live Share Whiteboard
  • git
  • git history
  • gitlens
  • Partial Diff,文本片段比较
  • 备用
    • Git Graph
    • Diff Viewer,视觉化比较
    • Whole Diff,汇总比较
    • Git History Diff
    • Diff Folders,文件夹比较

把当前活动的缩进块的引导线设为红色:

1
2
3
"workbench.colorCustomizations": {
    "editorIndentGuide.activeBackground1": "#ff0000",
},

在Windows中查看插件文件夹: %USERPROFILE%\.vscode\extensions

Python CLI(命令行界面)库#

自然语言处理#

操作系统#

win 链接:

  • 符号链接(symbolic link,依赖链接对象)
  • 文件 mklink linkname.txt target.txt
  • 目录(路径/文件夹)mklink /D d:\develop \\138.20.1.141\e$\develop
  • 仅本地目录的软链接(junction)mklink /J "e:\test" "f:\test"
  • 文件的硬链接(hard link,不依赖链接对象,数据别名)mklink /H linkname.txt target.txt

评论