1월, 2012의 게시물 표시

행마다 번호 매기기

별로 쓸일은 없지만 예전부터 궁금했던 문제가 하나 있었다. vi를 사용해서 행마다 번호를 매기는거였는데 비록 vi를 사용하는 건 아니지만 아무튼 꼼수를 오늘 찾았다. 원본 파일이 a b c d 이고 원하는 결과는 1 a 2 b 3 c 4 d 이다. 원본 파일을 file1.txt라고 하면 cat -n file1.txt > file2.txt 이렇게 하면 된다. 그런데 vi를 사용해서 하는 방법은 없을까. recording 기능을 사용해서 아래처럼 하면 어찌어찌 되긴 한다. 이 시간 피파랭킹은 아래와 같다. Spain Netherlands   Germany   Uruguay   England   Brazil Portugal Croatia   Italy Argentina Denmark   Chile Russia Greece France Switzerland   Sweden Côte Bosnia Japan Australia Mexico 여기에 숫자로 순위를 표시하고 싶다. 일단 Spain 앞에 1. 을 입력한다. 1. Spain Netherlands .. 그리고 커서를 N에다가 위치시키고 아래 명령을 차례데로 날려주면 된다. q a #a라는 레지스터에 레코딩 ^ k v w l y j P ^ ctrl+a j q #레코팅 끝 20@a #a레지스터를 20번 실행 이렇게 명령을 날려주면 된다. 막상 해보니 그렇게 어려운 작업은 아니지만 그래도 좀 쉬운 방법 없을까. <Tip> 전체 레지스터 확인하기 :reg 레지스터 a에 기록된 매크로 보기 :reg a 레지스터 a 수정하기 1. :let @a=' 2. ctrl+r ctrl+r 3. 매크로 수정 4. ' 입력하고 Enter 5. :reg a 로 확인 *  http://vim.wikia.com/wiki/Macros#Vie

vi 연마하기

좀 더 vi를 세련되게 사용해보자. 그 동안 잘 안섰던 기능 그리고 몰랐던 기능만 정리해 본다. ctrl + g 혹은 :f 현재 편집 중인 파일의 이름, 파일 수정 여부, 커서가 몇번째 라인인지 등등을 보여줌 ZZ 파일을 저장하고 vi를 빠져나간다. :wq 명령과 동일 ZQ 파일을 저장하지 않고 vi를 빠져나간다. :q! 명령과 동일 :e! 편집 중인 파일을 마지막으로 저장한 상태로 되돌린다. 즉, 버퍼 내용을 저장하지 않고 처음으로 되돌아가고 싶을 때 사용 :e# 동시에 여러개의 파일을 열었을 때 방금 편집한 파일을 연다. :rew 동시에 여러개의 파일을 열어서 :n으로 다음 파일을 열었을 때 :rew 명령으로 처음 편집했던 파일로 되돌아 갈 수 있다. !!command 명령 모드에서 느낌표 두번을 타이핑하면 커서가 상태줄로 옮겨 가는데 이 때 명령을 실행할 수 있다. 명령의 결과를 현재 라인에 붙혀 넣는다. 예를 들어 !!date를 하면 현재 시간을 입력할 수 있다. r, R r은 한글자만 대체하지만 R은 ESC를 누르기 전까지 문자를 대체한다. H, M, L 정말 요건 안외워진다. 차례데로 커서를 윈도우의 맨위, 중간, 맨아래로 이동 Named Buffer yy 또는 dd 명령 앞에 큰따옴표(")를 쓰고 버퍼명을 쓰면 텍스트를 네임드 버퍼에 저장한다. 이 때 버퍼명을 대문자로 사용하면 텍스트를 버퍼에 덮어 쓰지 않고 버퍼의 끝에 추가한다. 이렇게 하면 파일의 여러 부분을 버퍼에 모아두었다가 한번에 붙혀넣을 수 있다. "ayy   현재줄을 a 버퍼에 저장(덮어씀) "Ayy   현재줄을 a 버퍼에 추가 vim 실행 옵션 vim + filename   파일 편집을 마지막줄에서 시작한다.   

이클립스에서 마우스 없이 개발하기(2)

이클립스의 모든 기능과 단축키를 사용할 수는 없지만 그래도 자바 개발자라면 꼭 알아야할 단축키를 소개합니다. 단축키는 Mac기준입니다. command + . 소스 코드에서 노란 줄(warning)과 빨간 줄(error)이 그어져 있는 곳으로 커서를 이동시키면서 순환합니다. 보통 command + 1이 콤보로 같이 사용되는데 quick fix 창을 띄워서 에러를 수정할 수 있습니다. shift + command + t Type(Class)을 검색할 수 있는 창을 띄웁니다. 클래스를 찾을 때 패키지 익스플로러를 뒤진다거나 복잡한 검색(ctrl+h) 기능 대신 간편하게 사용할 수 있습니다. 검색조건에 와일드카드 문자도 사용할 수 있습니다. shift + command + r 각종 xml, properties 파일 및 템플릿 파일들을 찾을 수 있는 창을 띄웁니다. command + e 현재 열려 있는 에디터들 사이를 이동할 수 있습니다. shift + command + g 커서에 위치한 타입 혹은 메쏘드 등이 어디서 사용되거나 호출되는지 간편하게 찾을 수 있습니다. ctrl + option + h 복잡한 소스코드를 따라가야할 때 사용하면 좋습니다. 현재 메쏘드가 실행된 이후에 어떤 메쏘드들을 차례데로 실행하는지, 혹은 현재 메쏘드가 호출되기까지 어떤 메쏘드들이 실행되어 왔는지를 에디터를 열지 않고도 찾을 수 있습니다. command + t 현재 클래스 혹은 커서 아래에 있는 클래스의 상속 구조를 보여줍니다. command + l Go to Line command + [, ] 이전에 편집한 위치로 이동합니다. 파일이 닫혀 있는 상태라면 다시 열립니다. shift + command + [, ] command + F6으로 에디터 사이를 이동할 수 있지만 불편하기 때문에 저렇게 직접 설정을 해서 사용합니다. 터미널이나 크롬에서도 저 단축키를 사용하기 때문에 헤깔릴 염려가 없지요. command + j, command + shift + j,

이클립스에서 마우스 없이 개발하기(1)

어떤 툴로 어떤 프로그래밍을 하든지간에 마우스는 오른손을 귀찮게 하고 주의력을 분산시킨다. 웹질하거나 게임할 때는 마우스가 아주 편리한 도구이지만 프로그래밍할 때는 그렇지 않다. 그런 차원에서 eclipse를 vi처럼 사용할 수 있게 해주는 플러그인들이 많이 있다. vi를 사용하다가 다른 일반적인 GUI 에디터를 사용할 때 가장 불편한 점은 바로 방향키랑 페이지 스크롤이다. h, j, k, l 및 각종 페이지 스크롤 명령 대신 키보드 한쪽 구석에 있는 방향키를 사용하려면 여간 귀찮은게 아니다. 또한 command+z 대신 u키를 사용할 수 있도 블럭 편집 기능(shift+v)도 사용할 수 있다. 개인적으로 viable을 사용하는데 다른 플러그인과 비교했을 때 버그가 그나마 별로 없는거 같다.  * http://viableplugin.com/ viable은 유료지만 무료 플러그인도 찾아보면 있으니 한번쯤 사용해 보시길 추천합니다.