前回ので思いついた。
コマンド出力をクリップボードに直接入れるコマンドがあったらいいな。
パイプで渡せば即コピー、変数を引数にするとそれをコピー。
JXA で簡単に作れそう。
#!/usr/bin/osascript -l JavaScript
ObjC.import("Cocoa");
ObjC.import("unistd");
function run(argv) {
let clipboard = $.NSPasteboard.generalPasteboard;
clipboard.clearContents;
if ($.isatty(0)) {
let s = argv.join('\n');
clipboard.setStringForType($(s), $.NSPasteboardTypeString);
} else {
let fhi = $.NSFileHandle.fileHandleWithStandardInput;
let data = fhi.availableData;
let res = $.NSString.alloc.initWithDataEncoding(data, $.NSUTF8StringEncoding).js.trim();
clipboard.setStringForType(res, $.NSPasteboardTypeString);
}
}
clip.js
# macOS 使いなら知っているだろうけど一応 cp clip.js clip chmod +x clip mv ($PATH の中のどこか) # 使い方 ls -l | clip clip $SHELL
こんな感じ。
Terminal.app からコピーする手間が省ける。
需要があるかどうかは微妙。