동사(verb)
y
Copy : 복사 'yy'(statement) is 'y_'d
Cut : 복사한 후 삭제p
Paste : 붙여넣기m
vi 에는 26"마크"와 26 "레지스터"가 있다. (영단어 26)보통 ‘a’를 첫 번째 마크, ‘z’를 다음 마크, ‘b’는 다른 마크로, ‘e’를 또 다른 마크로 사용한다
- ma : a 마킹
- 'a : a로 이동
- `a : a로 이동, backquoet
y`a
현재 커서에서 `a까지 Copyd`a
현재 커서에서 `a까지 Cut{ }
{ : 현재커서가 위치한 단락 처음으로 이동} : 현재커서가 위치한 단락 마지막으로 이동
y?bar
현재 줄에서 “bar” 문자열을 포함하는 가장 가까운(이전) 줄까지 복사.d/foo
현재 줄에서 “foo” 문자열을 포함하는 다음 줄까지 잘라낸다.목적어(objects)
"(이중 따옴표)를 접두사로 하는(prefixing) "목적어"26개의 "이름(named)"를 사용할 수 있다."add
a에 현재 줄을 Cut."by/foo
현재커서에서 "foo"가 포함된 다음 줄까지 ‘b’에 Copy"ap
a 내용을 Paste"bP
b 내용을 현재줄 앞에 붙여넣기3J
다음 3줄을 합침.d5}
현재 줄에서 아래로 5번째 단락 끝까지 삭제기능 샘플
":" 명령 집합은 vi의 이전 버전인 ed(line editor)와 나중에 나온 ex(extended line editor) 유틸리티에서 상속되었다.:% s/foo/bar/g
전역 대체(substitution)문서 전체에서 foo를 bar로 대체
:127,215 s/foo/bar
127과 215 사이의 줄에서 처음 만나는 "foo”를 “bar로 대치한다.:.,$j
.
현재줄$
마지막줄현재 줄부터 마지막 줄까지 모두 한 줄로 합친다.
:%
은 :1,$
와 같다.
:... g
패턴에 매칭되는 모든 줄에 후속 명령을 “전역적으로(globally)” 적용.:... v
패턴에 일치하지 않는 모든 줄에 적용한다. conVerse(반대):.,+21g/foo/d
현재 줄부터 다음 21줄에 걸쳐 “foo”를 포함하는 모든 줄을 지운다.:.,$v/bar/d
현재 줄부터 파일의 끝까지 “bar”를 포함하지 않는 모든 줄을 지운다.:g/re/p
:g/re/p(grep)
정규식(regular expression) "전역(globally)에 (re)를 포함된 줄을 인쇄(print)한다.
:p
인쇄:.,+25p
한 번에 한 페이지 전체 인쇄.:% g/foo/m$
“foo”(를 포함하는) 줄은 파일의 끝으로 옮겨질 것이다.:'a,'bg/foo/j
‘a’와 ‘b’ 마크 사이의 줄에서 foo 문자열을 포함하는 모든 줄을 합친다.:r foo
현재 줄에 “foo”라는 파일의 내용을 삽입.:r!
명령의 결과를 읽는다.vi 세션을 일시적으로 정지하고, 명령을 수행하고, 임시 파일에 출력을 리다이렉트하고, vi 세션을 다시 실행하여 임시 파일에서 내용을 읽어온다.
1G
G는 goto 명령어로 1번째 줄로 간다.G
는 마지막줄로 간다.
:so
:source 약어@
등록된 @의 내용을 실행한다.0i:r
현재 줄을 유효한 :r 명령으로 만든다.cdd
“c” 레지스터에 그 줄을 잘라내고@c
명령을 실행한다.
반응형
'ide > vim' 카테고리의 다른 글
vim book (0) | 2017.04.14 |
---|---|
Vim unable to open swap file Error (0) | 2017.03.22 |
github.com/crooloose/.vimrc (0) | 2017.02.27 |
neovim (0) | 2017.02.13 |
neovim :help (0) | 2017.02.09 |