前回ので思いついた。
コマンド出力をクリップボードに直接入れるコマンドがあったらいいな。
パイプで渡せば即コピー、変数を引数にするとそれをコピー。
JXA で簡単に作れそう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/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
1 2 3 4 5 6 7 8 | # macOS 使いなら知っているだろうけど一応 cp clip.js clip chmod +x clip mv ($PATH の中のどこか) # 使い方 ls -l | clip clip $SHELL |
こんな感じ。
Terminal.app からコピーする手間が省ける。
需要があるかどうかは微妙。