본문 바로가기
programming language/Autohotkey

Autohotkey 와 Perl 을 사용하여 인덱스 자동 증가 시키기

by 남성 2015. 5. 5.

코딩을 하다 보면 규칙적인 코딩을 해야 하는 경우가 종종 있습니다.

 

아래 경우와 같이 순차적으로 증가하는 코드를 생각해 보죠~


a0=0;

a1=1;

a2=2;

a3=3;

a4=4;

.

.

.


아래 글에서도 소개를 했지만 vim 을 사용하는 경우 visincr 라는 플러그인을 사용하면 위 코드 예와 같은 경우 쉽게 인덱스를 증가 시킬 수 있습니다.

 

http://iamaman.tistory.com/324

 

그런데 저는 일반적으로 사용하는 에디터에서도 이런 자동 증가 기능이 있었으면 하는 생각이 들더군요.

 

그래서 Autohotkey 와 Perl 을 사용하여 인덱스를 자동 증가 시키는 코드를 한번 만들어 봤습니다.

 

일단 숫자를 인식 해야 할 테니 regular expression 을 지원해야겠고 문자를 숫자로 인식 한 후에 1씩 증가 할 수 있어야겠죠~ 그래서 이 부분은 Perl 을 활용 했습니다.

 

이를 위한 Perl 코드는 다음과 같습니다. 아래 코드에서 보는 바와 같이 Win32::Clipboard 을 활용 했습니다. 아래 Perl 코드의 파일 명은 ClipIncrease.pl 로 만들었습니다.

 

 

Win32::Clipboard 이 없는 분들은 CPAN client 을 실행 한 후에 install Win32::Clipboard 이라는 명령을 통해 설치 할 수 있습니다.

 

다음으로 위 코드를 실행 시키기 위해 Autohotkey 단축키를 하나 만들었습니다. 코드는 다음과 같습니다. 아래 코드에서는 ClipIncrease.pl의 Fullpath 경로만 제대로 설정해 주면 됩니다.

 

+#=::

InputBox, Nloop, Enter # of Loop, , , 300, 100

if Errorlevel=0

{

Run, %comspec% /c perl.exe ClipIncrease.pl의 Fullpath %Nloop%, , Min

}

 

SplashTextOn, ,, Processing End,

Sleep, 1000

SplashTextOff

return

 

위 Autohotkey 코드의 단축키는 Shift + Win + = 입니다.

 

사용 방법을 간단히 설명 드리면~ 위 예에서~ 첫 줄의 코드 부분(a0=0;)을 복사 합니다.

 

다음으로 Shift + Win + = 을 눌러서 Autohotkey 코드는 실행하면 나타나는 InputBox 에 다음과 같이 증가 횟수를 적어 줍니다. 저는 10회를 적었습니다.

 

Ok 을 누른 후에 좀 있으면 다음과 같이 "Processing End" 라는 메시지가 나옵니다.

다음으로 위 코드의 아래 쪽에 CTRL + V 을 해서 붙여 넣기를 합니다.

 

그럼 다음과 같은 코드가 만들어 집니다.

 

위 예는 간단히 10 회 반복을 했지만~ 100 회 1000 회 반복도 쉽게 할 수 있겠죠?


댓글0