검색결과 리스트
플러그인에 해당되는 글 2건
- 2010.05.07 [ Vim/Zencoding ] Vim 에 늦바람들기 시작하면서 Zencoding 만지다
- 2009.01.28 [ Mac ] Colloquy (Mac IRC Client App) Plugin 만들기 (4)
글
IT/Tips 2010.05.07 13:20[ Vim/Zencoding ] Vim 에 늦바람들기 시작하면서 Zencoding 만지다
원격으로 서버에 들어가서 작업해야 될 일이 많기에 주로 emacs/vim 을 사용해왔습니다.
하지만 뭐 기본적으로 복사/붙여넣기, 검색/치환 을 시작으로 Syntax Highlighting 되면 그냥 오케이라고 생각해왔었습니다.
올해 초 서서히 붐이 일기 시작한 Zencoding 도 다른 여러 IDE 에 플러그인으로 등장했지만 그닥 사용성에서 만족하지는 못했기에 (IDE 자체가 무겁기도 하고..) 잊고 지내다가, 심심해서 vim의 zencoding 플러그인을 넣어보았습니다.
$HOME/.vim/plugin/ 에 zencoding.vim 을 넣고
vim 을 실행시켜서 INSERT MODE 에서 아래와 같이 입력하고
html:5
커맨드 모드에서 Ctrl + y , 를 누르면
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
로 변환됩니다. 적은 타이핑 수로 HTML 기본 뼈대를 갖출 수 있는 것입니다. html:5 같은 스니펫은 zencoding.vim 안에 정의되어 있기 때문에... 거기에 맞춰서 자신에게 필요한 html 기본 뼈대를 만드는 방법도 있을 겁니다. (html:4t 나 html:4s 등등...)
또한 역시 INSERT MODE 에서
table#main>tr.head>th*4<tr.cols*2>td*4
라고 입력하고 커맨드 모드에서 Ctrl + y , 를 누르면
<table id="main">
<tr class="head">
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr class="cols">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="cols">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
이렇게 CSS 셀렉터 와 같은 형식도 지원을 하게 됩니다.
그외 자신만의 스니펫을 정의해서 여러모로 웹개발에 편리하게 쓰일 수 있지 않을까 합니다.
* 개발서버의 vim 이 6.8.x 였는데 여기에 zencoding.vim 을 넣으니까 에러가 나서 최신버젼 7.2.x 를 홈디렉토리에 넣고 돌렸더니 잘 되덥니다. 은근히 버젼많이 타나봐요. (vim 초짜 ;ㅁ;)
아무튼 vim++
'IT > Tips' 카테고리의 다른 글
[ Scansnap + Evernote ] 궁극의 lifehack (0) | 2010.05.21 |
---|---|
[ Vim/Zencoding ] Vim 에 늦바람들기 시작하면서 Zencoding 만지다 (0) | 2010.05.07 |
아기다리고기다리던 Blackbird Pie (0) | 2010.05.06 |
[ Synergy ] 키보드로 화면전환... :-) (0) | 2010.02.24 |
트랙백
댓글
글
IT/Mac 2009.01.28 21:03[ Mac ] Colloquy (Mac IRC Client App) Plugin 만들기
Colloquy 는 Mac 의 대표적인 IRC 클라이언트 App 입니다. 전 Mac 을 쓸 때에 이 Colloquy 를 가장 많이 사용합니다. 그만큼 IRC 에서 떠드는 일이 많아지고 IRC 는 하나의 생활이 되어버렸네요.
Perl 로 재미있는 거 만들 수 없을까? 했을 때도 가장 먼저 떠오른 것이 IRC BOT 이었구요... 이번에는 IRC BOT 에서 할 수 없는.. 뭔가 클라이언트 환경에 맞는 일을 해보고 싶었습니다.
구글 선생님에게 "Colloquy Plugin" 을 치니까 떡하니 나오더군요.
Plug-In Love - Unlimited extensability through Plug-Ins.
- Colloquy :: Write Plug-Ins : http://colloquy.info/project/wiki/Development/PlugIns
이 페이지에서는 Plugin 을 쓸 때 지원하는 언어를 나열해놨습니다. Objective-C, AppleScript, Ruby, Python, JavaScript .... 불행히도 Perl 은 없군요. CamelBones 가 저렇게 방치된 이상 더는 어떻게 못하나 봅니다. 이건 Mac 을 쓰는 Perl Guru 들이 어케 안해줄런지요.
아무튼 제가 제대로 할 줄 아는 건 JavaScript 밖에 없으니 ... 일단 JavaScript 도 플러그인을 만들어 보기로 했습니다. 아주 친절하게도 플러그인을 만들기위한 기본 Template 이 갖추어져 있습니다.
- Colloquy Java Script template file : http://colloquy.info/project/browser/trunk/Plug-Ins/SDK/JavaScript/Template.js?format=raw
IRC 프로토콜 상의 대부분의 이벤트에 대해서 정의가 가능하며, Mac 스럽게도 Growl 과 연동도 시킬 수 있습니다. 입력시킬 내용을 자동으로 필터링해서 보거나, 보여지는 내용에 대해서도 입맛에 맞게 바꿔서 볼 수 있습니다. 이런 것들로 "하이라이트 단어 설정"(이건 Colloquy 설정화면에도 있습니다), "이모티콘 설정"(이것도 물론...) 등을 할 수 있겠죠.
제가 IRC 에서 주로 활동하는 곳은 #perl(irc.hanirc.org), #perl-kr(irc.freenode.org) 입니다.
채널의 성격에 맞게 새로운 CPAN 모듈이나.. 어느 모듈의 사용등에 관한 얘기가 자주 등장하기도 하죠. 생소한 CPAN 모듈이 나오면 Module 이름을 직접 URL 창에 쳐서 검색을 하거나 하기도 합니다만... 이 부분에서 CPAN 모듈을 정규표현으로 긁어서 CPAN 모듈 페이지에 링크를 걸어주도록 했습니다.
그 내용은 아래와 같습니다.
- function processIncomingMessage( message, view ) {
- var html = message.bodyAsHTML();
- var finalHTML = html;
- var linkRegex = new RegExp( '<a href="([^"]+)">([^<]+)<\/a>', 'gim' );
- var result;
- while( ( result = linkRegex.exec( html ) ) ) {
- var name = result[1];
- var schemeRegex = new RegExp( 'https?:\/\/' );
- if( schemeRegex.test(name) )
- continue;
- if( name ) finalHTML = finalHTML.replace( result[0], '<a href="http://search.cpan.org/perldoc?' + name + '" title="' + name + '">' + name + '</a>' );
- }
- message.setBodyAsHTML( finalHTML );
- }
이 파일을 적당한 파일이름('CPAN.js') 로 저장해서 ~/Library/Application Support/Colloquy/Plugins/ 아래에 놓아둡니다. 그리고 IRC 상에서 /reload plugin 을 쳐서.. 플러그인을 불러옵니다.
위처럼 CPAN Module을 때렸을 때는 저렇게 Link 로 표시되며, 해당 링크를 누르면 브라우저에서 저 모듈 페이지가 열리게 되는 것입니다. 물론 제 Client 에서만 저런 HTML 형식으로 표시되기때문에 상대방은 제가 뭔 일을 하는 지 모르는 반응을 보이게 되는 것이죠.
아, 다행스럽게도 Colloquy 는 ::이 들어간 것을 HTTP URL 링크로 처리하도록 정규표현을 걸어두었기 때문에 위의 JavaScript 소스와 같이 간단하게 모듈이름을 뽑아 올 수 있었습니다.
Windows 의 IRC 클라이언트 중에도 전용 스크립트를 사용해서 저렇게 플러그인을 쓸 수 있는 것이 있는 걸로 알고 있습니다. 많은 분들이 클라이언트 프로그램에서 플러그인을 사용하는 것을 봐왔고, 때로는 악질적인 행동으로 방 분위기를 더럽히기도 하죠.
차후에 시간이 나면 여러가지 편리한 플러그인을 만들어서 공개해보고 싶네요.
Mac 을 쓰시며 IRC 를 애용하는 분이 계시면 꼭 한번 해보라고 권해드리고 싶습니다.
'IT > Mac' 카테고리의 다른 글
[ iPhone ] iPhone OS 3.0 !!! (0) | 2009.03.18 |
---|---|
[ Mac ] Colloquy (Mac IRC Client App) Plugin 만들기 (4) | 2009.01.28 |
[ Mac ] Things : 모든 생각을 쏟아내게 해주는 GTD App (2) | 2009.01.24 |
[ Mac ] 나는 왜 Mac 을 쓰는가... (6) | 2008.12.16 |
RECENT COMMENT