nyagos

nyagos でのバッチ起動方法を軽量化した

nyagos では、子プロセスのバッチファイルが変更した環境変数を取り込むのに @call バッチファイル 引数1 引数2 … @set ERRORLEVEL_=%ERRORLEVEL% @(cd & set) > 一時ファイル名 @exit /b %ERRORLEVEL_% といった踏み台バッチを毎回作っていた。 これはこ…

nyagos で、行番号シェルつくった

多分理解されないと思うけど、あの「入力が数字から始まっていたら、即実行中ではなく記憶しておき、runとタイプされると数字順に実行する」という「古代 8bit BASIC」のシステム、 意外とコマンドラインシェルで便利かもね。nyagos の Lua で書いてみたけど…

nyagos 4.3.3_3 を公開しました。

Release 4.3.3_3 zetamatta/nyagos (#310) copy と move の宛先でショートカットをサポート (#313 reopened) git blame FILES | type | gvim - & で gvim が空バッファで始まってしまう問題を修正 壊れたジャンクションに対する rmdir ができなかった問題を…

nyagos の type, more で UTF16 をサポート

(qrunch.io より転記) これな type and more supports UTF16 (if it contains '\000' ...) Issue #267 zetamatta/nyagos 当初は「とりあえず書いてみた」という感じの issue で、そのうちニーズがない割に面倒なので、やめようかな…と思っていました。 が、…

自前の io.* ライブラリを構築中

nyagos内蔵Luaで「lua_e "for line in io.lines() do print(line) end" < FILE」が FILE から読み込めない - 標準愚痴出力 ファイルまわりはシェル本体との密接な連携が必要なので、結局、io.* 以下の関数を全部自前バージョンで置き換えることにした。 最初…

内蔵Luaで実行する際、@ で始まる行を無視するよう修正した

nyagos 4.3 で、バッチファイルに Lua を組み込んで実行する際、内蔵Lua が 5.3 から 5.1 になったため、ラベルの文法がなくなって @setlocal & set "ARGS=%*" & nyagos.exe --norc -e "_,_,b=io.input([[%~f0]]):read('*l','*l','*a');assert(loadstring('\…

nyagos 内蔵 Lua 組み込みバッチファイルの雛型

nyagos内蔵Lua が 5.1 になったので前の 5.3 向けの方法が使えなくなった donyagos.cmd @setlocal & set "ARGS=%*" & nyagos.exe --norc -e "_,_,b=io.input([[%~f0]]):read('*l','*l','*a');assert(loadstring('\n'..b,[[%~f0]]))()" @endlocal & exit /b %…

nyagos豆知識!(じゃじゃーん)- 「cd -h」

「cd -h」とすると、それまでたどったディレクトリが一覧で出るよ。もし「-2 C:\Users\hymko」とか表示されたら「cd -2」でそこへ移動できるよ! <DESKTOP-LGGUCRA:~/go/src/github.com> $ cd -h -3 C:\Users\hymko -2 C:\Users\hymko\go\src\github.com\zetamatta\nyagos -1 C:\Users\hymko\go\sr</desktop-lggucra:~/go/src/github.com>…

続・nyagos で lua53.dll のかわりに GopherLua を使おう

続・nyagos で lua53.dll のかわりに GopherLua を使おう - Qiitaより転載 続・nyagos で lua53.dll のかわりに GopherLua を使おう 「nyagos で lua53.dll のかわりに GopherLua を使おう - Qiita」の続き: β2 を出しました。 Release 4.3_beta2 · zetamat…

nyagos で lua53.dll のかわりに GopherLua を使おう

2018/04/25 付け記事:nyagos で lua53.dll のかわりに GopherLua を使おう - Qiitaより転載 nyagos で lua53.dll のかわりに GopherLua を使おう Using GopherLua instead of lua53.dll · Issue #300 · zetamatta/nyagos lua53.dll にはいくつか問題があり…

NYAGOS 4.2.5βが、いかにしてバッチファイルでの環境変数の変更取り込みを可能としたか

通常、環境変数は親プロセスから子プロセスへの一方通行で継承されるものであり、逆はありえない。 CMD.EXE で「環境変数設定バッチ」というものが成り立つのは、バッチファイルを子プロセスではなく、バッチファイルを呼び出しているCMD.EXEプロセス自身で…

【ポエム】NYAGOS 2017年ふりかえり

Nihongo Yet Another GOing Shell についての駄文です。関心ある方に読んでいただければと 参考:2017年冒頭に言ってたこと Luaデータ共有との戦い > 完全に改善した!(← うさんくさい) < 4.0 全コマンド(=goroutine~スレッド)で 1-Lua インスタンスを…

まともな foreach が使えるようになります

次のバージョンから、環境変数の置換構文を組み合わせれば、下記のようなことができます。 $ foreach i *.go ; echo move %i% %i:go=goo% ; end move bindata.go bindata.goo move builtinfunc.go builtinfunc.goo move complete_lua.go complete_lua.goo mo…

NYAGOS、かんたん設定

NYAGOS、かんたん設定 Windows向け拡張コマンドラインシェル:NYAGOS (Nihongo Yet Another GOing Shell) の個人設定はホームディレクトリに .nyagos というテキストファイル(Luaスクリプト)を作成して行います。 Windows の場合ホームディレクトリは一般に …

NYAGOSの小TIPS集

NYAGOS 4.2.0 以降が対象です。 ファイルはゴミ箱へ trash ファイル名 でファイルがいきなり削除ではなく、ゴミ箱に入ります。実体は Lua スクリプトで、COM経由でゴミ箱へファイルを移動しています。(nyagos.d/trash.lua) UTF8 変換に type 文 内蔵 type …

Visual Studio を NYAGOS から使う時

普通は Visual Studio のパスを通すため、下記のように .nyagos 上で Visual Studio コマンドプロンプトのバッチを source する。 nyagos.exec{'source',[[C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat]],'x86'} これやると NYAGO…

readline ライブラリ

nyagos 以外からでも簡単に使えるよう、いろいろがんばった package main import ( "context" "fmt" "github.com/zetamatta/nyagos/readline" ) func main() { editor := readline.Editor{ Default: "InitialValue", Cursor: 3, } text, err := editor.ReadL…

import を全て絶対パスにした

こんな感じに - "../completion" - "../shell" + "github.com/zetamatta/nyagos/completion" + "github.com/zetamatta/nyagos/shell" これにより: ソースを GOPATH 内に置けなかった go get github.com/zetamatta/nyagos で全ソースをダウンロードできなか…

cd ショートカット.lnk

NYAGOS は cd ショートカット.lnk という書き方をサポートしている。 これは Go言語で実装した内蔵コマンドの cd で直接サポートしているわけではなくて、 nyagos.d\cdlnk.luaという Lua スクリプトで cd のエイリアスを書き、 その中で nyagos.create_objec…

Visual Studio 2017 の環境の source の仕方

Developper Command Prompt for VS2017 のプロパティーを見るとリンク先は次のとおりとなっています。 %comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" ちなみに作業フォルダーは "C:\Program Fi…

次は nyagos 4.2 になりそう

先日考えた Lua インスタンスをクローンする方式は、 集中してやったら、案外あっさり出来た。 foo = { { { "bar" } } } nyagos.alias.foo = function(this) print("foo=",foo[1][1][1]) end こういうコードは、従来の 4.1 では foo=nil となってしまってい…

わたしにいい考えがある

Lua に clone 機能があればと書いていたが、実際に clone を自前で書いてしまった方が早いのでは? local 変数はクロージャーの上位値の clone ができない それは仕方がないと考える clone した後、clone先からclone元へのフィードバックができない 従来の s…

shareテーブルの改善

NYAGOS は各処理で別々の Lua インスタンスを作成して利用しており、~\.nyagos で定義したグローバル変数は nyagosテーブル 、shareテーブルに代入されたもの以外は各処理から参照することができません。したがって、データ共有にはユーザ向けテーブルである…