Vim에서 eBook 텍스트파일 편집 TIP


# 범위 삭제

:g/first pattern/,/end pattern/d


# 한 줄의 빈 줄만 제거

:%s/\n^\n/\r/g


# 세 줄 이상의 빈 줄을 한 줄로 합침

:%s/\n\{3,}/\r\r/g


# 공백 문자로 끝나는 행 공백문자만 삭제

:%s/\s\+$//g


# pattern이 있는 모든 행의 pattern1를 pattern2로 교체

:g/pattern/s/pattern1/pattern2/g

 

# 여는 따옴표앞 개행문자추가, 마지막행 닫는 따옴표뒤 개행문자 추가

:%s/\([\.!?]\)\n\([“"‘']\)/\1\r\r\2/g
:%s/\([\.!?]\)\([”"’']\)\n\([^“"‘']\)/\1\2\r\r\3/g


# 텍스트파일 문단 중간에 개행문자로 끊긴거 합치기

map <F11> :%s/\."\n/○/g<cr>:%s/?"\n/●/g<cr>:%s/!"\n/◎/g<cr>:%s/\.\n/◇/g<cr>:%s/?\n/◆/g<cr>:%s/!\n/□/g<cr>:%s/-\n/■/g<cr> 

map <F12> :%s/\n//g<cr>:%s/○/\."\r\r/g<cr>:%s/●/?"\r\r/g<cr>:%s/◎/!"\r\r/g<cr>:%s/◇/\.\r\r/g<cr>:%s/◆/?\r\r/g<cr>:%s/□/!\r\r/g<cr>:%s/■/-\r\r/g<cr>

.vimrc파일에서 F11, F12에 치환명령 세트 할당.
F11은 ?!.뒤 \n를 각각 다른 특수문자로 치환하고 ?!.뒤 "\n 또한 또 다른 특수문자로 치환.(일종의 마스킹 과정)
F12은 먼저 모든 개행문자를 삭제하고 F11로 치환한 특수문자를 치환전 문자로 복구.

# <feff> 유니코드문자 입력

^vufeff (^v는 ctl+v or ctl+q)

터미널에서 cat이나 type으로 여러문서를 합칠때 utf-8 bom문서는 각 문서 선두에 bom코드까지 카피되는데 이를 제거하기 위한 입력.

# ^M 문자삭제하기

:%s/^v^m//g (^v는 ctl+v, ^m은 ctl+m)


# 파일의 인코딩 지정해서 다시 불러오기

:e ++enc=인코딩


# 챕터제목이나 소재목등이 중복되어 있을 때 하나로 합치기

:%s/\([a-zA-Z0-9가-힣].*\)\n\n\1/\1/g

위의 예는 한줄 간격으로 챕터제목이 두번 들어간 경우 
 

# 연속 중복된 단어 찾기

\([가-힣]\+\s\)\1


# 이동

nG n번째 라인으로 이동
:n n번째 라인으로 이동


# 검색

* 현재 커서가 위치한 단어의 다음 위치를 검색한다.
# 현재 커서가 위치한 단어의 이전 위치를 검색한다.
. 마지막 명령어를 다시 수행한다.


# 매크로 기능

q + a   :a키에 매크로 기록 시작
        :반복을 원하는 작업
q       :매크로 기록 종료


@a      :1회 실행
@@      :방금 실행한 매크로 실행
10@a    :매크로 10회 실행