Posts for: #Tech

Mac 下 neovim 里自动 esc 切换输入法

1. 安装 macism

https://github.com/laishulu/macism

brew tap laishulu/homebrew
brew install macism

2. nvim 插件里加一个 im-select.lua

~/.config/nvim/lua/plugins/im-select.lua

return {
  "keaising/im-select.nvim",
  config = function()
    require("im_select").setup({
      -- 在普通模式下,默认使用的英文输入法
      -- 请将下面的值替换为您在上一步中获取到的英文输入法标识符
      default_im_select = "com.apple.keylayout.ABC", -- macOS 示例
      -- default_im_select = "1033", -- Windows 示例
      -- default_im_select = "keyboard-us", -- Linux (Fcitx5) 示例

      -- 设置触发切换的事件
      set_default_events = { "InsertLeave", "CmdlineLeave" },
      set_previous_events = { "InsertEnter" },

      -- 保持安静,当找不到依赖的命令行工具时不发出警告
      keep_quiet_on_no_binary = false,

      -- 异步切换输入法,避免卡顿
      async_switch_im = true
    })
  end,
}

npm install -g @google/gemini-cli

Homebrew 的更新过程太慢了,而且 gemini-cli 总是弹出升级提示,很烦。于是决定卸载它:

brew uninstall gemini-cli

改用 npm 来管理:

npm install -g @google/gemini-cli

Mac 下开启 sshd 登录后马上断开连接的一种可能

如果"共享 → 远程登录"里选择了"只允许这些用户…",系统会用 com.apple.access_ssh 做白名单。不在组里就会被 PAM 拒绝

# 查看是否在白名单组
dseditgroup -o checkmember -m "$USER" com.apple.access_ssh

# 不在的话加入(需要管理员密码)
sudo dseditgroup -o edit -a "$USER" -t user com.apple.access_ssh

# 也可放开给所有用户(图形界面改:系统设置 → 通用 → 共享 → 远程登录,选"所有用户")

改完重启 sshd:

sudo launchctl kickstart -k system/com.openssh.sshd

开源超轻量的 Flutter 聊天库

这两年,大量 AI ChatBot 涌现。不少人在用 Flutter 做跨平台应用时,想加个简单的 AI 聊天,却被一堆 IM 方案搞得头大——我们就是这样。

所以同事做了一个超轻量的 Flutter 库:simple_chat。

它能让你几行代码就把聊天界面跑起来,通吃 iOS、Android、Web。

之所以叫 simple,是因为它真的是主打简洁。你不用拉一大堆依赖或后端配置,几分钟就能搞定。UI 也很好改,如果想要自己定制聊天气泡、字体、颜色,分分钟就能上手。

有人会问,能用它干什么?

常见的 IM、客服、AI 聊天机器人都能用得上,毕竟它支持消息发送状态、群聊、未读消息指示,还能直接选图、预览图片,算是“麻雀虽小,五脏俱全”。

如果你对那些大而全的 Stream、Sendbird 没什么兴趣,只想要个纯前端的简洁方案,simple_chat 或许就是你想要的。同事 Lawrence 还在不断迭代这个项目,未来计划支持更多自定义选项、多媒体消息、实时打字状态等功能。

项目开源,如果你也想帮忙或者提想法,不妨去看看:

simple_chat 能让 Flutter 开发者省去很多麻烦,专注业务逻辑,而不是陷在复杂的聊天框架里。

再上一个 simple_chat 的小应用案例:EatVenture——觅食历险产品,里面嵌了 simple_chat,如图:

我用 EatVenture 解决俩问题:

  1. 在海外找餐馆

  2. 在餐厅看不懂菜单拍一下识图推荐

EatVenture 更多信息:https://tealseed.com/eatventure/。

为什么我不喜欢 Notion 了

这两年,我比较重度地使用 Notion,在小团队,甚至跨团队的项目,用 Notion 协作都很方便。不过,我也开始厌烦它了。我反感的主要的原因有这么几个:

  1. Notion 已经成为“吃内容的怪兽”,内容输入很愉悦,但希望将内容导出很困难,是私有格式,全部在他们的服务器上,可以导出,但导出的数据问题很多,并不方便真正想迁移的人——从这个角度,想从 Notion 搬走,就得做好放弃在里面的全部数据的准备。

  2. 不是本地存储、本地优先,数据都在云端,无法离线使用。

  3. Notion 逐渐从一个类似乐高那样的灵活的小产品,变成了全家桶,有日历、有 AI、有邮箱,而且不同功能相互融合交织,不能关闭。

至于性能差、经常有闹心的细节问题(比如:看过的通知不会消除、从 Notion 往外复制几段内容经常不好选择等等),相比之下还都能忍。

想来也有趣,总在重复上演少年斗恶龙然后变成恶龙,越做越强之后,优势反而变成弱点,这种一体两面的转化,还真有些哲学意味。

现在我的选择是:

  • 团队协作,我就不折腾了,还是用 Notion,只是留个心,重要的文档存一份 pdf。

  • 自己的工作,用本地的纯文本文件 + GitHub 存储——编辑器可以随便换——Obsidian、vscode……