🤖 AI 声明:本文内容由 AI 助理根据博主真实的配置操作日志整理而成,旨在分享 Termux + Windows 远程开发的配置细节与最佳实践。

前言:从“记录”到“行动”

上一篇文章《手机重构计划》中,我把杂乱的安卓手机重构为了一个清爽的 数字生命终端。我们把应用分为了“三屏”,并利用 Markor 实现了灵感的毫秒级捕获。

但这还不够。

Markor 很好,但它只能处理纯文本(Markdown)。作为一名全栈开发者,我的 Project Universe 里不仅仅有笔记,还有几十个 G 的代码仓库。

当我在被窝里刷着手机,突然想到白天写的代码有一个逻辑漏洞;或者服务器报警,需要紧急修改一行配置。此时,Markor 束手无策。难道我必须爬起来打开台式机吗?

不。既然我的手机已经是“终端”了,那就让它更硬核一点。

今天,我们将补全“数字生命体”交互的最后一块拼图:利用 Termux 将手机变成一把远程手术刀,直接插入 Windows 台式机的核心,进行代码级的外科手术。


一、 架构思路:瘦客户端 (Thin Client)

很多人在 Termux 里安装 Node.js、Python,试图把手机变成服务器。结果是:手机发烫、续航崩盘、操作反人类。

我的思路相反:手机只做 IO(输入输出),电脑负责 Compute(计算)。

  • 本地 (手机):只运行 SSH 客户端。负责接收触摸和键盘指令,渲染字符画面。
  • 远程 (电脑):运行 PowerShell 7、Neovim (LSP)、Lazygit。负责所有的语法分析、编译和 Git 运算。

二、 打通任督二脉:Windows SSH 调优

Windows 自带的 OpenSSH Server 很方便,但默认配置极其难用。为了达到“秒连”的体验,我做了三个关键手术。

1. 权限清洗(解决免密登录失败)

这是最大的坑。Windows 默认策略下,管理员账号无法使用用户目录下的 .ssh/authorized_keys,导致配置了公钥还得输密码。

  • 手术:修改 sshd_config,注释掉 Match Group Administrators
  • 排异:对 .ssh 文件夹进行 ACL 权限清洗,只保留 SYSTEM 的权限。

2. 更换大脑(PowerShell 7)

默认 SSH 进去是 CMD,功能简陋。我将 termux 的入口添加 -t pwsh, 也就是 PowerShell 7 (pwsh)。这不仅仅是为了好看,更为了能运行我编写的自动化脚本。

3. 编写导航脚本 p

连上电脑后,面对 projects 下的几十个项目,手动 cd 是不可能的。 我在 PowerShell 的 $PROFILE 里注入了一个名为 p 的函数:

  • 它是一个无限循环的菜单。
  • 输入 p,列出所有项目。
  • 智能识别:如果选中的是 Git 仓库,自动启动 Lazygit;如果是普通目录,则进入子目录继续选。

三、 武器库:Lazygit + Neovim 联动

这是在手机小屏幕上高效写代码的核心。我不需要鼠标,不需要复杂的 IDE 界面,只需要两个工具的 “双向奔赴”

1. 宏观指挥:Lazygit

在手机上敲 Git 命令是低效的。Lazygit 提供了完美的 TUI(终端图形界面)。

  • 操作:用音量键或手指触摸翻页,空格键暂存文件,c 键提交。
  • 配置:我在 config.yml 里设置了 editCommand: 'nvim'
  • 场景:浏览 Diff 时,发现一行代码写错了?直接按 e,瞬间跳转到编辑器。

2. 微观手术:Neovim (现代化配置)

为了适配手机操作,我抛弃了老旧的 Vim 配置,基于 Lazy.nvim 重写了 init.lua

  • 触控优化 (核心)

    vim.opt.mouse = 'a' -- 开启全模式鼠标支持
    

    这一行配置改变了一切。想改哪里?手指直接点哪里。 光标瞬间定位,体验堪比原生 App。

  • 剪贴板打通

    vim.opt.clipboard = 'unnamedplus'
    ```
    手机复制报错信息 -> 电脑 Neovim 粘贴;电脑代码复制 -> 手机微信发送。无缝衔接。
    
  • LSP 智能补全: 通过 Mason.nvim (v2.0),我让 Neovim 拥有了 VS Code 级别的代码理解能力。虽然是在手机上看,但背后是台式机 i5 处理器的算力在支撑。


四、 终端体验优化

为了让 Termux 这个“显示器”更好用,还需要一些微调。

1. 视觉:Nerd Fonts

为了让 Lazygit 的文件图标、Git 分支图标正常显示,我给 Termux 挂载了 JetBrainsMono Nerd Font。没有乱码,只有赏心悦目的界面。

2. 触觉:定制键盘栏

手机输入法没有 ESCCtrlTab 键,写代码很痛苦。 我在 ~/.termux/termux.properties 里定制了一排专用的 Coding Bar

extra-keys = [ \
 ['ESC','|','/','HOME','UP','END','PGUP'], \
 ['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN'], \
 [':','-','_','"',"'",'(',')'] \
]

特别把 : (冒号) 放在了第一层。现在保存文件只需要:点击屏幕上方 -> 点 : -> 点 w。行云流水。


五、 最终形态

现在,我的 Project Universe 拥有了最完整的交互层级:

  1. 浅层交互 (Markor)

    • 场景:排队、走路、灵感闪现。
    • 动作:掏出手机 -> 打开 Markor -> 语音转文字/打字 -> 同步到 Obsidian Inbox。
  2. 深层交互 (Termux + Neovim)

    • 场景:被窝、沙发、突发 Bug 修复、代码审查。
    • 动作:打开 Termux -> 输入 pc 连回家 -> 输入 p 选项目 -> Lazygit 检视 -> Neovim 修改 -> 提交推送。

手机不再是消耗注意力的玩具,它变成了我连接数字大脑的 Neural Link (神经接口)

无论身在何处,只要有网络,我就能掌控我的整个数字宇宙。


本文是「数字生命体」构建系列的第四篇。