前回ので思いついた。
コマンド出力をクリップボードに直接入れるコマンドがあったらいいな。
パイプで渡せば即コピー、変数を引数にするとそれをコピー。
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 からコピーする手間が省ける。
需要があるかどうかは微妙。