VimEditor를 익히기 위한 사용법.
기본적인 사용법
Editing
대상텍스트 |
change |
delete |
copy |
한단어 |
cw |
dw |
yw |
두단어 |
c2w |
2dw |
y2w |
세단어 뒤로 |
3cb |
3db |
3yb |
한행 |
cc |
dd |
yy or Y |
행끝까지 |
c$ or C |
d$ or D |
y$ |
행처음까지 |
c0 |
d0 |
y0 |
한글자 |
r |
x or X |
y1 or yh |
다섯글자 |
5s |
5x |
5yl |
Moving
이동 |
명령 |
좌하상우 |
h,j,k,l |
다음행 첫글자로 |
+ |
이전행 첫글자로 |
- |
단어 끝으로 |
e or E |
한단어 오른쪽으로 |
w or W |
한단어 왼쪽으로 |
b or B |
행끝으로 |
$ |
행시작으로 |
0 |
앞 문단으로 |
{ |
뒷 문단으로 |
} |
Searching
- Searching is Moving
라인에서 글자로 이동 |
f 글자 |
라인에서 글자로 이동 (역방향) |
F 글자 |
라인에서 글자 앞으로 이동 |
t 글자 |
라인에서 글자 앞으로 이동 (역방향) |
T 글자 |
f나 t 검색 반복 |
; |
f나 t 검색 반복 (역방향) |
, |
문자열 검색 |
/ 문자열 |
문자열 검색 (역방향) |
? 문자열 |
문자열 검색 반복 |
n |
문자열 검색 반복 (역방향) |
N |
Other commands
동작 |
명령 |
버퍼에 있는 텍스트 붙여넣기 |
p or P |
vi 실행 |
vi file |
저장하고 종료 |
ZZ |
Text manipulation
편집 |
명령 |
현재위치에 텍스트 입력 |
i |
행 맨앞에 텍스트 입력 |
I |
현재위치에 텍스트 추가 |
a |
행 맨앞에 텍스트 추가 |
A |
현재 행 아래에 새로운 행 생성 |
o |
현재 행 위에 새로운 행 생성 |
O |
행을 삭제하고 텍스트 교체 |
S |
기존내용을 새로운 텍스트로 덮어씀 |
R |
현재행과 다음행을 한행으로 합침 |
J |
대소문자전환 |
~ |
이전명령반복 |
. |
이전작업내용 되돌리기 |
u |
현재행을 원래상태로 복원 |
U |
다른 프로그램과의 연동
ctags
$ ctags . -R
후에 CTRL-] 으로 이동한 후 CTRL-T 로 빽한다.
각종 팁
쉘에서의 VimEditor 모드
set -o vi
SeeAlso http://bbs.python.or.kr/viewtopic.php?t=21176
인코딩 관련
VIM 에서 파일을 읽어보니 문자 인코딩이 깨져 있을 때, 다음과 같이 하면 곧바로 인코딩을 바꿔서 화면에 표시한다.
:e ++enc=euc-kr
이 상태에서 파일의 인코딩을 바꿔서 저장하려면
:set fileencoding=utf-8 :w
줄 마지막 문자 삭제
윈도우에 줄 마지막 M 삭제요령 (M 은 윈도우에서 Ctrl-Q Ctrl-M, 리눅스에서 Ctrl-V Ctrl-M)
:%s/^M//
탭 입력
set noet sts=8 sw=8
치환
파일내에서 파일이름을 갖고 그룹핑할때 \f 를 쓴다. 예를 들어, <img src="{{ url_prefix.agrims_static }}/images/top-button.jpg" width="24" height="57"> 를 <img src="{% url static "images/top-button.jpg" %}" width="24" height="57"> 으로 바꾸고 싶을 때.
:%s/{{\ url_prefix.agrims_static\ }}\/images\/\(\f\+\).jpg/{% url static "images\/\1.jpg" %}/g
정수를 문자열로 바꾸기 (9 -> '9')
map <F3> :s/\(\d\+\)/\'\1\'/g<CR>
:%s/\d\+/'\0'/g
:%s/\d\+/'&'/g
:%!python -c "print __import__('re').sub(r'\d+', '\'\g<0>\'', __import__('sys').stdin.read())"
GO:1234(asdf cc)|GO:1235(abcd ef) --> GO:1234|GO:1235
%s/(.[^)]*)//g