골프라는 스포츠는 공을 얼마나 적게 쳐서 홀에 집어넣는지를 겨루는 스포츠다. 타수를 줄여서 최대한 적게 친 순으로 순위가 메겨진다. VimGolf는 Vim으로 골프치는 것이 아니라 -_- 골프의 목적과 비슷하게 Vim으로 특정한 텍스트 프로세싱을 하는데 얼마나 효율적으로(얼마나 키보드 타이핑 수를 적게 하느냐 등) 해 내느냐를 겨루는 게임같은 서비스이다.
사이트 상단 우측에 설명된 것 처럼 특정 프로그램을 이용해 이 사이트에 기록을 올리는 것이 가능하다.
문제는 굉장히 다양하다. 주로 아래 스크린샷 처럼 어떤 텍스트를 어떤 식으로 바꾸어라 라는 식이다.
문제를 해결해서 위의 VimGolf 프로그램으로 포스팅을 하면 점수가 기록된다. 아래와 같은 식으로 문제 하단에 답이 나열된다.
예제로 든 케이스는 아직 답이 얼마 없는 상태라서 좋은 예는 아닌 것 같지만, 다른 문제들에는 수십가지의 답이 올라온 경우도 있다. 이 해답들을 보아 가며 연습해 보면 Vim 실력을 엄청나게 높일 수 있을 것이다.
Vim이 대단한 편집기 인건 사실이지만 이런 실력을 겨룰 정도로 문제를 해결하는 방법을 다양하게 활용 할 수 있다는 건 또다른 재미를 선사해 주는 것 같다.
심심(?)하거나 한가(?)하거나 할 일이 없거나(?) 자신의 실력을 뽐내고 싶다면 한 번 쯤 도전해 보자.
PS. Emacs에도 비슷한 시도가 있었으면 좋겠고 실제로 비슷한 것을 하는 사람들도 있지만, Emacs는 얼마나 코딩을 잘 하느냐에 따라 문제 해결 방법이 천차만별이다보니 골프 처럼 정해진 규칙 내에서 한다는 것 자체가 불가능한 상황이다. -_-;;;;
Popular Posts
-
이번 글은 굉장히 유명한 수학 함수 3가지를 적어보는 글입니다. 그리고 오랜만에 구어체가 아닌 존대말(?)로 쓰는 글이기도 하겠네요. 이번에 언급하는 함수 세 가지, 즉 ceil(), floor(), round() 함수는 C 언어 시절부터 쓰이...
-
Python 코딩하면서 겪게 된 실수를 한번 정리해 볼까.
-
XCode에 포함된건지 OSX에 기본적으로 배포되는지는 모르겠지만, 일단 기본적으로 FileMerge라는 머지툴을 이용 할 수 있다. 이걸 터미널에서 실행시킬 때는 opendiff 명령을 이용할 수 있다.
-
일반적으로 OOP에서는 생성자(Constructor)와 파괴자(Destructor) 라는 개념이 있다. 객체의 탄생과 사라지는 시점에 맞춰 시작과 끝에 호출되는 메소드로 설명되는데, 스위프트에서는 초기화(Initialization)와 마무리(Deini...
-
Emacs와 Vim은 성전(?)이라 불릴 정도의 치열한 영역싸움(거기다 감정싸움 까지도 -ㅁ-)을 벌이는 상대다. 그런데 거기에 이단이 있으니, 바로 Emacs를 vi(vim이 아니다)와 비슷하게 바꿔주는 모드가 있다. 바로 viper-mode 이다....
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
Vim에서 한글을 입력하다 ESC를 눌러서 편집모드를 빠져 나와서 다른 커맨드를 입력하려 할 때 동작 안하는 경우가 있다. 한글 상태라서 키 입력을 제대로 못 알아먹는 상태인데 수동으로 영문으로 바꿔주면 되긴 된다. 이런 불편함으로 인해 영어만을 사용...
-
node.js 는 비동기(asynchronous) 모델의 코딩을 하기 쉽도록 디자인 되어 있다. 하지만 그렇다고 무작정 쉽게 코딩이 가능한건 아니다. 기존의 동기화 기반의 멀티스레드 모델을 코딩 했거나 함수나 메서드 등의 리턴값을 이용해 로직을 작성하...
-
스위프트(Swift)는 Objective-C의 많은 기능들을 새롭게 포장해서 제공해 주고 있는데 프로토콜도 그 중 하나이다. 이 프로토콜(Protocols)과 딜리게이션 패턴(Deleagation Pattern)에 대해 간단히 정리해 본다.



0 comments:
댓글 쓰기