termuxでNim言語の環境構築

はじめに

これはNim Advent Calendar 2019 25日目の記事です。

目次

termuxとは

Android

世の中で流行ってるスマホ!その中のAndroidって、結局はLinuxのディストリビューションの一つなわけで…

ということは、環境を用意してあげればLinuxで行えるCUIの操作をスマホでもできる…

出来たら、気軽にコードの練習ができると!最高!

ってわけでこの環境を実現してくれるtermuxを用いて、スマホでNim言語を動かしてみようというわけです。

termuxとは

termuxとはAndroiⅾ用のターミナルエミュレータとなります。しかし、Androiⅾのハードウェアに対するアクセスの制限という特性上、管理者権限を利用したコマンドの使用ができないようです。

termuxのメインページ

パッケージ管理には、pkgというマネージャーがあります。ですが、pkgはaptのラッパーなので、実際のパッケージ管理マネージャーはaptとなります(ですのでautoremoves等はaptコマンドを用いて行います)。他にもdpkgを利用することも可能です(互換性の問題で基本は動かない)。
また、複雑ですがArchLinuxのpacmanにすることもできます。

termuxのパッケージ管理に関して

ちなみに…

https://wiki.termux.com/wiki/FAQ#Can_I_do_hacking_with_Termux.3F

リバエンもできちゃうとかすごい!

他にもメインページのアドオンの欄を見てもらえばわかるかと思いますが、APIを追加することでWi-Fiの操作をすることができたり、Home画面からシェルスクリプト等を実行することのできるウィジェットを配置することが可能なようです。

Termux:Widgetに関して

他にもやりようによっては、X11も入れて使用することができるみたいですね。

インストール方法

キーボードはデフォルトのだとすごく使いにくいので、Hacker's Keyboardをおすすめします。このキーボードを使うと修飾キーが簡単に使用できます。

play.google.com

まぁあんまし日本語で打つことはないと思うのですが、Google 日本語入力を使うと日本語入力もできます。

play.google.com

あとは、バイブレーションがうっとおしくなるので、ユーザ補助⇒バイブレーション⇒タッチ操作時のバイブレーション
をOFFにしておいた方がいいです。

では、termux本体のインストール方法に移ります。

GooglePlay

play.google.com

インストール後に、自動的に各種設定は行われるので起動したてでも普通に使用することができます。
f:id:No000:20191225212454p:plain 起動後はこんな感じ

しかし、共有フォルダにはまだアクセスできません。

この際に、左側から右側にフリップしてみると白い画面っぽいのが出てくると思います。
それが、セッションの分割とキーボードが非表示の際に、再度表示してくれます。
f:id:No000:20191225212618p:plain まずは、pkgのアップデート等をします。

pkg update && pkg upgade

f:id:No000:20191225224438p:plain

これによりパッケージをインストールする準備が整いました。

次に、ストレージにアクセスする設定をします。この操作は、Andoroid6.0以降でないと使用できないようです。

termux-setup-storage

f:id:No000:20191225213515p:plain

その後に、ストレージアクセス許可を求められます。
f:id:No000:20191225213531p:plain 許可を行い、lsと打つと、 f:id:No000:20191225213546p:plain とでるようになります。
このstorageの中には、各種ストレージへのシンボリックリンクが貼られています。

~/storage/shared
共有フォルダ(sdcard)へのシンボリックリンク

~/storage/downloads
システムブラウザ等からダウンロードしたデータを置いておくディレクトリ

~/storage/dcim
内蔵のカメラで撮影したもの写真等が置かれるディレクトリ

~/storage/pictures
通常、画像ファイルを管理しているディレクトリ

~/storage/music
通常、音楽ファイルを配置しているディレクトリ

~/storage/movies
通常、動画ファイルを配置しているディレクトリ

~/storage/external
外部ストレージのtermuxプライベートフォルダ(私は外部ストレージを使用していないので未確認)

ほかのディレクトリはroot化しないとアクセスは厳しいです。

storageに関して
https://wiki.termux.com/wiki/Termux-setup-storage

Nim言語とエディタのインストール

まずはNim言語

pkg install nim

関連パッケージもインストールするのでなかなか時間がかかります。
f:id:No000:20191225224229p:plain nimbleのライブラリのアップデート

nimble refresh

f:id:No000:20191225224612p:plain お次は、エディタ
Vimの場合

pkg install vim

emacsの場合

pkg install emacs

一応nanoエディタもあるよ!

pkg install nano

HelloWorld

自分はvimしかコマンドが分からないので、vimで編集します。
f:id:No000:20191225224725p:plain vimの設定はネット上にいっぱい転がっているので割愛、でも長押しでコピペできるのでめちゃくちゃ楽なはずです。

そして作業用ディレクトリを作って、hello.nimを作る

mkdir work
cd work
vim hello.nim

f:id:No000:20191225224922p:plain

echo "hello"

f:id:No000:20191225225105p:plain と入力し、保存実行すると...

nim c -r hello.nim

f:id:No000:20191225225125p:plain 成功!

終わりに

今回は、vimのプラグインまで入れようと考えていたのですが、なかなかうまくいかなかったため今後追記することにします(termuxを再インストールするはめになった...)。
もし、これでできたという方がいたら、教えてもらえると嬉しいです。

画面は狭い、入力しづらいという欠点はありますが(モニターと接続や携帯キーボード等解決法はあると思う)スマホでNim言語の練習ができるっぽい!
という話でした。