클립보드로 복사한 문자열에서 공백을 제거하는 스크립트를 작성합니다.
Actions 에서 sciprt
로 검색하면 사용 가능한 스크립트를 확인할 수 있습니다. 그중에서 javascript로 스크립트를 작성하였습니다.
기본 스크립트
클립보드를 다루는 방법은 아래 코드를 통해 확인할 수 있습니다.
// --- SET CURRENT APP VARIABLE NEEDED FOR DIALOGS & StandardAdditions.osax ---
var app = Application.currentApplication()
app.includeStandardAdditions = true
//--- GET A REFERENCE TO THE KM ENGINE ---
var kme = Application("Keyboard Maestro Engine");
//--- GET A KM VARIABLE ---
var myVar = kme.getvariable('My KM Var');
//--- SET A KM VARIABLE ---
// - Using explicit text
kme.setvariable('My Other KM Var', { to: "Set by JXA" });
// - Using a JavaScript Variable
var scriptResults = "Text Determined by the script"
kme.setvariable('My Other KM Var', { to: scriptResults });
//--- GET TEXT ON CLIPBOARD ---
var clipboardStr = app.theClipboard()
console.log("clipboardStr: " + clipboardStr)
var someDataStr = "Example text to put on clipboard"
//--- COPY TO CLIPBOARD ---
// Verify using KM Clipboard History Viewer
app.setTheClipboardTo(someDataStr)
공백 제거 스크립트
첫줄을 제외하고, 가장 적은 공백수를 찾아서, 일괄적으로 공백을 제거하여 결과를 클립보드로 복사하는 코드입니다.
// --- SET CURRENT APP VARIABLE NEEDED FOR DIALOGS & StandardAdditions.osax ---
var app = Application.currentApplication()
app.includeStandardAdditions = true
//--- GET TEXT ON CLIPBOARD ---
var clipboardStr = app.theClipboard()
console.log("clipboardStr: " + clipboardStr)
lines = clipboardStr.split(/[\r\n]/)
var exceptFirst = false
var minLen = 99999
for (var i=0; i < lines.length; i++){
line = lines[i]
if (line.length <= 0)
continue
spaceLen = line.match(/^\s*/)[0].length
if (i == 0 && spaceLen == 0){
exceptFirst = true
continue
}
if (spaceLen < minLen){
minLen = spaceLen
}
}
var result = ""
for (var i=0; i < lines.length; i++){
line = lines[i]
if (i == 0 && exceptFirst == true) {
result = line + "\n"
continue
}
result += line.substring( minLen, line.length ) + "\n"
}
app.setTheClipboardTo(result)
적용
직접 스크립트를 작성하여도 되고, 스크립트 파일을 불러들여서 사용할 수도 있습니다.
참고
'Programming > JavaScript' 카테고리의 다른 글
proj4 좌표계 변환 (0) | 2019.01.17 |
---|---|
Vworld 3D Data를 Three.js로 출력하기 (0) | 2018.10.18 |
localStorage 에 checkbox 상태 저장 (0) | 2018.09.07 |
vscode 에서 revealjs 사용 (0) | 2018.08.07 |
[책] 리액트 네이티브 앱 제작 원론 (0) | 2018.05.21 |
댓글