本当に Windows10 のコマンドプロンプトはエスケープシーケンスをサポートしたのか?

したっぽい。実験してみよう package main import ( "fmt" "os" "syscall" "unsafe" ) var kernel32 = syscall.NewLazyDLL("kernel32") const STD_INPUT_HANDLE = uintptr(1) + ^uintptr(10) const STD_OUTPUT_HANDLE = uintptr(1) + ^uintptr(11) const STD…

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…

OJTばかりやって

OJTばかりやって、座学や書籍で理論をちゃんとやらんから、妙な社内標準・社内フレームワーク・社内ローカルルールが出来て、他所で通用しない社員ばかりになるんだな https://twitter.com/zetamatta/status/881672613889679360 四国の僧侶の先生が言ってた…

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…

俺は荒木飛呂彦先生は…

ジョジョ第三部の途中で亡くなっていて、今描いているのは二代目ではないかと思っている。 画風が変わっている 登場人物が主人公をジョジョと全く呼ばなくなる このあたりから各話を適当に入れ替えても成り立つようなストーリー構成へ 先生自身が若返ってい…

Windows における su(sudo) 事情考察

su (sudo)とは suというと、通常は UNIX(Linux)で、ログアウトせずにユーザを切り替えるコマンドを指し、主に root (管理ユーザ)に切り替える用途に使われることが多い。そして、sudo は1コマンドだけユーザを切り替えて実行するコマンドだ。 最近、Windo…

expect for Command Prompt by GopherLua

コマンドプロンプト向けの expect を Go 言語で作った。 https://github.com/zetamatta/expect 特徴 スクリプトは Lua で書く。GopherLua を使ったので、lua53.dll は不要 画面のプロンプトを待つ except() 関数は、本家だと標準出力・標準エラーを監視する…

git for Windows 付属の ssh でのログインを自動化したい

「Linux なら expect というツールがあるけど、Windows の場合、どうしたらいいんだろう」などと思って、API を調べていたら、WriteConsoleInput などというコンソールイベントを「捏造」できる API があるのを発見。 ちょっと、ツールを作ってみた。 packag…

Thunderbird で External Editor(外部エディター起動アドオン) が動かなくなった俺達は

エディターが起動していないのに、エディターの終了待ちでハングしてしまう。 どうやら Thunderbird が52へアップデートしたタイミングで、動かなくなったアドオンがいろいろ出ているようだ。 (参考:Thunderbird 52.0 Release - とりかごとなり。) ググっ…

テスト用のWindows10の仮想環境(寿命90日)の作成と日本語化

(1)90日限定の試用版 Windows10 をダウンロード https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ OVAイメージ(4GB)をダウンロードできる。 このイメージは一度立ち上がると、90日後に使えなくなるが、立ち上げる前の状態のスナップショ…

import を全て絶対パスにした

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

まだ、NYAGOS 4.2 は出せない

Lua のインスタンスのクローンについては今のところ問題は出ていない。 無論、不具合の一つ二つは出たが、 確認当日中にあっさりと解決できて、この程度で済むのなら上出来だったと思う。 また、もう一つの懸案も解決できた。 dir | find "<DIR>" · Issue #218 · </dir>…

Go for Windows で子プロセスに二重引用符を引数でそのまま渡したい時

問題の症状 親プロセスのソース: // exec1.go package main import ( "os" "os/exec" ) func main() { c := exec.Command("foo", `"<BAR>"`) c.Stdout = os.Stdout c.Stderr = os.Stderr c.Stdin = os.Stdin c.Run() } 子プロセスのソース(バッチファイル): @</bar>…

Qiita から回答をいただきました>自作公開OSSに関する解説はガイドラインの「自社の製品の宣伝行為はしない」に抵触しますか?

先日 Qiita に問い合わせてみました:自作公開OSSに関する解説はガイドラインの「自社の製品の宣伝行為はしない」に抵触しますか?という記事を書いたわけですが、 本日返信をいただきました。1営業日とは早い。 zetamatta さまが投稿されている記事を確認…

cd ショートカット.lnk

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

Qiita に問い合わせてみました:自作公開OSSに関する解説はガイドラインの「自社の製品の宣伝行為はしない」に抵触しますか?

こんな感じ。現在、返事待ち返信来ました 自作公開OSSに関する解説はガイドラインの「自社の製品の宣伝行為はしない」に抵触しますか? わたくし、個人で開発している、Windows用拡張コマンドラインシェル NYAGOS (https://github.com/zetamatta/nyagos)とい…

スーパーで…

(twitterから転載) スーパーで、本来は専用の容器を買わないと取ってはいけない氷を、ポリ袋に取り込んでいるじいさんがいた。 やらしいなぁと蔑むような目で見てしまったのだが、 よく考えればじいさんも好きでそんな卑しいことはしたくはないだろう。 豊か…

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…

Qiitaについて思うところのポエム

Qiitaの新しいガイドラインに対する反発が増えている。自分もどうかと思うところがあった。 新しいガイドラインだと、わたしがNYAGOSでやってるような 「アプリ開発者自身による機能紹介」が「宣伝行為」と解釈可能で、グレーゾーンになる。 OSSならばよいと…

次は 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テーブルに代入されたもの以外は各処理から参照することができません。したがって、データ共有にはユーザ向けテーブルである…

Goで、そのうち使ってみたいライブラリ・ツールリスト

Go

Gigue is a minimal scheme interpriter written in Go Lispインタープリタ(紹介記事:Goで小さなScheme、Gigueを実装しました) mattn/anko: Scriptable interpreter written in golang anko という Go ライクな文法のインタープリタ mattn/go-mastodon: m…

mastodon ここ最近、ちょっと触っているので(頭痛をまぎらわしがてら)所感を

jpサーバは中学生・高校生みたいな下品な投稿が多くて、ローカルタイムラインは見てられないが、著名な技術者も泳いでいるので、外せない。でも、別に他のサーバにアカウントを作っても、リモートでフォローできるのが mastodon のよいところだから、jpサー…

C:\path\\to は invalid なパスか、否か?

IPAのページ Windowsパス名の落とし穴によると 4. d:\\InetPub\\\wwwroot\\\\secret\\\\\data.txt ディレクトリの区切り文字は幾つか重複しても構わない とあるため、これを信じると C:\path\\to は Valid なパスである。 無論、これイコール Microsoft の見…

☭(U+262D)のコマンドプロンプトに置ける文字の幅問題

☭という記号がある。「鎌と槌」(HAMMER AND SICKLE)と呼ばれる記号で、いわゆる共産党のシンボルである。 この文字、East_Asian_Width は Neutral になっている。 Wikipediaの東アジアの文字幅によると UAX#11では、これらの特性を次のように解釈すること…

peco/choライクな選択コマンド box を作成しました(ただし次期NYAGOS内蔵コマンド)

NYAGOS の内蔵コマンドとして box を作成しました。 現在、機能の調整中(具体的にはドキュメントが出来てない)ですが、 次の NYAGOS のリリース (4.1.9)に盛り込む予定です。 すぐ使いたい人は自力でビルドしましょう。 peco この手のコマンドで有名なも…