rangerの設定(ソースコードをビルド&実行する)
rangerはTUIファイラ。
ソースコードをビルド&実行する
JavaとC#(Mono)の単一ファイルをビルド&実行する設定をする。
~/.config/ranger/rifle.conf
... !mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-${EDITOR:-sensible-editor}} -- "$@" !mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@" ... ext py = python -- "$1" ext pl = perl -- "$1" ext rb = ruby -- "$1" ext js = node -- "$1" ext sh = sh -- "$1" ext php = php -- "$1" ...
これを適切に設定すれば追加できる。
Java
~/.config/ranger/rifle.conf
... !mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php|java = ${VISUAL:-${EDITOR:-sensible-editor}} -- "$@" !mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php|java = "$PAGER" -- "$@" ... ext java = { javac "$1"; java $(basename "$1" .java); } | "${PAGER}" ...
HelloWorld.java
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!!"); } }
- rangerで
HelloWorld.java
ファイルにカーソルを合わせる r
+(rifle.confで設定したコマンドの番号)
+<Enter>
キー押下でビルド&実行する- 何も表示されない画面が出る(ビルド中)
- 少し待つと
Hello World!!
と出る(実行結果) q
キー押下でrangerに戻る
ちなみに、JavaのREPLはJDK9から実装されたらしい。jshell
というコマンド名。
C#(MONO)
~/.config/ranger/rifle.conf
... !mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php|java|cs = ${VISUAL:-${EDITOR:-sensible-editor}} -- "$@" !mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php|java|cs = "$PAGER" -- "$@" ... ext cs = { mcs "$1"; ./$(basename "$1" .cs)'.exe'; } | "${PAGER}" ...
a.cs
using System; public class Sample { public static void Main() { Console.WriteLine("Hello World!"); } }
- rangerで
a.cs
ファイルにカーソルを合わせる r
+(rifle.confで設定したコマンドの番号)
+<Enter>
キー押下でビルド&実行する- 何も表示されない画面が出る(ビルド中)
- 少し待つと
Hello World!!
と出る(実行結果) q
キー押下でrangerに戻る
ちなみにC#(MONO)のREPLはcsharp
というコマンド名。GUI版はgsharp
。apt search gsharp
で検索してインストールする。mono-tools-gui/stable-raspbianstretch 4.2-2xamarin12+raspbian9b1 all
という名前が出た。バージョンが古い。
他にも以下のような要件がある。
- MONO
- プロジェクト・ソリューション
- ビルド
msbuild
(xbuild
は非推奨).sln
,.csproj
をどう作成するか
- ビルド
- プロジェクト・ソリューション
- .NET Core(
dotnet
)- ファイル
- ビルド
- プロジェクト・ソリューション
- ファイル
実装には少し骨が折れそうなので省略。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12
- python 2.7.13, pip 9.0.1
- python3 3.5.3, pip3 9.0.1
- ranger 1.9.2
$ uname -a Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux