행마다 번호 매기기
별로 쓸일은 없지만 예전부터 궁금했던 문제가 하나 있었다. 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