AutoHotKeyで自動インデント

スペース区切りデス

スペース区切りデス

  • タグ:
  • タグはありません
; 選択してからPauseキーを押す。(10行まで)
Pause::

	cb_bk = %ClipboardAll%
	
	Clipboard =
	Send, ^c
	ClipWait, 2
	
	Sleep, 100
	tmp = %Clipboard%
	tmp2 = `r`n
	
	; 改行しかなかったら終了
	if tmp = %tmp2%
	{
		content =
	} else if ErrorLevel <> 0
	{
		; Error
		content =
	} else {
		; 初期化
		OutputArray1 = 
		OutputArray2 = 
		OutputArray3 = 
		OutputArray4 = 
		OutputArray5 = 
		OutputArray6 = 
		OutputArray7 = 
		OutputArray8 = 
		OutputArray9 = 
		OutputArray10 = 
		
		i := 1
		Loop 10{
			arrayOne%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayTwo%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayThree%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayFour%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayFive%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arraySix%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arraySeven%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayEight%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayNine%i% = 
			i := i + 1
		}
		i := 1
		Loop 20{
			arrayTen%i% = 
			i := i + 1
		} 
		
		; 改行記号で分割。\r\nで分割出来ないみたいなので\nで分割したあと、\rを削る。
		AutoTrim, off
		content = %Clipboard%
		Sleep, 50
		
		; 先頭が改行の場合は削り、あとで付け足す。
		tmp = 
		StringGetPos, tmp, content, `r
		
		beginningOfLineIsReturn = 0
		if(tmp = 0) {
			StringReplace, content, content, `r`n, 
			beginningOfLineIsReturn = 1
		}
		
		StringSplit, OutputArray, content, `n, `r
		
		; 10行以上だったら中止
		if (OutputArray0 > 10) {
			Clipboard = %cb_bk%
			MsgBox, ごめん10行くらいまでしか無理
			exit
		}
		
		; 二つ以上の空白があったら一旦一つにする。
		arrayOne   := RegExReplace( OutputArray1,  "( )+", " " )
		arrayTwo   := RegExReplace( OutputArray2,  "( )+", " " )
		arrayThree := RegExReplace( OutputArray3,  "( )+", " " )
		arrayFour  := RegExReplace( OutputArray4,  "( )+", " " )
		arrayFive  := RegExReplace( OutputArray5,  "( )+", " " )
		arraySix   := RegExReplace( OutputArray6,  "( )+", " " )
		arraySeven := RegExReplace( OutputArray7,  "( )+", " " )
		arrayEight := RegExReplace( OutputArray8,  "( )+", " " )
		arrayNine  := RegExReplace( OutputArray9,  "( )+", " " )
		arrayTen   := RegExReplace( OutputArray10, "( )+", " " )
		
		; 空白で分割。
		StringSplit, arrayOne,   arrayOne,   %A_Space%
		StringSplit, arrayTwo,   arrayTwo,   %A_Space%
		StringSplit, arrayThree, arrayThree, %A_Space%
		StringSplit, arrayFour,  arrayFour,  %A_Space%
		StringSplit, arrayFive,  arrayFive,  %A_Space%
		StringSplit, arraySix,   arraySix,   %A_Space%
		StringSplit, arraySeven, arraySeven, %A_Space%
		StringSplit, arrayEight, arrayEight, %A_Space%
		StringSplit, arrayNine,  arrayNine,  %A_Space%
		StringSplit, arrayTen,   arrayTen,   %A_Space%

		j := 1             ; 配列の添字
		k := arrayOne0 - 1 ; ループ回数
		Loop %k% {
			; 一番大きい文字列の長さを求める
			max := StrLen(arrayOne%j%)
			
			if( StrLen(arrayTwo%j%) > max ) {
				max := StrLen(arrayTwo%j%)
			}
			
			if( StrLen(arrayThree%j%) > max ) {
				max := StrLen(arrayThree%j%)
			}
			
			if( StrLen(arrayFour%j%) > max ) {
				max := StrLen(arrayFour%j%)
			}
			
			if( StrLen(arrayFive%j%) > max ) {
				max := StrLen(arrayFive%j%)
			}
			
			if( StrLen(arraySix%j%) > max ) {
				max := StrLen(arraySix%j%)
			}
			
			if( StrLen(arraySeven%j%) > max ) {
				max := StrLen(arraySeven%j%)
			}
			
			if( StrLen(arrayEight%j%) > max ) {
				max := StrLen(arrayEight%j%)
			}
			
			if( StrLen(arrayNine%j%) > max ) {
				max := StrLen(arrayNine%j%)
			}
			
			if( StrLen(arrayTen%j%) > max ) {
				max := StrLen(arrayTen%j%)
			}
			
			
			; 行末を半角空白に置換
			i := max - StrLen(arrayOne%j%)
			Loop %i% {
			
				arrayOne%j% := RegExReplace( arrayOne%j%, "$", " " )
			}
			
			i := max - StrLen(arrayTwo%j%)
			Loop %i% {
			
				arrayTwo%j% := RegExReplace( arrayTwo%j%, "$", " " )
			}
			
			i := max - StrLen(arrayThree%j%)
			Loop %i% {
			
				arrayThree%j% := RegExReplace( arrayThree%j%, "$", " " )
			}
			
			i := max - StrLen(arrayFour%j%)
			Loop %i% {
			
				arrayFour%j% := RegExReplace( arrayFour%j%, "$", " " )
			}
			
			i := max - StrLen(arrayFive%j%)
			Loop %i% {
			
				arrayFive%j% := RegExReplace( arrayFive%j%, "$", " " )
			}
			
			i := max - StrLen(arraySix%j%)
			Loop %i% {
			
				arraySix%j% := RegExReplace( arraySix%j%, "$", " " )
			}
			
			i := max - StrLen(arraySeven%j%)
			Loop %i% {
			
				arraySeven%j% := RegExReplace( arraySeven%j%, "$", " " )
			}
			
			i := max - StrLen(arrayEight%j%)
			Loop %i% {
			
				arrayEight%j% := RegExReplace( arrayEight%j%, "$", " " )
			}
			
			i := max - StrLen(arrayNine%j%)
			Loop %i% {
			
				arrayNine%j% := RegExReplace( arrayNine%j%, "$", " " )
			}
			
			i := max - StrLen(arrayTen%j%)
			Loop %i% {
			
				arrayTen%j% := RegExReplace( arrayTen%j%, "$", " " )
			}
			j := j + 1
		}

		; バッファに貼り付けて出力
		buff = 
		i := 1
		Loop %arrayOne0% {
			if (i < arrayOne0) {
				buff := buff . arrayOne%i% . " "
			} else {
				buff := buff . arrayOne%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 1 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayTwo0% {
			if (i < arrayOne0) {
				buff := buff . arrayTwo%i% . " "
			} else {
				buff := buff . arrayTwo%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 2 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayThree0% {
			if (i < arrayOne0) {
				buff := buff . arrayThree%i% . " "
			} else {
				buff := buff . arrayThree%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 3 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayFour0% {
			if (i < arrayOne0) {
				buff := buff . arrayFour%i% . " "
			} else {
				buff := buff . arrayFour%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 4 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayFive0% {
			if (i < arrayOne0) {
				buff := buff . arrayFive%i% . " "
			} else {
				buff := buff . arrayFive%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 5 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arraySix0% {
			if (i < arrayOne0) {
				buff := buff . arraySix%i% . " "
			} else {
				buff := buff . arraySix%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 6 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arraySeven0% {
			if (i < arrayOne0) {
				buff := buff . arraySeven%i% . " "
			} else {
				buff := buff . arraySeven%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 7 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayEight0% {
			if (i < arrayOne0) {
				buff := buff . arrayEight%i% . " "
			} else {
				buff := buff . arrayEight%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 8 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayNine0% {
			if (i < arrayOne0) {
				buff := buff . arrayNine%i% . " "
			} else {
				buff := buff . arrayNine%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		if( OutputArray0 = 9 ) {
			Goto, hogehoge
		}
		
		i := 1
		Loop %arrayTen0% {
			if (i < arrayOne0) {
				buff := buff . arrayTen%i% . " "
			} else {
				buff := buff . arrayTen%i%
			}
			i := i + 1
		}
		buff := buff . "`r`n"
		
		hogehoge:
		
		
		if (beginningOfLineIsReturn = 1) {
			Clipboard = `r`n%buff%
		} else {
			Clipboard = %buff%
		}
		
		Sleep, 50
		Send, ^v
		Sleep, 50
	}	

Sleep, 200
Clipboard = %cb_bk%
		
return