一些工具推荐
这篇文章主要是推荐我在 linux 下喜欢的一些软件/插件, 虽然最近看到的某篇文章说“停止沉迷工具”,如果一样东西足够好、能够完成工作,那就不妨坚持用下去,我十分认同这观点,只是希望能给那些准备尝试某类工具的人一个参考。
Kitty
官网:https://sw.kovidgoyal.net/kitty/
一个功能丰富、支持 GPU 加速的终端程序,官方文档非常齐全。
在终端显示图片:
alias icat="kitty +kitten icat"
Tmux
文档:https://github.com/tmux/tmux/wiki
终端复用器,linux 下非常实用的分屏工具,此外还可以自定义终端的显示、保存工作区。
WARNING
虽然kitty 官方文档里认为终端复用器是个bad idea
,应该使用 kitty 丰富的原生功能替换掉它们,但目前来说我认为 tmux 就属于已经足够好、能够完成工作的那类工具,或许等 kitty 再完善一些后会考虑下。
因其配置文件支持 shell,所以可以整很多活,除了之前文章提到过的获取通知展示到状态栏,甚至可以根据当前窗口的运行命令来设置图标:
w_icon="#(if [ #W == nvim ];then echo ;elif [ #W == zsh ];then echo ;else echo #W ;fi;)"
推荐插件:
- tpm 插件管理器
- tmux-yank 同步系统剪贴板
- tmux-jump 快速跳转,配合tmux自带的vi模式,可以快速复制终端上的任意字符串
- tmux-fzf-url 识别终端上的所有链接到 fzf 甚至能从包名猜出 github 连接:
Zsh
oh-my-zsh:https://ohmyz.sh/ 功能强大的 zsh 框架
推荐插件:
# .zshrc
plugins=(
git # 简化git命令
vi-mode # 以vi模式编辑输入
z # 快速访问文件夹
fzf # fzf插件
# 第三方插件,需要手动下载
zsh-syntax-highlighting # 输入检测
zsh-autosuggestions # 输入建议
)
安装zsh-syntax-highlighting&zsh-autosuggestions:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Neovim
训练自己对无聊的忍耐力...
构思代码或许是种享受,但写代码的过程却很无聊,如果你也对此感同身受,不妨借助 vim 快捷键让自己在像是在玩游戏似的写代码。
自 Neovim 出来以后,vim 社区日新月异,插件彼此兼容,现在只需要少量 lua 脚本就能将其配置成一个功能完善的 IDE (除了 PHP 这种对 LSP 没啥支持的语言。
因为插件更新换代比较快,所以这里按功能分类,只推荐一些非常有必要的功能及其插件:
- 插件管理: folke/lazy.nvim
TIP
强烈建议大家去看看 lazy.nvim 作者给出的最佳实践 LazyNvim,配置了很多常用插件,而且本身就可以作为一个插件加入到你的配置中,让你方便地自定义它的功能
- 快速跳转: folke/flash.nvim
- 自动补全符号: echasnovski/mini.pairs
- buffer: akinsho/bufferline.nvim
- LSP: neovim/nvim-lspconfig
- 模糊查找: nvim-telescope/telescope.nvim
CAUTION
在使用其内置 lsp_references 函数查找引用时会像某些 IDE 那样如果只有一个引用则直接跳转从而导致 bug,不想做多余配置的我就同时用了ibhagwan/fzf-lua来专门代理 lsp
- git 信息: lewis6991/gitsigns.nvim
借助这个插件还可以方便的进行 git 相关操作,我设置了如下快捷键
gs
查看当前块的修改WARNING
在前面提到的 zsh git 插件中短指令
gd
才是git diff
,但gd
这个快捷键一般用来goto definition,这种无前缀的快捷键最好只用于你认为最常用的操作。gco
撤销当前块的修改[g
跳转到上一个修改块]g
跳转到下一个修改块
- 状态栏: nvim-lualine/lualine.nvim
- 文件浏览:echasnovski/mini.files
mini.files 还可以像编辑文本那样编辑文件/目录,使用
=
同步到系统,非常好用 - 缩进: lukas-reineke/indent-blankline.nvim 配合echasnovski/mini.indentscope用来高亮并且动画化地展示当前缩进线
- 注释: echasnovski/mini.comment
- 其他
- UI: folke/noice.nvim
- theme: folke/tokyonight.nvim
- lint stevearc/conform.nvim
Miniflux
一个用 golang 编写的开源 RSS 阅读器,和其他网页端应用不一样,miniflux 没有使用任何 js ,每次打开页面有种看报纸的感觉。并且支持自部署,在服务器上搭建后就可随时多端访问。
如何从 Docker 构建,docker-compose.yml
:
services:
miniflux:
image: miniflux/miniflux:latest
ports:
- "80:8080"
depends_on:
db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=test123
db:
image: postgres:15
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
Logseq
一个开源且支持双链的笔记应用,与其说是笔记,不如称其为日志系统,因为不像传统笔记分层分类, logseq 以日记为核心,段落为单元,借助双链系统非常适合用来管理碎片化知识。由于没有了规范的限制随便找个地方就可以记录天马行空的想象或者胡言乱语。适合用来发病
WARNING
注意这软件在 AUR 下的包是:yay -S logseq-desktop-bin
Calibre
用来管理 kindle 电子书的神器。
Scrcpy
Github: https://github.com/Genymobile/scrcpy
在 PC 上操作安卓设备。
Chrome/Edge/FireFox
推荐插件:
沙拉查词
选词翻译后的那段图标动画可能是我一直喜欢这应用的原因。
Surfingkeys
以 vim 模式操作页面,相较于 vimium 功能更加丰富,比如自带 vim 编辑器来操作输入框或导航。
Infinity
一个浏览器新标签页扩展,虽然不能在这个标签页内使用 surfingkeys ,但架不住它朴实无华的好用.
沉浸式翻译
双语翻译,(现在还支持 YouTube 字幕