天气越来越冷,不太想开电脑
手机当然也能写代码,终端有termux,能装各种linux。
c语言c++有c4droid,android/java有aide,python有qpython。
再不济用在线编译器也能过过瘾。
个人用c#想写点的命令行游戏(爱好者,非干活),所以termux也足够了。
termux下载。
不要去google play下载。我也不知道为啥,好像包是旧的。
Termux | The main termux site and help pages.
上面是termux的官网,注意看,你可以上github下,也可以装个f-droid(一个应用商店)下载
安装linux。
pkg install proot-distro
proot-distro install archlinux
proot-distro login archlinux
最后一句是登陆到你安装的linux,使用exit命令可以退出linux。
proot-distro是一个基于proot的工具,用于方便地创建和管理在Linux系统上运行的用户空间容器,无需root权限。
在下比较喜欢arch。所以安装了arch,你也可以通过下面的命令查看能安装哪些linux发行版:
proot-distro list
安装dotnet。
同样是上文档
在 Linux 发行版上安装 .NET - .NET | Microsoft Learn
提供了好几种安装方法,我是用脚本安装。
在 Linux 上不使用包管理器的情况下安装 .NET - .NET | Microsoft Learn
arch下载wget,一开始好像没有wget
pacman -S wget
下载脚本并开始安装,可能下载包会很慢,下的时候会输出一段链接,你可以包链接复制一下用wget另外下载(下载到当前目录就行),下完再安装。
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh
./dotnet-install.sh
你也可以指定安装的dotnet版本,具体看上面的文档,不过不要下错了。
这个会下很久,大概有200M左右,耐心即可。
环境变量。
下好后要稍微配置一下环境变量。
在 Linux 上不使用包管理器的情况下安装 .NET - .NET | Microsoft Learn
只需修改一下~/.bashrc文件,手动source或者重启终端就可以了,没有vim建议使用exit命令退出linux再通过pkg安装,你在这里安装到回到linux也能用。
vim ~/.bashrc
在文件末尾加上
export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
export DOTNET_GCHeapHardLimit=1C0000000
最后一行主要是解决这个报错的
ubuntu@localhost:~$ dotnet --version
GC heap initialization failed with error 0x8007000E
Failed to create CoreCLR, HRESULT: 0x8007000E
crash with 0x8007000E error on .NET 7.0 · Issue #85556 · dotnet/runtime (github.com)
至此,dotnet sdk环境算是安好了。
[DLC]文件管理器访问termux
如果想通过termux访问storage文件夹,可以使用如下命令:
termux-setup-storage
在下的手机没法root,所以通过mt文件管理器访问termux所在的文件夹,termux的home目录在
/data/data/com.termux/files/home
而proot安装的linux的目录在……
/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/
呃,具体看如下文章,刚找到,很有帮助。
在termux中安装的proot,如何在第三方文件管理器中查看其文件目录 | 博客 (ewt45.github.io)
大概是通过建立软链接然后用mt管理器访问到安装的linux目录。
ln -s /data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/
如果怕手机空间太小,想把linux安装到sd卡上,可以看下这个issue,在下还没有折腾过。
Can Proot be used to access Linux distribution from external storage such as SD card · Issue #50 · termux/proot (github.com)
[DLC]用vim写dotnet
vim推荐插件omnisharp-vim:
OmniSharp/omnisharp-vim: Vim omnicompletion (intellisense) and more for C# (github.com)
可以通过vim plug安装。
一开始没有安装vim plug参看以下文档安装
junegunn/vim-plug: :hibiscus: Minimalist Vim Plugin Manager (github.com)
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
然后编辑~/.vimrc配置文件
call plug#begin()
call plug#end()
这就算安装好了。
安装插件的流程就是编辑~/.vimrc配置,然后再在vim里执行以下命令即可自动下载
:PlugInstall
推荐在linux内安装,如果你退出到termux安装的话再回到linux其实是不生效的。
安装方法也是编辑~/.vimrc如文档所示
Example config · OmniSharp/omnisharp-vim Wiki (github.com)
打开你vim界面安装上即可。具体是会自动安装一个OmniSharp 服务器,可以通过以下命令安装
:OmniSharpInstall
但是这个默认要依赖mono运行(我也不是很明白)。不急,可以先去安装mono
pacman -S mono
安装好mono之后还有一个dotnet版本运行不了,具体解决在~/.vimrc末尾(或者其他位置也行)加入:
let g:OmniSharp_server_use_net6 = 1
这个时候重新安装OmniSharp服务器就不会报错了。
配置并安装好的omnisharp-vim可以补全代码,不过手机有点慢就是了,其他功能详见文档
OmniSharp/omnisharp-vim: Vim omnicompletion (intellisense) and more for C# (github.com)
最后
后续会更新一些其他学习总结。
好冷,发布,下了……