2013년 11월 28일 목요일

[Emacs] visual-regexp, 인터랙티브한 문자열 변경 확장

Emacs에서 기본적으로 제공되는 문자열 변경 함수(query-replace 등등)는 굉장히 불친절(?)하다. 뭔가 비쥬얼적으로 인터랙티브하게 변화되는 부분을 보여주지 않음을 안타까워 하며 관련 확장을 찾아보다 visual-regexp 라는 확장을 발견하게 되었다.

2013년 11월 21일 목요일

[Emacs] 멀티 쉘 버퍼 shell-switcher

Emacs의 특수한 술인 Eshell은 하나의 버퍼만 사용이 가능하다. 하지만 shell-switcher 확장을 이용하면 다수의 Eshell 버퍼를 띄우는 것이 가능하다.

2013년 11월 13일 수요일

[Emacs] 자동 페어(?) 확장 Smartparens

Emacs에는 여는 괄호가 입력되었을 때 자동으로 닫는 괄호를 입력해 주는 확장이 많다. 예를 들어 textmate-mode 라던가 autopair, paredit 등등... 이번에는 새롭게 발견한 Smartparens를 간단히 소개한다.

2013년 11월 11일 월요일

[iOS] 화면이 꺼지는 것을 막기

굉장히 단순한 포스팅이지만 메모메모~ 특별한 경우 (예를 들어 게임 등) 화면이 자동으로 꺼지지 않기가 필요 할 때가 있다. 이럴 때는 다음 한 줄의 코드로 화면 자동 꺼짐을 막을 수 있다.

2013년 9월 30일 월요일

[Python] 'in' 오퍼레이터 이야기

파이썬의 내장(built-in) 키워드 중 in 이라는 명령어는 다양한 용도로 이용 할 수 있다. 이 오퍼레이터의 용도는 이름에서 유추 가능하듯이 넓은(?) 어디에서(?) 무엇인가를 판단 혹은 지칭하는 것이다.

뭔가 말이 이상한데 예제를 통해 살펴보자.

2013년 9월 27일 금요일

[Cocoa] 코코아 바인딩 사용 시 데이터가 UI에 표시되지 않는 경우

OS X 용 앱의 UI를 개발 할 때 유용한 기능이 바로 코코아바인딩이다. 이 기능은 코드 레벨의 오브젝트(변수)와 UI 사이를 이어주어서 별 다른 코드 없이도 데이터를 UI에 렌더링 할 수 있게 해 준다.

그런데 바인딩을 제대로 했음에도 데이터가 표시되지 않거나 등의 문제를 겪을 수도 있다.

2013년 9월 16일 월요일

수명이 짧은 개발자라는 직업

프로그래밍을 하다 막히면 근처 치킨집 사장에게 상의하라는 농담이 있다. 실제로 그런 경우도 있긴 있겠지만, 정확한 의미는 '개발자는 대부분 일찍 퇴임하고 자영업 등 다른 업종으로 뛰어들거나 개발직종이 아닌 직종으로 옮겨간다' 라는 말이다. 즉 개발자라는 직종의 수명은 짧다.

그리고 주변에서도 이런 생각을 가지고 있는 사람이 많다. 어쩔 수 없는 한국의 현실이라고 하기 전에, 왜 이런 생각이 잘못되었다고 고치자는 인식이 없는지가 답답하다.

2013년 9월 6일 금요일

[Emacs] 모드라인 꾸미기 main-line

Emacs에서 mode-line 이란 하단의 미니버퍼 위에 정보가 표시되는 라인을 의미한다. 여기에는 편집중인 파일이나 버퍼의 이름과 각종 모드를 비롯한 커서 위치 등등 다양한 정보가 표시된다.

유용한다거나 한건 아니지만 이 모드라인을 원하는 대로 바꾸거나 예쁘게(?) 꾸미는 것 또한 가능하다. 여기서는 main-line이라는 Powerline에서 fork된 확장을 소개한다.

2013년 9월 5일 목요일

[Git] 인터렉티브 git add

Git의 특성 상 수정하거나 변경된 파일은 Staging이라는 절차를 거쳐야만 커밋이 가능하다. 그런데 스테이징 할 파일이 여러개이지만 전부가 아닌 경우 하나하나 일일이 입력하는 건 매우 귀찮고 시간 손해가 많은 일이다.

물론 외부 툴을 이용해서 쉽게 하는 방법도 있겠지만 여기서는 쉘(터미널/콘솔) 상에서 외부 도구 없이 Interactive Git Add 기능을 설명한다.

2013년 9월 3일 화요일

[*NIX] 총천연색 cat (Colorized cat)

프롬프트가 평범(?)해서 그럴지도 모르겠지만, 간혹 cat을 이용해 파일 내용을 볼 때 색상 문제로 헷갈리는 경우가 있었다. 그래서 이 cat에 문법 강조(Syntax Highlight) 기능을 추가 할 수 없나 찾아보니 몇 가지 대체방법이 있었다.

간단한 설명을 하자면, cat는 일반적으로 텍스트 파일 내용을 보기 위한 *NIX(UNIX/Linux 등등) 유틸리티이다. 물론 UNIX류의 특징 답게 그냥 보기 외에도 파이프를 통해 다른 텍스트 프로세서에 전달하는 용도로도 이용할 수도 있겠지만 일반적인 사용법이 그렇다는 이야기다.

2013년 8월 30일 금요일

이클립스 컬러 테마

이클립스 기본 색상이 영 마음에 안들어서 좀 찾아보니 이클립스에도 컬러 테마 사이트가 있었다. 이 색상을 적용하는 간단한(?) 방법을 소개해 본다.

참고로 색상 변경은 소스 코드 편집기에만 적용된다. 너무 안타깝다.

2013년 8월 29일 목요일

[Emacs] android-mode

이클립스 ADT의 버벅거리는 환경에 참을 수 없어서 Emacs용 Android IDE를 찾아보니 좀 거대한 환경을 요하는 것이 많았다. 그러다 간단히 도움을 줄 수 있는 android-mode 라는 마이너모드를 발견했다.

2013년 7월 18일 목요일

PC 데이터 삭제 등으로 年 13만원 전기료 절약 ?????

이 글은 아래 링크의 기사에 진위여부에 관한 글이다.

[연합뉴스] PC 데이터 삭제 등으로 年 13만원 전기료 절약

사실 제목만 보면 '왠 미친 사기꾼이 사기치나' 라는 생각밖에 들지는 않지만, 대체로 기사 내용 자체는 준수한 편이다.

2013년 7월 17일 수요일

[Emacs] web-mode

요즘 웹이라 하면 HTML 뿐만이 아니라 CSS와 Java Script가 기본이다. 거기다 템플릿 기반의 웹개발도 일반적이다. 그래서 웹개발에 이용되는 하나의 소스 파일에는 최소한 3가지 이상의 문법이 이용된다고 볼 수 있다.

Emacs에서 하나의 버퍼는 하나의 메이저 모드만 이용 할 수 있다는 제약은 이런 웹 개발에 있어서는 좀 문제가 있는 편이다. 기본적으로 html-mode와 js-mode, css-mode 등 필요한 메이저모드는 지원되지만 개별 버퍼에 하나만 쓸 수 있다. 그래서 multi-web-mode나 Mumamo 같은 여러 모드를 섞는 특수 모드 등이 사용되기도 한다. (최하단 링크 참고)

이번에 소개하는 web-mode는 멀티 모드가 아닌 하나의 모드에서 다양한 문법의 하이라이트와 편집 기능을 지원하는 통합형(?) 메이저모드이다.

2013년 7월 12일 금요일

[Emacs] moe-theme 색상 테마

여기 저기를 싸돌아 다니다 moe-theme 라는 것을 알게 되어서 한번 적용해 봤다. moe-theme는 Emacs용 컬러 테마 패키지로써 어둡거나 밝은 두 가지 색상테마와 시간대별로 색을 다르게 표시해 주는 특이한 기능을 제공한다.

2013년 7월 9일 화요일

[Emacs] 괄호/블럭 강조모드 show-paren-mode

show-paren-mode는 괄호나 코드 블럭 등 블럭 형태의 코드를 쉽게 구분하기 위한 마이너모드이다. 아마도 Emacs 24 버전을 기준으로 별도로 require해야 하는 것도 없는 기본적인 모드이다.

2013년 6월 14일 금요일

신형 맥프로 잡담

WWDC2013을 통해 애플이 내 놓은 것 중 화제가 되는 것 두 가지는 iOS 7과 신형 맥프로이다. 이 글은 이 중 맥프로에 관한 지극히 주관적인 잡담이다.

2013년 6월 7일 금요일

[Cocoa] NSString의 경로(path)와 관련된 기능들

NSString 은 문자열 클래스임에도 불구하고 순수 문자열의 기능을 넘어서는 다양한 기능을 제공한다. 이 중 파일이나 폴더의 경로(path)와 관련된 기능들을 소개해본다.

[Cocoa] 파일이나 폴더를 휴지통으로 이동

보통 파인더에서는 파일을 삭제하는 대신 '휴지통으로 이동' 이라는 방법을 제공한다. 휴지통에 버려 뒀다가 실수로 삭제한 파일을 다시 복원시키기 위함이다.

2013년 6월 4일 화요일

[Emacs] projectile을 이용한 아주 약간 스마트한(?) 파일 열기

helm-projectile을 이용해 Emacs로 프로젝트의 파일을 여는건 쉽게 된다. 하지만 약간의 귀찮음이 동반되어서 약간의 개선된 기능을 하나 만들어 봤다.

2013년 5월 22일 수요일

사파리 한글 폰트 문제 해결 Gridth 확장

Gridth는 사파리 브라우저에서 사이트 별 사용자 CSS를 적용하기 위한 확장이다. 오해의 여지가 있는데, 제목처럼 한글 폰트 문제를 해결하기 위한 전문적인 확장은 아니다.

2013년 4월 25일 목요일

EmacsWiki가 변했다

Emacs 사용자라면 꼭 들러보게 되는 정보의 바다 EmacsWiki 사이트의 레이아웃이 개편되었다. 물론 위키의 특성 상 내용이 바뀐게 아니라 겉모습만 바뀌게 되었다.

2013년 4월 18일 목요일

2013년 3월 19일 화요일

[Emacs] 멀티 프레임 커맨드

개인적인 취향으로 Emacs를 쓸 때 프레임(보통은 윈도우라고 부르지만 Emacs에서 윈도우는 하나의 창 혹은 이 창을 분할한 영역을 의미)을 하나 밖에 쓰질 않았다. 하지만 최근엔 여러 프로젝트의 소스를 참고할 일이 많아지다 보니 결국 멀티 프레임 기능을 쓰게 되어서 관련 기능을 메모한다.

2013년 3월 15일 금요일

Emacs 24.3 - OS X 풀스크린 지원

얼마전에 Emacs 24.3이 공식적으로 릴리즈 되었다. 변경사항이야 워낙 많아서 열거하긴 어렵겠지만 중요한 것이 하나 추가되었다면 OS X 라이언 풀스크린 지원이 공식적으로 포함되었다는 점 일 것이다.

2013년 3월 1일 금요일

[Emacs] 모드 사용법 및 단축키 도움말 시스템

Emacs의 도움말 시스템인 C-h 키는 Emacs를 사용하는 도중 굉장히 자주 이용하게 될 도움말 키이다. Tutorial은 이제 Emacs를 시작하는 이들에게 좋겠지만, 개인적으로 이 도움말 단축키 중 하나를 꼽으라면 바로 C-h m 키를 꼽고 싶다. 특히 단축키가 기억나지 않거나 궁금할 때 이용 할 수 있는 최고의 단축키이다.

[Python] 어느날 import sqlite3 가 실패하기 시작했다

우선 배경 설명부터 하자. OS X 환경에서 Homebrew를 통해 Python 및 기타 여러가지를 설치하고 사용하는 터미널 유저이다. 그리고 업무로 sqlite3를 이용하는 스크립트를 작성하고 있다. 일단은 잘 돌아가고 잘 사용하고 있는 스크립트이다.

그런데 어느날 부터 이 스크립트가 오동작 하기 시작했다. sqlite3 모듈을 import 하는 데서 오류가 발생하는 것이었다.

2013년 2월 28일 목요일

[Vim] TODO 관리용 플러그인 TaskList

코딩 도중 나중에 꼭 해야 할 것이라는 의미에서 TODO로 시작되는 주석문을 달 때가 있다. 물론 사람마다 다르겠지만, 개인적으론 TODO 라는 주석문으로 코딩 내용을 축약해서 적어놓고 나중에 그 내용을 보고 구현(Implementation)하는 방식을 종종 사용한다. 그런데 코드 내용이 길 때는 TODO를 검색해서 코딩하기엔 약간 귀찮을 때도 있다.

TaskList는 Vim에서 TODO 등 특정 키워드 내역을 한방에 정리해서 보여주는 플러그인이다.

2013년 2월 27일 수요일

[Emacs] 버퍼의 내용을 실행시키기 위한 확장 quickrun.el

Emacs에서 코딩을 하다가 특정 루틴을 실행시켜 보고 싶을 때 라던가, 혹은 쉘 스크립트 결과물을 Emacs 안에서 바로 실행시켜서 버퍼에 적고 싶다던가 등등 현재 버퍼의 내용을 실행시켜보고 싶은 때가 있을 수도 있다(-_-). quickrun.el은 이렇게 버퍼의 내용을 실행시켜서 결과를 확인하거나 현재 버퍼에 넣고 싶을 때 활용 할 수 있는 Emacs용 확장이다.

2013년 2월 25일 월요일

[Emacs] 확장 관리 시스템 ELPA/MELPA/Marmalade

이전에 적었던 ELPA 관련 글들이 약간 부실하다는 느낌이 들었고 거기다 Marmalade 라는 또다른 패키지 저장소가 있기 때문에 추가로 정리글을 적어본다.

2013년 2월 22일 금요일

[Emacs] Projectile 및 Helm 확장

Projectile은 Emacs에서 제공해 주지 않는 기능인 프로젝트 단위의 파일 관리를 할 수 있게 해 주는 확장이다. 예를 들자면 프로젝트 내의 파일을 연다던가....

[Emacs] Helm

이번에 소개할 확장은 Helm(투구? 헬멧? 하이바? -_-;;;;) 이다. 간략하게 뭐라고 해야 할지 난감한 확장이지만, 일단 Anything과 비슷한 확장이다. 그도 그럴 것이 Anything에서 새끼친(fork) 프로젝트이기 때문이다.

2013년 2월 21일 목요일

[Vim] 검색어 자동완성 SearchComplete

Vim에서 검색어를 탭키로 자동완성 해 주는 플러그인 SearchComplete 를 우연히 알게 되었다. 굳이 더 자세한 설명은 필요없을 정도로 기능이 알기 쉬우면서도 편한 플러그인이다.

2013년 2월 20일 수요일

[Emacs] ELPA/MELPA를 통한 확장 패키지 관리

이 글은 Emacs 24에서 ELPA/MELPA를 통해 패키지를 관리하는 가장 기본적인 방법에 대한 것이다. 이미 이 블로그에도 ELPA에 관한 글을 썼던 적도 있고 Emacs24에 관한 글에서도 언급한 적이 있지만 한번 더 소개해 볼까 한다.

2013년 2월 19일 화요일

[Emacs] highlight-symbol 을 이용한 심볼 검색

앞서 auto-highlight-symbol-mode 를 이용한 글을 썼었는데 오류와 버그로 인해 가끔 동작하지 않는 문제가 있었다. 다만 Emacs 24에서만 발생하는 문제 일 수도 있다. auto-highlight-symbol-mode가 제대로 동작한다면 굳이 이 글을 참조 할 필요는 없다.

2013년 2월 18일 월요일

[Emacs] auto-highlight-symbol-mode

auto-highlight-symbol-mode 는 Emacs 에서 커서가 위치한 단어를 검색하는 (Vim의 * 키 커맨드 비슷한) 기능을 찾던 도중 발견한 마이너모드 확장이다.

2013년 2월 13일 수요일

[Emacs] emacs-git-gutter

Sublime Text 2 용으로 GitGutter 라는 확장 플러그인은 Git에 등록된 파일을 편집하면 편집된 내용을 알 수 있게 라인번호 왼쪽에 뭔가를 표기해 주는 확장이다. 인기가 좋은지 유용한지는 잘 모르겠지만, 어쨌든 Emacs용으로도 이 git-gutter가 나왔다.

2013년 1월 15일 화요일

Vim으로 즐기는 골프(?) VimGolf

골프라는 스포츠는 공을 얼마나 적게 쳐서 홀에 집어넣는지를 겨루는 스포츠다. 타수를 줄여서 최대한 적게 친 순으로 순위가 메겨진다. VimGolf는 Vim으로 골프치는 것이 아니라 -_- 골프의 목적과 비슷하게 Vim으로 특정한 텍스트 프로세싱을 하는데 얼마나 효율적으로(얼마나 키보드 타이핑 수를 적게 하느냐 등) 해 내느냐를 겨루는 게임같은 서비스이다.

[Vim] 라인 단위 정렬

특정 키워드를 정리하는 코딩을 하고 있었는데 가끔 중복되는게 있어서 검색으로 일일이 찾아보면서 코딩을 하고 있었다. 그런데 입력한 코드를 정렬해 두면 미리 검색해 보지 않아도 어느 정도 쉽게 중복되는 것이 눈에 들어오지 않을까 하는 생각에서 Vim에서 라인 단위 정렬을 하는 방법을 찾아보게 되었다.

Vim에서는 sort라는 명령을 자체적으로 지원한다. 혹은 *NIX 유틸리티를 이용하는 것도 가능하다.