Skip to main content

3 posts tagged with "mac"

View All Tags

· 3 min read

命令行

  1. fish 一款 shell,自带了路径补全、强大的命令补全及建议。
    内置了历史命令补全(输入命令的一部分,会从历史纪录里面提示相匹配的命令,按上下键进行建议的命令的切换。)
    默认支持 git 的分支显示。

  2. exa 一款 ls 命令的替代品。支持丰富的颜色显示(例如文本文件、图片、压缩包等用不同颜色区分;文件的权限(wrx)也用不同颜色区分)。 默认显示容易阅读的形式(例如文件大小默认显示传统 ls -h 的形式)。 支持 git 文件的显示,标记文件的修改、暂存状态。 默认支持 tree 形式显示(类似 tree 命令)。 支持文件图标显示。 支持排序和筛选。 更多特性可查看:https://the.exa.website/features

  3. zellij 一款终端复用的工具。

  4. tokei 一块强大的代码行数统计与分析工具。支持按目录、语言等方式分类显示。支持排序、排除等操作。

  5. hexyl 一款二进制显示工具,拥有丰富的色彩显示。 另外,也推荐 vscode 的 Hex Editor 插件,图形化界面可能更方便。

  6. helix, 用 rust 开发的命令行的vim-like编辑器。

    • 熟悉 vim 的上手会比较快;
    • 开箱即用的 file-picker ,buffer-picker;
    • 支持 LSP(这样就可以实现代码补全、代码错误检查了)、支持 Multiple selections;
    • Space 模式和选项窗口提示很方便(各种按键导航和提示),用户体验不错。
  7. zellij,基于 rust 实现的终端复用工具(类似tmux)。

    • 导航和操作提示,注重用户体验。

· 4 min read

最近在升级一个用 swift 写的 mac 平台的 app,其中的核心代码是用 Go 写的。 因此,需要在 swift 端调用 Go 代码。 这个倒是有现成的方案,就是将 Go 的 api 导出为 C api,然后在 swift 端调用 C 的 api 即可。

问题就出在跨语言调用这块,调用核心的 Go api 时,直接给抛出了一个 EXC_BAD_ACCESS 错误:

error: memory read failed for 0x0
Thread 7: EXC_BAD_ACCESS (code=1, address=0x4).

· 9 min read

面对 mac 中浏览/下载/上传文件到远程linux服务器这个需求,无论是在终端中使用 sftp 交互命令, 还是使用一些 sftp 客户端(如 Termius,transmit),都有或者或那的不方便。 最大的问题是其不能很好地和本地文件系统融合,例如 Termius 无法通过拖拽的方式将文件拷贝到本地, 也无法通过 command + c/v 进行文件拷贝等等。 其他的需求就似乎更难满足了,像查看远程的 pdf 或者图片文件也显得比较麻烦(先下载到本地,在打开), 更别说类似于finder里面的"快速查看"功能来浏览远程文件或者显示简介了。

因此,或许我们可以将远程的文件挂载到本地目录,但是 mac 系统本身只提供了 SMB/CIFS、NFS、FTP、AFP 等服务连接, 似乎不能很好地满足需求(如果你是远程服务器等管理员的话,也可以配置linux 的 nfs 服务)。
通过一番探索,发现 sshfs 可以实现这个的需求。 本文后续内容主要就是一点关于 mac 上 sshfs 的配置步骤与使用方法的。

安装 OSXFUSE

brew cask install osxfuse # 3.11.0

另外,从 brew cask info osxfuse 的信息来看,需要重启系统才能生效。

You must reboot for the installation of osxfuse to take effect.

遂重启系统。安装完成后,在系统的偏好设置里面,就可以看到 FUSE 扩展的图标及信息了。 fuse-ext-in-system-preferenece