Emacs에는 Python Mode라는 것이 있습니다. 열혈강의 파이썬 개정판 ver2에서 예제를 쳐보던 중에 Emacs의 구문 강조 기능이 아래와 같이 이상하게 나오더군요. (뭐야.. 코드인데 왜 문자열로 인식하는거야 ㅠㅠ)

파이썬 문법은 맞지만, 제대로 인식하지 못하는 에디터

p = re.compile('''href=([^'"]\S+?)[\s>]|href="([^"]*?)"|href='([^']*?)\'''', re.I)

바로 요 한줄 때문에 바보가 되어버린 것입니다. 이게 뭐, 강조에만 문제가 생기면 그냥 무시하고 예제를 때렸겠습니다만, 아랫 부분들이 전부 문자열로 인식되버리니깐, Emacs의 TAB 기능이 마비되더군요. -_-; 스페이스바로 하나하나 indent를 맞출 수도 없는 노릇이고..

"아.. 이거 다른 에디터를 찾아봐야하나.."하고 고민하다가, 결국 위 코드를 요렇게 고쳤습니다. 작은 따옴표 3개로 감쌌던 문자열을, 큰 따옴표로 하고, 대신에 그 안에 있는 글자들에서 따옴표들에 역슬래쉬를 붙여준거죠.

p = re.compile("href=([^'\"]\S+?)[\s>]|href=\"([^\"]*?)\"|href='([^']*?)'", re.I)

요 지저분한 코드로 바꿨더니, 아래 그림처럼 잘~ 나오더군요.

에디터가 이해하기 쉽게 고쳐준 모습

Syntax Highlighting 기능은 대부분의 에디터에선 정규표현식으로 검사를 해요. 예를 들어, Editplus에서는 ^[a-z_].*\([^;]*$ 라는 정규식 패턴에 부합되는 부분을 함수 본체로 인식합니다. (그래서 자동 줄변환도 되죠!).

하지만, 언어들이 복잡해져감에 따라서 정규식으로는 모든 문법을 커버하는 것이 힘든가 봅니다.
이맥스 파이썬 모드.. 살짝 실망했어요. ㅠㅠ

-- Jong10

p.s. Windows Live Writer로 지금 이 글을 작성하고 있는데, 자꾸만 C-x C-s를 누르네요 -_-;


« Previous : 1 : ... 216 : 217 : 218 : 219 : 220 : 221 : 222 : 223 : 224 : ... 279 : Next »