2013/08/13


readline って言うと、便利な反面 Windows だと問題が多く発生して、Windows でも動かすスクリプトでの使用は敬遠してたんですが、Caroline だと多い日も安心。
tokuhirom/Caroline - GitHub

Yet another line editing library

https://github.com/tokuhirom/Caroline
readline なんかと違って、内部は utf-8 なので unix 等のスクリプトと同じ動きをします。ヒストリも保存出来るし、入力補完も自作出来ます。
eg/suddenly_death.pl を見るといいです。

$ perl -Ilib eg/suddenly_death.pl
hello> 
ここで m を入力してタブキーをタイプすると... $ perl -Ilib eg/suddenly_death.pl
hello> 突然のmattn
そして ENTER キーをタイプすれば _人人人人人人_
> 突然のmattn <
 ̄^Y^Y^Y^Y^Y^ ̄
Posted at by



2013/08/06


いろいろと、よろしくお願いします。
mattn/emmet-vim - GitHub
https://github.com/mattn/emmet-vim
Emmet.vim
http://mattn.github.io/emmet-vim
Posted at by



2013/08/05


Twitterで「Go言語で、いわゆるプラグインの動的ロードってできる?」という発言を見かけたので。 CGOが書けるのでなんでも出来ます。Linux であれば goffi を使えばほぼ何でも出来ます。
cookieo9/goffi - GitHub

Go FFI (and dlopen) packages to wrap C libraries. This code is not being actively d...

https://github.com/cookieo9/goffi
Windows であれば CGO を使わずとも、もともと Windows API には LoadLibrary、GetProcAddress という物が用意されており、Go言語にもその wrapper が提供されています。 package main

import (
    "log"
    "syscall"
    "unsafe"
)

func main() {
    dll, err := syscall.LoadDLL("user32.dll")
    if err != nil {
        log.Fatal(err)
    }
    defer dll.Release()

    proc, err := dll.FindProc("MessageBoxW")
    if err != nil {
        log.Fatal(err)
    }

    proc.Call(0,
        uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("メッセージ"))),
        uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("ボックス"))),
        0)
}
golang
便利ですね。
Posted at by