Microのinit.luaを試す

Microでinit.luaを作成して、頻繁に使う機能をコマンドで実行できるようにしてみます。


init.luaというのは、ちょっとした機能をショートカットキーやコマンドモードで実行できるようにする仕組み(単一ファイルのプラグイン)です。

micro/runtime/help/tutorial.md at master · zyedidia/micro#Configuration with Lua


はじめにチュートリアルに記載されているサンプルコードを試してみます。

以後の内容に合わせ、チュートリアルの内容を少しだけ改変します。


$ micro ~/.config/micro/init.lua

でinit.luaファイルを作成します。


コードは下記になります。

local config = import("micro/config")
local shell = import("micro/shell")

function init()
	config.TryBindKey("Ctrl-r", "lua:initlua.run", true)
end

function run(bp)
	local buf = bp.Buf
    
	if buf:FileType() == "go" then
		shell.RunInteractiveShell("go run " .. buf.Path, true, false)
	end
end

簡単な解説になりますが、



MicroでGoのコードが書かれたファイルを開いた時にCtrl + r を押すと



$ go run ファイルパス

が自動で実行されて、Goで書かれたプログラムが実行されます。


コードを見ていきますと、


function init()
	config.TryBindKey("Ctrl-r", "lua:initlua.run", true)
end

init(初期化)関数でCtrl + rlua:initlua.runという機能を紐づけています。

micro/runtime/help/plugins.md at master · zyedidia/micro#Accessing micro functions


lua:initlua.runというのは、init.luaのファイルに書かれたrunという関数を指し、

function run(bp)
	local buf = bp.Buf
    
	if buf:FileType() == "go" then
		shell.RunInteractiveShell("go run " .. buf.Path, true, false)
	end
end

に該当します。




Node.js(サーバサイドのJavaScript)もCtrl + r で実行できるようにしてみます。

クロスティーニに最新版のNode.jsをインストールする


run関数を下記のように書き換えます。


function run(bp)
	local buf = bp.Buf
    
	if buf:FileType() == "go" then
		shell.RunInteractiveShell("go run " .. buf.Path, true, false)
	elseif buf:FileType() == "javascript" then
		shell.RunInteractiveShell("node " .. buf.Path, true, false)
	end
end

これで、Node.js(JavaScript)で書かれたファイルも自動実行されるようになりました。


ブラウザ経由でJavaScriptを実行したい場合、実行する時の拡張子がhtmlになりますので、run関数を下記のように書き換えます。

function run(bp)
	local buf = bp.Buf
    
	if buf:FileType() == "go" then
		shell.RunInteractiveShell("go run " .. buf.Path, true, false)
	elseif buf:FileType() == "javascript" then
		shell.RunInteractiveShell("node " .. buf.Path, true, false)
	elseif buf:FileType() == "html" then
		shell.RunCommand("chromium " .. buf.Path)
	end
end

上記のコードの場合、Chromiumで実行しますので、Chromiumがインストールされていない場合は、下記のコマンドでインストールしておきましょう。

$ sudo apt install chromium

or

$ sudo apt install chromium-browser

The Chromium Projects


ショートカットキーを新規登録する際は、下記URLで既に使用されていないことを確認しましょう。

micro/runtime/help/keybindings.md at master · zyedidia/micro · GitHub#Default keybinding configuration.

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。