vim 편집기에서 행의 첫머리에 행번호를 삽입하는 방법을 알아보자.
1. 치환 명령 실행
명령 모드에서 : (콜론) 키를 눌러 이스케이프 (escape) 모드로 바꾼다.
아래 명령을 입력하고 엔터키를 누른다.
:%s/^/\=printf(“%04d”, line(“.”))
이 명령은 문서 전체에서 행의 처음을 찾아 행번호로 치환한다.
2. 명령어 설명
명령어의 구성 요소들을 하나씩 살펴보자.
% 는 치환의 범위를 문서 전체로 지정하는 기호이다.
s 는 치환 (substitution) 명령이다.
검색 패턴 ^ (캐럿) 은 행의 처음을 의미하는 기호이다.
\= 는 대체 문자열이다. \= 의 값은 다음에 나오는 함수나 수식을 평가한 결과값이다.
printf() 는 주어진 데이터를 문자열로 포맷하여 출력하는 함수이다.
“%04d” 는 포맷 문자열이다. 주어진 데이터를 4 자리의 십진수로 포맷한다. 숫자가 4 자리 미만일 때는 빈 자리를 0 으로 채운다.
“%4d” 를 쓰면 빈 자리를 공백으로 채운다. “%-4d” 를 쓰면 숫자가 왼쪽으로 정렬된다.
line(“.”) 은 현재 행의 행번호를 리턴하는 함수이다.
printf(“%04d”, line(“.”)) 는 현재 행의 행번호를 “%04d” 포맷에 맞게 바꾸어 리턴한다.