반응형


출처 : http://www.antsys.co.kr/data/vi_editor.htm


자주 쓰는 내역에 대해서 잘 정리가 되어 있어서 자주보려고 포스팅 합니당.


vi 시작 명령어

vi filename

vi +18 filename

vi +/"문자열" fn

vi -r filename

view filename

파일 열기, 작성

18행으로 파일 열기

"문자열"의 처음발생 단어부터 열기

손상된 파일 회복

읽기 전용으로 파일 열기

vi 커서 이동 명령어

h()

j()

k()

l()

왼쪽으로 커서 이동

아래로 커서 이동

위로 커서 이동

오른쪽으로 커서 이동

w

e

b

Enter

Back space

Space Bar

^

$

H

M

L

숫자G

오른쪽 한 단어의 끝 부분으로 커서 이동

오른쪽 한 단어의 앞 부분으로 커서 이동

왼쪽 한 단어의 앞 부분으로 커서 이동

한 행 아래로 커서 이동

한 문자 왼쪽으로 커서 이동

한 문자 오른쪽으로 커서 이동

행의 맨 왼쪽으로 커서 이동

행의 맨 오른쪽으로 커서 이동

화면의 맨 위로 이동

화면의 중간으로 이동

화면의 맨 아래로 이동

숫자만큼 지정한 줄로 커서 이동

Ctrl + f

Ctrl + b

Ctrl + d

Ctrl + u

Ctrl + e

Ctrl + y

한 화면 위로 이동

한 화면 아래로 이동

반 화면 위로 이동

반 화면 아래로 이동

한 줄씩 위로 이동

한 줄씩 아래로 이동

문자,행 삽입 명령어

a (종료:ESC)

A (종료:ESC)

i (종료:ESC)

I (종료:ESC)

o (종료:ESC)

O (종료:ESC)

커서 오른쪽에 문자 삽입

커서 오른쪽, 행의 끝에 문자 삽입

커서 왼쪽에 문자 삽입

커서 왼쪽, 행의 처음에 문자 삽입

커서 아래에 행 삽입

커서 위에 행 삽입

텍스트 변경 명령어

cw (종료:ESC)

cc (종료:ESC)

C (종료:ESC)

s (종료:ESC)

S (종료:ESC)

r

r-Enter

J

xp

~

u

U

:u

.

단어 변경

행 변경

커서 오른쪽의 행 변경

커서가 위치한 문자열 대체

커서가 위치한 라인의 문자열 대체

커서 위치 문자를 다른 문자로 대체

행 분리

현재 행과 아래 행 결합

커서 위치 문자와 오른쪽 문자 교환

문자형(,소문자) 변경

이전 명령 취소

행 변경 사항 취소

이전의 최종 행 취소

이전 최종 명령 반복

텍스트 삭제 명령어

x

5x

dw

dd

5dd

db

D

:5,10d

커서가 있는 문자 삭제

커서가 있는 위치부터 5개의 문자를 삭제

현재 커서가 있는 한단어 삭제

커서가 있는 라인 삭제

커서가 있는 라인부터 5개의 라인 삭제

커서의 위치에서 꺼꾸로 한단어 삭제

커서 오른쪽 행 삭제

5-10번째 행 삭제

복사 및 이동 명령어

yy

Y

P

p

 

:1,2 co 3

:4,5 m 6

yank 또는 복사

yank 또는 복사

yank되거나 삭제된 행 현재 행 위에 삽입

yank되거나 삭제된 행 현재 행 아래에 삽입

1-2행을 3행 다음으로 복사

4-5행을 6행 위로 이동

행 번호 설정 명령어

:set nu

:set nonu

행 번호 표시

행 번호 숨기기

행 찾기 명령어

G

21G

Ctrl + G

파일의 마지막 행으로 가기

파일의 21번째 행으로 가기

현재의 filenameline수를 알려줌

탐색 및 대체 명령어

/검색할 문자열/

?검색할 문자열?

n

N

:g/search-string/s//replace-string/gc

:s/str/rep/

:1,.s/str/rep/

:%s/str/rep/g

 

:.$/aaa/bbb/

오른쪽 아래 방향으로 문자열 검색

왼쪽 위 방향으로 문자열 검색

문자열의 다음으로 계속 검색

문자열의 이전으로 계속 검색

각 발생 탐색 후 확인하고 대체

 

 

현재 행의 strrep로 대체

1부터 현재 행의 strrep로 대체

파일 전체 strrep로 전부 대체

커서의 위치로부터 화일의 끝까지 있는 모든 aaabbb로 대체

화면정리 명령어

Ctrl + l

불필요한 화면정리 후 다시 표시

파일 명령어

:r filename

:34 r filename

커서 다음에 파일 삽입

파일을 34번째 행 다음에 삽입

보관 및 종료 명령어

:w

:w filename

:wq

ZZ

:q!

q

e!

 

변경사항 보관

버퍼를 파일로 보관

변경사항 보관 후 vi 종료

변경사항 보관 후 vi 종료

변경사항 보관하지 않고 종료

수정한 파일을 저장하지 않고 vi 종료

수정한 것을 무시하고 다시 편집상태로





출처 : http://gyuha.tistory.com/157


정리가 잘 되어 있습니다. 다른분 블로그의 내용을 가져왔습니다.


VIM 명령어 정리

 

 

1. 저장 및 종료

명령어

설명

:w

저장

:w file.txt

file.txt 파일로 저장

:w » file.txt

file.tx파일에 덧붙여서 저장

:q

vi 종료

:q!

vi 강제 종료

ZZ

저장 후 종료

:wq!

강제 저장 후 종료

:e file.txt

file.txt파일을 불러옴

:e

현재 파일을 불러옴

:e#

바로 이전에 열었던 파일을 불러 옴

 

 

2. 입력모드 전환

a

커서 위치 다음칸부터 입력

A

커서 행의 맨 마지막부터 입력

i

커서의 위치에 입력

I

커서 행의 맨 앞에서 부터 입력

o

커서의 다음행에 입력

O

커서의 이전 행에 입력

s

커서 위치의 한글자를 지우고 입력

cc

커서위치의 한 행을 지우고 입력

 


3. 이동

h

왼쪽으로 이동

l

오른쪽으로 이동

j

아래행으로 이동

k

위 행으로 이동

w 또는 W

다음 단어의 첫 글자로 이동

b 또는 B

이전 단어의 첫 글자로 이동

e 또는 E

단어의 마지막 글자로 이동

<CR>

다음행 글자로 이동

^

그행의 첫 글자로 이동

$

그 행의 마지막 글자로 이동

+

다음 행의 첫 글자로 이동

-

위 행의 첫 글자로 이동

(

이전 문장의 첫 글자로 이동

)

다음 문장의 첫 글자로 이동

{

이전 문단으로 이동

}

다음 문단으로 이동

H

커서를 화면 맨 위로 이동

z<CR>

현재 행을 화면의 맨우로 이동

M

커서를 화면 중안으로 이동

z.

현재 행을 화면의 중앙으로 이동

L

커서를 화면 최하단으로 이동

z-

현재 행의 화면의 최하단으로 이동

[n]H

커서를 위에서 n행으로 이동

[n]L

커서를 아래에서 n행으로 이동

ctrl+u

반 화면 위로 스크롤

ctrl+d

반 화면 아래로 스크롤

ctrl+b

한 화면 위로 스크롤

ctrl+f

한 화면 아래 스크롤

gg 또는 1G

문서의 맨 처음으로 이동

G

문서의 맨 마지막 행으로 이동

[n]G 또는 :[n]

n행으로 이동


 

4. 삭제

x 또는 dl

커서 위치의 글자 삭제

X 또는 dh

커서 바로 앞의 글자 삭제

dw

현재 위치부터 스페이스 까지 삭제

diw

현재 위치에 있는 단어 삭제

dd

커서가 있는 행을 삭제

[n]dd

현재 커서 부터 아래 n번째 줄까지 삭제

dj

현재 커서와 아래 줄 삭제

[n]dj

현재 커서 부터 아래 n+1번째 줄까지 삭제

dk

현재 커서와 윗로 n+1번째 줄까지 삭제

[n]dk

현재 커서와 줄 삭제

D 또는 d$

현재 커서가 있는 위치부터 행 끝까지 삭제

d0 또는 d^

현재 커서가 있는 위치부터 행 시작 까지 삭제

 

 

5. 복사 & 붙여넣기

yy 또는 Y

커서가 있는 한 행 복사

p

현재 커서에 붙여 넣기, 행 복사 일 경우 아래 줄에 붙여넣음.

P

현재 커서위치의 앞행에 붙여 넣기, 행 복사일 경우에는 줄에 붙여 넣음

[n]yy 또는 [n]Y

커서가 위치한 이후로 n행 복사

[n]p

n번 만큼 붙여넣기 반복

 

 

6. 블록 지정

v

블록 지정

V

줄단위 블록 지정

ctrl+v(윈도우에서는 ctrl+q)

비쥬얼 블록 지정

블록 지정 중 명령

y

블록 복사 하기

r

치환

d

지정 블록 지우기

U

대문자로 바꾸기

u

소문자로 바꾸기

~

대소문자 전환

J

행 합침

:

선택 영역에 대하여 ex명령

<

행 앞에 탭 제거

>

행 앞에 탭 삽입

 

 

7. 문자열 탐색 및 치환

/[문자열]

문자열 탐색

:s/old/new

현재 행의 처음 old new로 교체

:s/old/new/g

현재 행의 모든 old new로 교체

:10,20s/old/new/g

10행부터 20행까지 모든 old new로 교체

[블록지정중]:s/old/new/g

지정 블록 내에서 모든 old new로 교체

:-3,+4s/old/new/g

현재 커서 위치에서 위로 3행 아래로 4행까지의 old new로 교체

:%s/old/new/g

문서 전체에서 old new로 교체

:%s/old/new/gc

문서 전체에서 old new로 확인하며 교체

:g/pattern/s/old/new/g

pattern이 있는 모든 행의 old new로 교체

 

 

8. vim 정규 표현식

^

행의 첫 문자([]안에서는 not의 의미)

$

행의 끝

.

아무 문자나 한 문자 의미

\|

or의 의미

[ ]

[]사이의 문자 중 하나

\{min,max\}

min이상 max이하 반복됨

*

앞의 내용이 0번 이상 반복됨

\+

앞의 내용이 1번 이상 반복됨

\<

단어의 시작

\>

단어의 끝

\n

새 행 문자

\t

탭 문자

 

 

9. vim 확장 정규 표현 문자열

\i

변수 지정에 사용되는 문자들 [0-9A-Za-z]

\I

\i와 같지만 숫자는 제외

\k

keyword로 사용하는 문자 [_\.\-0-9A0Za-z]

\f

파일 이름으로 사용하는 문자

\p

프린트 가능한 문자

\P

\p와 같지만 숫자는 제외

\s

whitespace character(공백과 탭)

\S

non-whitespace character

\d

숫자 [0-9]

\D

숫자가 아닌 문자 [^0-9]

\x

16진수 숫자 [0-9A-Fa-f]

\X

16진수 숫자가 아닌 문자 [^0-9A-Fa-f]

\o

8진수 숫자 [0-7]

\O

8진수 숫자가 아닌 문자 [^0-7]

\w

영문 단어의 시작에 사용되는 문자 [0-9A-Za-z-]

\W

영문 단어에서 사용되지 않는 문자 [^0-9A-Za-z-]

\h

영문 단어의 시작에 사용되는 문자 [A-Za-z-]

\H

영문 단어의 시작에 사용 되지 않는 문자 [^A-Za-z-]

\a

모든 알파벳 [A-Za-z]

\A

알파벳이 아닌 문자 [^A-Za-z]

\l

소문자 [a-z]

\L

소문자가 아닌 문자 [a-z]

\u

대문자 [A-Z]

\U

대문자가 아닌 문자 [^A-Z]

\e

Esc

\t

Tab

\r

캐리지 리턴

\b

백스페이스

\n

새 행

 

 

10. POSIX 문자 클래스

문자 클래스

내용

[:alnum:]

알파벳과 숫자 [A-Za-z0-9]

[:alpha:]

알파벳 [A-Za-z]

[:cntrl:]

제어 문자

[:blank:]

탭과 공백 문자

[:digit:]

숫자 [0-9]

[:graph:]

제어문자와 공백 문자를 제외한 문자

[:lower:]

소문자 [a-z]

[:upper:]

대문자 [A-Z]

[:print:]

제어문자를 제외한 문자, 즉 프린터 할 수 있는 문자

[:punct:]

[:graph:]문자 중 [:alnum:]을 제외한 문자. ex)!,@,#,$,%,^....

[:space:]

화이트스페이스 ex)공백, , 케리지 리턴, 새행, 수직탭, 폼필드

[:xdigit:]

16진수

 

 

11. 파일 버퍼

:files 또는 :ls 또는 :buffers

버퍼 목록 나열

:b[n]

n번 버퍼로 이동

:bd[n] 또는 :bw[n]

n번 버퍼를 삭제 (n이 없으면 현재의 버퍼를 삭제)

:bp[n]

이전 버퍼로 이동,n 붙이면 n번만큼 이전 버퍼로 이동

:bn[n]

이후 버퍼로 이동,n 붙이면 n번만큼 이후 버퍼로 이동

:sb[n]

창을 수평분할 하여 n번 버퍼를 로드

:bf

첫 번째 버퍼로 이동

:bl

마지막 버퍼로 이동

양식의

 

12. Tab

Vim 7.0부터 추가된 기능

:tabnew

새로운 탭을 열기

:tabnew b.txt

b.txt가 존재하면 열고, 없으면 새로 만들어서 연다

:tabf b.txt

b.txt가 존재하면 열고, 없으면 에러 발생

:tabn[n]

다음 탭을 열기,n 붙이면 n번 만큼 이동

:tabp[n]

이전 탭을 열기,n 붙이면 n번 만큼 이동

:tabs

탭 목록 보기

:tabclose

탭을 닫기

:tabfirst

첫번째 탭을 열기

:tablast

마지만 탭을 열기

:tabdo %s/old/new/g

모든 탭에 적용을 원할 때 (모든탭에서 old new로 변경)

 


13. 다중 창 관련 명령

명령모드

ex모드

결과

창생성

CTRL-W s

:[N]sp[plit]

현재 파일을 두 개의 수평 창으로 나눔

CTRL-W v

:[N]vs[plit]

현재 파일을 두 개의 수직 창으로 나눔

CTRL-W n

:new

새로운 수평 창 생성

CTRL-W ^ 또는 CTRL-W CTRL-^

 

수평 창으로 나누고 이전 파일의 오픈

CTRL-W f

 

창을 수평으로 나누고 커서 위치의 파일 오픈

CTRL-W i

 

커서 위치의 단어가 정의된 파일을 오픈

창삭제

CTRL-W q

:q[uit]!

현재 커서의 창을 종료

CTRL-W c

:close

현재 커서의 창 닫기

CTRL-W o

:on[ly]

현재 커서의 창만 남기고 모든 창 삭제

창이동

CTRL-W h

 

왼쪽 창으로 커서 이동

CTRL-W j

 

아래쪽 창으로 커서 이동

CTRL-W k

 

위쪽 창으로 커서 이동

CTRL-W l

 

오른쪽 창으로 커서 이동

CTRL-W w

 

창을 순차적으로 이동

CTRL-W p

 

가장 최근에 이동한 방향으로 이동

CTRL-W t

 

최상위 창으로 이동

CTRL-W b

 

최하위 창으로 이동

창이동

CTRL-W r

 

순착으로 창의 위치를 순환

CTRL-W x

 

이전 창과 위치를 바꿈

CTRL-W H

 

현재창을 왼쪽 큰화면으로 이동

CTRL-W J

 

현재창을 아래쪽 큰화면으로 이동

CTRL-W K

 

현재창을 위쪽 큰화면으로 이동

CTRL-W L

 

현재창을 오른쪽 큰화면으로 이동

창 크기 조정

CTRL-W =

 

창의 크기를 모두 균등하게 함

CTRL-W _

 

수평 분할에서 창의 크기를 최대화

CTRL-W |

 

수직 분할에서 창의 크기를 최대화

CTRL-W [N]+

:res[ize] +N

창의 크기를 N행 만큼 증가

CTRL-W [N]-

:res[ize] -N

창의 크기를 N행 만큼 감소

CTRL-W [N]>

 

창의 크기를 오른쪽으로 N칸 만큼 증가

CTRL-W [N]<

 

창의 크기를 오른쪽으로 N칸 만큼 감소

다중창 사용의 경우 대부분 붙여서 사용하는 명령어는 CTRL을 같이 눌러도 똑같은 역활을 하는 경우가 많다.
) CTRL-W j CTRL-W CTRL-J와 같다.

 

 

14. 마킹마킹위치로 이동

m[a-z0-9]

파일내에서 마킹, 현재 버퍼내에서만 이동 함 예)ma

m[A-Z]

전체영역에서 마킹, 다른 파일로도 이동 함.

`[A-Za-z0-9]

마킹된 위치로 돌아감 예)`a

’[A-Za-z0-9]

마킹된 행의 처으으로 이동함. )‘a

직전에 커서가 위치하던 행의 처음

``

직전의 커서 위치로 이동

’”

이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 행의 처음으로 이동

`"

이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 위치로 이동 


반응형
반응형



사실 모든 Path를 외우지 않는 이상 창을 분할해서 열어서 편집할 때 그 파일이 어디에 위치해 있는지 알기 어렵다.
그래서 Vim에서는 윈도우 탐색기와 같이 디렉터리 탐색기 플러그인 툴을 기본적으로 제공하는데 netrw 라는 툴이다.
이 기능은 창을 분할하여 탐색하고 동시에 편집도 가능하게 해주는 강력한 Vim의 툴로써 그 사용법을 알아두면 매우 이로울 것이다.

------------------------------------------------------------------------------------------------------------------------------------

 명령어  설명  모드
 :e 디렉토리경로  명령행 모드에서 edit 또는 e를 한 다음 디렉토리 경로를 입력하면 해당 디렉토리에 대해서 netrw 툴이 실행된다.  명령행 모드
 <Enter>  해당 디렉토리 또는 파일을 연다.  netrw 명령어
 w 또는 j 또는 방향키 ↓  netrw 내에서 아래로 이동하는 방향키  netrw 명령어
 b 또는 k 또는 방향키 ↑  netrw 내에서 위로 이동하는 방향키  netrw 명령어

 i  파일을 표시할 방법을 변경한다.
(한줄 방식, 파일 정보 표시방식, 와이드 방식, 트리 방식)
 netrw 명령어
 s  정렬 방식을 바꿔준다 (time, size, name 방식)  netrw 명령어
 o  커서 위치의 파일을 수평 분할된 새창으로 열어준다.  netrw 명령어
 v  커서 위치의 파일을 수직 분할된 새창으로 열어 준다.  netrw 명령어
 p  커서 이취의 파일을 미리 보기 창으로 열어준다. (미리 보기 파일의 창 닫기는 일반 모드로 CTRL-w z 를 사용한다)  netrw 명령어
 P  커서 위치의 파일을 바로 이전에 생성된 창에 열어준다. 바로 이전에 생성된 창이 없을 시에는 수평 분할된 새 창으로 열어준다.  netrw 명령어
 R  커서위치의 파일의 파일명을 바꾼다.  netrw 명령어
 t  새로운 탭으로 분할하여 열어준다.  netrw 명령어
 -  상위 디렉토리로 이동한다. 디렉토리가 보이는 것에서 ../에 커서를 위치시키고 엔터를 눌러도 된다.  netrw 명령어



현재 수평분할해서 파일을 하나 열어 놓은것을 확인할 수 있다. (s 키)
수평분할된 창에서 아래창을 보면 Netrw 의 현재 상태를 알 수 있는데
/root 로 현재 위치를 표시하고
Sorted by 즉 정렬방식은 name으로 되어 있고
파일 표시 방식(i 키)를 이용하여 정보표시방식으로 되어 있다.
현재 커서의 위치는 하얀색 가로 줄로써 확인할 수 있다. 
Quick Help라고 써 져있는 부분을 보면 간단한 실행 단축키를 알 수 있다. 더욱 자세한 설명은 F1 키를 눌러 Help를 참고하자.



 






반응형
반응형


이제 Vim 에디터를 조금 더 고급스럽게 써보는 방법인 창분할 과 탭 사용법에 대해서 알아보도록 하자.
사실 본인의 경우는 창을 분할해서 사용하기 보단 여러개의 터미널로 접속해서 사용하였다. 물론 이렇게 하게 되면 각 창별로 내가 셋팅해서 사용할 수 있기 때문에 편하긴 하지만 서버에 터미널 접속 갯수의 제한이 있거나 동시에 파일을 여러개 띄어놓고 한개의 창에서 작업하기에는 창 분할을 사용하는게 더욱 효율적이다. 물론 어느 것이나 그렇지만 익숙해지면 정말로 훌룡한 기능이다. 비쥬얼 베이직이나 여러 다른 편집 툴 역시 탭이나 창분할을 지원하기도 하지만 Vim은 빠르고 사용법이 간단하다는 장점이 있으니 Vim 에디터의 창분할 기능을 적극적으로 사용해서 사용해보자.

------------------------------------------------------------------------------------------------------------------------------------

 명령어  설명   모드 
 :#sp filename  #에 숫자를 넣은 행의 크기 만큼 창이 수평 분할된다. filename을 넣게 되면 해당 파일을 오픈하거나 없으면 새파일을 만든다. 같은 파일에서는 일반모드로 #ctrl-w s 를 치면 #크기 만큼 창이 수평으로 분할된다.  명령행 모드
 :#vs filename  #에 숫자를 넣은 열의 크기 만큼 창이 수직 분할된다. filename을 넣게 되면 해당 파일을 오픈하거나 없으면 새파일을 만든다. 같은 파일에서는 일반모드로 #ctrl-w v 를 치면 #크기 만큼 창이 수직으로 분할된다.  명령행 모드
 :#new filename  #에 넣은 숫자만큼 상하로 창을 수평 분할하여 위쪽에 창에는 새로운 파일을 생성하여 표시한다. 일반모드에서 #ctrl-w n 를 치면 단축키로 사용할 수 있다.   명령행 모드
 :#vnew filename   #에 넣은 숫자만큼 좌우로 창을 수직 분할하여 왼쪽에 창에는 새로운 파일을 생성하여 표시한다.  명령행 모드
 ctrl-w ctrl-방향키
또는 ctrl-w 방향키
또는 ctrl-w ctrl-h,j,k,l (소문자)
 현재 창에서 해당 방향의 창으로 이동할 때 사용된다. 방향키 대신 소문자로 h,j,k,l 키를 사용할 수 있다. 대신 대문자를 사용하면 창을 해당으로 보내게 된다.  일반모드
 ctrl-w ctrl-w
 ctrl-w w
 현재 창에서 오른쪽 방향으로 이동합니다. 오른쪽 끝 창이라면 아래로 내려감.   일반모드
 ctrl-w ctrl-p
 ctrl-w p
 바로 이전에 사용한 창으로 이동.  일반모드
 ctrl-w =  모든 창의 크기를 동일하게 조절  일반모드
 ctrl-w #+  #크기만큼 창의 크기를 키운다. #이 생략되어 있을시에는 1로 판단.  일반모드
 ctrl-w #-   #크기만큼 창의 크기를 줄인다. #이 생략되어 있을시에는 1로 판단.  일반모드


아래의 다양한 크기로 조정된 창들이 수평 수직분할이 되어 있으며 맨 위에는 새로운 파일을 생성해서 다양하게 관리하고 있다.




또한 처음 vim을 시작할 때 여러 파일을 분할하여 창을 열고 싶다면 -o 또는 -O 옵션을 사용하여 열면 된다.
두 창을 상하로 분리하여 사용하고 싶다면 소문자 o를 좌우로 분리해서 사용하고 싶다면 대문자 O를 사용하면 된다.
먼저 위치는 것이 위쪽에 그리고 왼쪽에 위치하게 된다.

ex) vim -o John.txt set.x t.x 를 했을 때의 결과 화면




또한 창 분할의 강력한 기능을 소개하자면 바로 두 개의 파일을 비교하는 기능이다.
vim 을 처음 시작할 때 -d 옵션을 주고 vim -d filename.x filename2.x 와 같이 입력하게 되면 아래와 같이 두개의 수직분할된 창을 열어 서로 다른 내용을 표시해준다. 원본을 놔두고 수정사항을 체킹해야 하거나 디버깅 할 때, 혹은 버젼을 관리해야 할 때 유용하게 사용할 수 있을 것이다.



------------------------------------------------------------------------------------------------------------------------------------

창 분할의 경우는 생성할 수록 창의 크기가 n개의 갯수만큼 분할 되기 때문에 한번에 코드 내용을 많이 보면서 편집할 때는 적절하지 않다.
따라서 여타 편집기와 같이 vim에서는 tab 기능을 제공하는데 마우스가 아닌 모든 것을 키보드로 처리해야 한다. 명령어가 직관적이어서 크게 어렵지 않으니 한번 살펴보자.

 명령어  설명   모드 
 :#tabedit filename
또는 :#tabe filename
 #번째 탭에 filename에 해당 하는 파일을 엽니다. #이 생략되면 현재 열려 있는 탭 바로 뒤에 탭을 생성하여 파일을 엽니다. filename이 생략되면 빈 이름의 파일이 생성됩니다.  명령행 모드
 :#tabnew filename  #번째 탭에 파일을 생성합니다. #이 생략되면 현재 열려 있는 탭 바로 뒤에 탭을 생성하여 파일을 생성합니다. filename이 생략되면 빈 이름의 파일이 생성됩니다.  명령행 모드
 :#tabclose
또는 :#tabc
 #번째 탭의 파일을 닫습니다. #이 생략되면 현재의 탭을 닫습니다.  명령행 모드
 :#tabnext
또는 :#tabn
 #번째 다음 탭을 봅니다. #이 없으면 바로 다음 탭을 엽니다.  명령행 모드
 #gt  #번째 탭을 엽니다. #이 생략되면 바로 다음 탭을 엽니다.  일반 모드
 #ctrl-PageDown  #번째 탭을 엽니다. #이 생략되면 바로 다음 탭을 엽니다.  일반 모드
 :#tabprevious
또는 :#tabp
 #번째 이전 탭을 봅니다. #이 없으면 바로 이전 탭을 엽니다.  명령행 모드
 #gT  #번째 이전 탭을 엽니다. #이 생략되면 바로 이전 탭을 엽니다.  일반 모드
 #ctrl-pageUp  #번째 이전 탭을 엽니다. #이 생략되면 바로 이전 탭을 엽니다.  일반 모드
 :tabmove #
또는 :tabm #
 #번째 탭으로 이동합니다. #이 생략되면 가장 마지막 탭으로 이동합니다.  명령행 모드


아래 그림파일을 보면 t1.x 파일 즉 3번째 탭이 할성화 되어 있다. 또한 파일 명 바로 앞에 + 가 있는 건 수정내용이 있다는 것을 의미한다. 여러 파일을 동시에 열때와 달리 탭을 이용해서 열게 되면 굳이 저장하지 않아도 이동이 가능하다.

창을 분할할 때도 옵션을 줘서 파일을 열었듯이 탭 역시 처음 실행시 옵션을 주면 아래와 같이 탭을 가지고 실행 시킬 수 있다. 옵션은 -p 이다.
ex) vim -p filename.x filename1.x

 




 




반응형
반응형


이전의 내용은 Vim 에디터의 초급 단계의 내용으로 중급 단계로 가기 위한 작은 첫 걸음을 띄기 위해서는 파일 관련 기능을 필히 숙지해야 한다.
물론 파일 관련 기능을 알았다고 해서 중급사용자라고 할 순 없지만 그래도 Vim 에디터를 조금은 사용할 줄 알게 되는 수준은 되는 것 같다.

이번 파일 관련 기능1 에서는 다양하게 파일을 열고 닫는 법에 대해서 알아보도록 하자. 

------------------------------------------------------------------------------------------------------------------------------------

 명령어  설명   모드 
 :e #  추가로 편집하고자 하는 파일 이름 인 #을 넣으면 이전 편집하던 내용을 잠시 놔두고 다른 파일을 편집한다. 없으면 새롭게 생성한다.
대신 이전에 수정하던 파일은 반드시 수정하고 넘어가야 한다. 수정하지 않고 강제로 넘어가면 수정했던 내용은 지워진다.
어떠한 파일을 편집 할 수 있는 한개씩 확인하고 싶다면 tab을 누르면 되고 모두 확인하고 싶다면 ctrl-d 를 누르면 된다. 
 명령행 모드
 ctrl-6 또는 ctrl-^  이전에 편집했던 내용으로 돌아갈때 누르면 된다. 역시 현재 편집했던 내용은 저장하지 않으면 없어진다.  명령행 모드
 vim #1 #2 #3 #4....  vim 에디터는 여러개의 파일을 동시에 열 수 있다. vim 이후에 여러개의 파일명을 공백과 함께 입력하면 동시에 여러개의 파일을 편집할 수 있다.  명령행 모드
 :#n  여러개의 파일을 동시에 오픈했을 때, 현재 편집하던 파일이 아니라 #1 -> #2 로 가고자 할때
:n을 누르면 된다. 한번에 여러개를 건너 띌때는 # 숫자를 기업하면 된다.
ex) :2n 을 입력하면 #1 -> #3 으로 이동함.
 명령행 모드
 :#N  :n이 정방향으로 증가한다면 :#N은 뒤쪽으로 이동한다.
ex) 현재 편집하던 파일이 #4라면 :3N 을 입력하면 #4 -> #1 로 가게 된다.
 명령행 모드
 :qa  여러개의 파일이 열려 있을 때 다른 파일이 편집중이라 닫히지 않을때는 qa를 누르면 모두 닫히게 된다. 혹은 q! 를 눌러서 강제로 종료해도 된다.   명령행 모드
 :w #  #에 해당하는 파일 이름을 저장할 수 있다.
w는 write의 약자로 wrie라고 써도 된다.
 명령행 모드
 :sav #  #에 해당하는 파일을 다른 이름으로 저장한다.
sav는 saveas로 써도 된다.
 명령행 모드
 :up  현재 바뀐 내용만 저장하게 된다. w는 내용이 바뀌던 안 바뀌던 모두 저장하므로 서버에 터미널이 여러개 붙어 있을 과부하를 주게 되는데 up은 상대적으로 적은 과부하를 주게 되어 유리하다.  명령행 모드
 :x  기능은 up 을 한 다음에 q 를 동시에 한 것과 같다. 즉 wq와 같은 기능을 하지만 wq가 upq 와 같은 효과라서 wq보다 효율적인 명령이다. wq보다 x를 사용하기를 추천한다.  명령행 모드


------------------------------------------------------------------------------------------------------------------------------------

여러개의 파일을 동시에 열었을 때 해당 파일들을 동시에 편집하고 관리하는 좀 더 강력한 기능에 대해서 알아보자

 명령어  설명  모드
 :ls
 :buffers
 :files
 현재 열려 있는 파일 목록을 확인한다.  명령행 모드 
 숫자ctrl-6
 :e #숫자
 숫자번째 파일 목록을 연다.   일반모드 
 :0f  현재 파일을 목록에서 제거합니다.
연결된 파일이 있다면 해제하여 이름없음 파일로 바꿉니다. 
 명령행 모드 
 :r  해당파일을 목록에 끼워넣는다.   명령행 모드 
     


또한 비쥬얼 베이직 이나 기타 편집 툴에도 있는 기능에 대해서 소개하겠다.
바로 해당 함수나 헤더파일 등의 정의부로 이동하는 단축키인데, #include<stdio.h>의 경우 stdio.h 파일의 내용을 보고 싶을 때가 있다면 해당 부분에 커서를 옮기고 gf를 눌러보자. 해당 파일의 정의부로 이동할 수 있을 것이다. 물론 :e /usr/include/stdio.h 와 같은 방법으로도 열 수 있지만 좀 더 편리한 단축키 사용법을 알아놔서 나쁠 것 없으니 이 기회에 알아놓자.

 gf   현재 커서 위치의 파일명을 열어준다.
기본적으로 등록된 /usr/include 와 같은 검색 위치를 제외한 추가적인 위치를 등록하고 싶다면 :set path+=경로명을 쳐주거나 .vimrc 파일에 등록해서 사용하면 된다. 
 일반모드
 ctrl-w f   현재 커서 위치의 파일명을 분할된 창에 열어준다.  일반모드
 ctrl-w gf   현재 커서 위치의 파일명을 탭에서 열어준다.  일반모드






반응형
반응형


이전에 Vim 에디터로 편집을 할 때, 굉장히 알고 싶었던 내용이 많았는데 '손에 잡히는 Vim' 서적을 보다보니 알고 싶었던 내용이 제법 있다.
이런 기능만 알아도 엄청나게 빠르게 편집을 할 수 있었는데 예전에 그걸 몰랐다는 사실이 조금 아쉽게 느껴진다.
그렇게 어려운 내용은 아니지만 조금 더 부지런히 찾아보고 공부할 껄 하는 후회가 밀려온다.

하지만 시작이 반이고 가장 늦었다고 할때가 가장 빠르다고 누가 말했던가.
지금이라도 열심히 익혀보자.

------------------------------------------------------------------------------------------------------------------------------------

이번에는 문자열 교체하기에 대해서 알아보자.
크게 내용이 어렵지는 않고 간단하다.

 명령어  설명   모드 
 (범위)s,바뀌어야할 단어,바꿀내용,옵션

ex) 1,$s,man,boy,g
총 4개의 부분을 나뉘어져 있다.
가장 처음에는 문서에서 교체할 범위를 지정하고 s를 그 다음에는 구분자로 ,를 써주고 바꿀단어를 쓴 뒤 구분자를 써준다. 또 바꿀내용 뒤에도 구분자를 쓰고 옵션을 준다.
 
 명령행 모드
 
위의 예시에서 지정된 범위인 1,$ 는 첫 번째 줄에서 마지막행까지 즉 문서 전체인 %를 말한다.
s는 교체 명령어이다. s 다음에 나올 문자는 교체에 사용할 문자로 사용된다.
현재는 s 다음에 ,(콤마)를 사용하겠다고 표시했으며 다른 문자를 사용해도 무방하다.   
저번에 "Vim 에디터에 대해 알아보자 - 1 (기본 입력키2)"에서 간단히 포스핑 했었는데
Vim 에디터에서 사용하는 범위 지정에 쓰이는 특수기호(메타기호)에 대해서 복습해보자.

 .  현재 행을 의미.  메타기호
 $  마지막 행을 의미.  메타기호
 +#  현재 위치에서 #만큼 아래 행을 의미.  메타기호
 -#  현재 위치에서 #만큼 위 행을 으미.  메타기호
 %  문서(파일) 전체를 의미.  메타기호

즉 위의 1,$s,man,boy,g 는 %s,man,boy,g 와 같은 역할을 하게 된다.
매우 직관적으로 판단할 수 있다. 문제는 까먹지 않는게 .... ㅡㅡ

그럼 마지막에 붙는 옵션에 대해서 알아보자.
 옵션  설명   메타기호
 g  범위 내에 검색된 모든(global) 문자열을 교체.   메타기호
 i  대소문자를 무시함.  메타기호
 c  문자열을 교체하기 전 교체 여부를 확인.

y/n/a/q/l/^E/^Y 등의 답변을 해야 한다.
y:yes, n:no, a:all, q:quit, l:line 정도 알아두자.
 메타기호
 e  교체 과정 중 에러를 무시. 에러 표시도 안함.  메타기호

그럼 마지막으로 확인해보자.
%s,man,boy,gcie 이렇게 하면 모든 옵션을 붙여서 문서 전체에 man 문자를 교체하는데 교체할때마다 다 물어봐라 이 뜻이 된다.

------------------------------------------------------------------------------------------------------------------------------------

재미있는 팁

1. 어떠한 문자의 ASCII 코드 값을 알고 싶을 때 굳이 인터넷이나 표를 찾아보지 말고 원하는 문자에 커서를 위치시키고 명령행 모드로 :as를 입력해보자. 10진수 8진수 16진수로 표시할 때의 ASCII 코드 값을 알려준다.

2. 특수문자를 입력하고자 할때 입력모드에서 ctrl-v, V 를 입력하게 되면 특수문자 ^E, ^M ^Y 등을 입력할 수 있다.

반응형
반응형


Vim 에디터에는 문자열 검색기능을 지원한다.
아직은 잘 모르지만 Ctag라는 플러그 인을 사용하면 테크를 검색할 수 있다고 알고 있는데 예전에 선배가 사용하는 것을 보고 뭔가 멋지다라고 생각했던 기억이 난다. 하지만 우선 Vim에 내장되어 있는 간단한 문자열 검색 기능에 대해서 알아보자.


 명령어 설명  모드 
 f#  현재 행에서 문자열 #을 전방으로 검색할때 사용한다. 일반모드 
 F#  현재 행에서 문자열 #을 후방으로 검색할때 사용한다.  일반모드
 t#  현재 행에서 문자열 #을 전방으로 검색한 뒤, 검색어의 한 칸 앞으로 이동한다.  일반모드
 T#  현재 행에서 문자열 #을 후방으로 검색한 뒤, 검색어의 한 칸 뒤로 이동한다.  일반모드
 ;  가장 최근에 검색한 명령을 재 검색한다.  일반모드
 ,  가장 최근에 검색한 명령을 반대 방향으로
재검색한다.
 일반모드
 *  현재 커서가 위치한 곳에 단어를 검색하고 하이라이트 해준다.  일반모드 
/#  # 단어를 검색하고 하이라이트 해준다.  명령행 모드 
n  검색된 단어에서 다음 하이라이트 위치로 이동한다.  일반모드
 검색된 단어에서 반대방향의 하이라이트 된 단어로 이동한다.  일반모드
 /화살표  이전에 검색한 단어내역을 본다.  명령행 모드
 :set hls  검색하는 단어에 하이라이트를 지정한다.
nohls를 하게 되면 하이라이트가 해제된다.
 명령행 모드

------------------------------------------------------------------------------------------------------------------------------------

아래 그림 내용은 명령행 모드에서 /int 로 int 문자열을 가진 모든 부분을 검색해본 경우이다.
원래는 하이라이트가 꺼져 있어서 :set hls 를 사용하여 하이라이트를 줬더니 해당 내용 내에 int 내용은 모두 노란색으로 하이라이트가 표시되어 해당 내용이 어디에 있는지 확인할 수 있다. 이 상태에서 일반모드라면 n 이나 N 을 주면 다음 혹은 이전에 어디에 검색한 문자열이 있는지 커서를 이동시켜줘서 좀 더 편리하게 디버깅 혹은 코드 내용을 검색 할 수 있겠다.






반응형
반응형


Vim 에디터를 사용할 때 기본적으로 사용하는 옵션에 대해서 알아보자.

1. 편집기 좌측에 라인숫자 표시.
2. 편집기 사용시 기본적인 문법 검사.
3. 자동으로 들여쓰기
4. Tab의 크기, 블록 이동시 열의 넓이

 명령어  설명  모드
 :set  현재 에디터에 셋팅된 옵션 목록을 볼 수 있다.
:set all 라고 명령하게 될 때 vim에서 셋팅할 수 있는 모든 옵션의 종류를 볼 수 있다.
 명령행 모드
 :set #  # 써있는 속성을 on 할수 있다. no# 라고 할 경우 해당 속성을 off 시킬 수 있다.
 #! 이라고 할 경우 해당 값이 반전 된다(on/off)
 명령행 모드
 :set #=값  속성중에 특정 값을 갖는 속성들이 있다. #속성들의 특정한 value 값을 대입하기 위해서 사용한다.  명령행 모드

해당 옵션 값을 설정할 때 앞에 :set을 붙여야 한다.
ex) :set nu

 nu 또는 number  화면에 라인의 숫자를 표시한다.   명령행 모드
 ai 또는 autoindent  자동 들여쓰기를 쓴다. (sw로 설정한 값으로)   명령행 모드
 cindent  C언어 스타일의 들여쓰기를 사용.
(sw로 설정한 값으로)
  명령행 모드
 ts=값 또는 tablestop=값  탭(Tab) 크기를 지정하는 값으로 지정한다.   명령행 모드
 sw=값 또는 shiftwidth=값  블록 이동시 지정하는 열의 너비.   명령행 모드

해당 옵션을 셋팅할 때는 :set을 붙이지 않는다.
 :syntax enable  문법검사를 실시한다. (지정된 색깔테마로)  명령행 모드
 :syntax clear  문법검사를 해제한다.  명령행 모드
 :colorscheme  에디터에 색깔 테마를 지정한다.  명령행 모드

------------------------------------------------------------------------------------------------------------------------------------


아래의 그림 파일은 색깔 테마와 문법 검사 그리고 행 표시를 하지 않은 경우이다.




:set nu     (라인 표시)
:syntax enable     (문법 검사 on)
:colorscheme default      (색깔 테마 on)
(참고로 색깔 테마는 16가지 정도가 더 있으므로 colorscheme라고 친 뒤 한 칸을 띄고 ctrl+D를 치면 셋팅 가능한 다른내역을 확인할 수 있다)

를 한 뒤 확인해 보면 아래 문법이 틀린 부분은 색깔이 다르게 표시되거나 강조가 되어 있어서 편집과 동시에 확인할 수 있다.
또한 화면 좌측에 라인에 행별로 라인의 숫자가 표시 된 것을 확인 할 수 있다. 우분투의 경우 syntax와 colorscheme가 기본적으로 셋팅되어 있으니 별도로 셋팅해주지 않아도 괜찮다. 하지만 만약에 꺼져 있을 때 아래의 옵션 셋팅 내용을 기억해 두자.



또한 편집하다가 대괄호를 치고 Enter 키를 치면 행의 처음으로 돌아가게 때문에 자동으로 들여쓰기 등을 옵션으로 셋팅해놓으면 좀 더 편리하게 편집할 수 있다. 또한 그 값도 적당하게 조절해 놓으면 좀 더 손쉽고 편리하게 자신에게 최적화 하여 편집할 수 있게 된다.
이번에는 tablestop(ts) 값과 shiftwidth(sw) 값을 조정하면 어떻게 변화하는지 확인해보면

:set sw=20       (들여쓰기 값 20)
:set ts=2         (탭 크기 2)
:set cindent    (C언어 스타일의 들여쓰기)

일부로 printf 문만 들여쓰기로 하고 나머지는 tab으로 진행해 보았다. int나 for의 경우는 왼쪽 끝과 2칸 정도 밖에 차이나지 않지만 printf문 이후로는 엔터를 쳐서 들여쓰기를 했더니 중괄호로 부터 20의 넓이만큼 벌어져 있는 것을 확인할 수 있다.




:set 을 치면 현재 편집기에 셋팅된 옵션 내용을 확인 할 수 있는데
현재 확인해보면
cindent
tabstop=2
syntax=c
shiftwidth=20
등이 셋팅 되어 있는 것을 확인 할 수 있겠다.



------------------------------------------------------------------------------------------------------------------------------------
그럼 이렇게 편집기를 열때마다 해당 내역을 저장해야 하는가?
다행이 vim 에디터는 처음 실행될때 자신의 홈디렉토리에 .vimrc 파일을 로드하여 기록되어 있는 내용을 먼저 로드한다.
따라서 내가 항상 위의 내역을 저장해 놓고 사용하고 싶다면. 자신의 홈디렉토리로 가서 .vimrc 파일을 생성(혹은 수정)하여 위의 내용을 기록해서 사용하면 된다.

주의할 사항은 콜론은 사용하면 안됀다. 아래와 같이 셋팅하여 사용하면 되겠다.
파일명은 .vimrc 이다.   . 을 빼먹으면 안됀다.


 

반응형
반응형

------------------

알아두면 더욱 편리한 Vim 에디터 기본 입력키 2번째.
Advanced.


 명령어  설명 모드 
 ^  행의 맨 처음으로 이동 하지만 공백은 제외.  일반모드
 Home키  행의 맨 처음으로 이동.  일반모드
 $  행의 맨 끝으로 이동 (End 키와 같음).  일반모드
 ctrl + B  위로 한 화면 스크롤(PageUP키와 같음).  일반모드
 ctrl + F  아래로 한 화면 스크롤(PageDown키와 같음).  일반모드
 ctrl + U  위로 1/2 화면 스크롤.  일반모드
 ctrl + D  아래로 1/2 화면 스크롤.  일반모드
 #gg  #행으로 이동. 없을 시 맨 처음으로 이동.  일반모드
 #G  #행으로 이동. 맨 마지막으로 이동.  일반모드
 :#  #행으로 이동.  명령행 모드
 ctrl - G, g  현재 문서의 위치정보를 하단에 표시.  일반모드
 :d  현재 행을 잘라내기.  명령행 모드 
 D  현재 위치에서 현 행의 끝부분까지 잘라내기  일반모드
 J  아래 행을 현재 행의 끝에 붙임.
(아래행의 공백은 무시)
 일반모드
 :pu  p와 같은 기능. 현재 행에 붙여넣기.  명령행 모드
 P  현재 행 위에 붙여넣기.  일반모드
 :y  현재 행을 레지스터에 복사.  명령행 모드
 Y  현재 행을 레지스터에 복사.  일반모드
     


범위 지정에 사용하는 특수 기호와 사용법
 .  현재 행.  메타 문자
 $  마지막 행.  메타 문자
 %  문서 전체.  메타 문자
 +#  현재 위치에서 #만큼 아래 행을 의미.  메타 문자
 -#  현재 위치에서 #만큰 위의 행을 의미.  메타 문자
 :10, 25d  10행에서 25행까지 잘라내기.  명령행 모드
 :%y  문서 전체 복사. (%는 1,$와 동일하다)  명령행 모드
 :.,+20y  현재 행부터 아래로 20행을 복사.  명령행 모드
 :-10,+5d  현재 행부터 위로 10행, 아래로 5행 삭제.   명령행 모드
 :40pu  40번 행에서 레지스터의 내용을 붙여넣기.   명령행 모드

 v  일반 비주얼 모드로 현재 커서 위치에서 블록을 지정.  일반 모드
 V  비주얼 라인 모드. 현재 커서가 위치한 행에서 행 단위로 블록을 지정.  일반 모드
 ctrl-V  비주얼 블록 모드로, 열(Column) 단위로 블록을 지정. ctrl-Q로 대신 할 수 있음.  일반 모드



반응형
반응형


Vim 에디터는 크게 3가지 모드로 나늬어 진다.

일반모드(Normal Mode)
명령행모드(Command Line Mode) or 콜론모드 (Colon Mode)
입력모드(Insert Mode)

여기에서 비주얼 모드(Visual Mode) 라는 것 까지 추가로 존재하긴 하지만 주류는 아니기 때문에 크게 3가지 모드에 집중하여서 기본 입력키 모드를 설명하도록 하겠다. 우선 각각의 모드에 대해 간단히 설명을 하자면

일반모드 : 명령행 모드와 입력모드 중간의 교량역할을 하는 모드로써 좀 더 편하게 편집을 할 수 있도록 여러 기능을 제공한다.
명령행모드 : 일반모드에서  : (콜론)을 누르게 되면 명령행 모드로 진입하게 된다.
                  편집을 편하게 하는 일반모드의 기능과 중복되는 기능들이 존재하며 편집하는 파일을 직접적으로 컨트롤(저장, 종료 등)하는
                  명령들을 내린다. ESC를 누르면 일반모드로 전환된다.
편집모드 : 일반모드에서 i, I, a, A, o, O, R 등의 키를 눌러서 진입이 되며 실제 텍스트에 대한 편집을 하게 되는 모드이다. 
               ESC를 누르면 일반모드로 전환된다.
비주얼 모드 : 블록단위로 처리할 때 사용된다.

------------------------------------------------------------------------------------------------------------------------------------

Vim 에디터는 기본적으로 GUI모드가 아닌 CUI 모드이기 때문에 키보드의 입력으로 모든 것을 처리해야 한다.
따라서 사용자가 익숙해지기 전까지 처음 사용시에는 많이 불편할 수 있지만
해당 모드들의 단축키를 이해하고 편하게 사용할 수 있게 된다면
마우스로 손을 움직여야 하는 시간과 불편함은 떨쳐버릴 수 있을 것이다. 또한 GUI로 된 여타 툴 보다 처리 속도 또한 월등히 빠르고 가볍고
실행하는 PC나 서버에 부담을 주지 않기 때문에 여러개가 실행되더라도 부담 없는 가볍지만 매우 강력한 툴이다.

------------------------------------------------------------------------------------------------------------------------------------

 명령어 설명  모드 
 :w  현재 편집하던 내용을 저장한다.  명령행 모드
 :q  현재 편집내용을 끝내고 에디터를 종료한다.
변경 내용이 있을 때는 :q로 종료할 수 없고 저장하지 않고 끝내기인 :q!로 종료해야 한다.
 명령행 모드
 :wq  편집하던 내용을 저장하고 에디터를 종료한다.  명령행 모드
 명령어 뒤에 붙이는 옵션으로 강제로 해당명령어를 수행한다는 뜻이다.
:q! -> 저장하지 않고 강제종료
:w! -> 강제로 덮어쓰기
:wq! -> 강제로 덮어쓰고 종료.
 명령행 모드 (옵션)
 a, A  a : 현재 커서위치에서 한 칸 뒤로 이동 후 입력모드로 전환
 A : 현재 형에서 끝으로 이동한 후 입력 모드로 전환
 일반 모드 (에서 입력모드로 전환시)
 i, I  i : 현재 커서위치에서 입력모드로 전환
 I : 현재 행 맨 앞으로 이동 후, 입력모드로 전환
 일반 모드 (에서 입력모드로 전환시)
 o, O  o : 현재 행에서 아래 새로운 행 삽입 후 입력모드로 전환
 O : 현재 행에서 위로 새로운 행 삽입 후 입력모드로 전환
 일반 모드 (에서 입력모드로 전환시)
 R  수정 모드로 글자가 덮어 씌어짐.  일반 모드 (에서 입력모드로 전환시)
 x  현재 커서의 문자를 삭제한다.
Delete키와 동일한 기능
 일반 모드
 dd  현재의 행을 잘라내기한다.
잘라낸 행은 vim이 가진 고유한 저장소에 저장된다. dd 앞에 숫자를 붙이면 현재행에서 n의 숫자 만큼 잘라내기한다.
 일반 모드
 yy  현재 행을 복사한다.
복사한 행은 vim이 가진 고유한 저장소에 저장된다. yy 앞에 숫자를 붙이면 현재행에서 n의 숫자 만큼 복사한다.
 일반 모드
 p  가장 마지막에 복사 혹은 잘라내기한 내용을 해당 위치에서 부터 붙여넣기 한다.  일반 모드
 u  undo 기능. Vim의 undo 기능은 매우 강력하여 편집기가 열린순간부터 편집한 모든 내용을 되돌리기 할 수 있다.  일반 모드
 ctrl - R  redo 기능.  일반 모드
 h  왼쪽 방향키와 같은 기능. 앞에 n의 숫자를 붙인 만큼 이동이 가능.  일반 모드
 j  아래쪽 방향키와 같은 기능. 앞에 n의 숫자를 붙인 만큼 이동이 가능.  일반 모드
 k  위쪽 방향키와 같은 기능. 앞에 n의 숫자를 붙인 만큼 이동이 가능.  일반 모드
 l  오른쪽 방향키와 같은 기능. 앞에 n의 숫자를 붙인 만큼 이동이 가능.  일반 모드


반응형
반응형

 

Vim(Vi IMproved)은 Bram Moolenaar가 만든 vi 호환 텍스트 편집기이다. 본래 아미가 컴퓨터 용 프로그램이었으나 현재는 마이크로소프트 윈도, 리눅스, 맥 오에스 텐을 비롯한 여러 환경을 지원한다.

Vim은 vi와 호환되면서도 독자적으로 다양한 기능을 추가하여 사용자의 편의를 돕고 있다. 특히 Vim 스크립트 등을 사용해서 자유롭게 편집 환경을 변경하거나, 확장된 정규 표현식 문법, 강력한 문법 강조 기능, 다중 되돌리기, 유니코드를 비롯한 다국어 지원, 문법 검사 등을 쓸 수 있다는 점이 강점으로 꼽힌다. 한편으로는 vi와 마찬가지로 처음에 배우기 어렵다는 점이 단점으로 지적되는데, 이를 극복하기 위해 쉬운 Vim 모드를 지원한다.

- 위키피디아 -
-----------------------------------------------------------------------------------------------------------------------------

학생 때나 지금이나 Vim 에디터를 많이 사용하지만 너무 서투르게 사용하고 단순한 단축키나 기능을 잘 몰라서 여러가지 사용해 보며 이 vim 에디터에 대해 정리해보기로 했다.

스타크래프트할때 마우스를 빨리 움직이거나 한글 문서편집할때 단축키로 파파팍 하는 사람들이 많듯이 Vim 에디터를 사용하여 손가락이 보이지 않을 정도로 빠르게 편집하는 사람들을 보면 뭔가 간지난다고 생각했었다. 실제로 편집속도도 빠르고 편해보였다.
뭐... 내가 연습을 많이해도 그렇게 할 것 같지는 않지만 ㅡㅡ....

우선 Emacs는 다음에 사용해 보기로 하고 우선 가장 범용적인 툴인 Vim 에디터에 대해서 자세히 공부해 보기로 했다.

Vim 에디터는 Vi 에디터와 크게 다르지 않지만 어드벤스드로 넘어갈 수록 vi에 비해 강력한 기능이 추가되었다고 알고 있다.
아직 해보지는 않았지만.. 뭐 실제로 해보면 어떠한 기능이 달라졌는지 알 수 있을 것 같다. Vim 에디터를 다루고 C로 코딩한지 어엿 10년이 가까이 되가지만 이제서야 내가 가장 많이 사용하는 한가지 툴에 대해 본격적으로 공부를 해보려 한다는게 조금 부끄럽기도 하다 ㅡㅡ.... 아아...앙대

이제 이걸로 밥 먹고 살아야 되니 한번 제대로 공부해봅시다.



------------------------------------------------------------------

출판사 : 인사이트
저 : 김선영
발행일 : 2011년 4월 10일

------------------------------------------------------------------------------------------------------------------
해당 카테고리는 "손에 잡히는 Vim" 의 내용을 본인이 공부하기 위해 요약한 것 밖에 되지 않으므로.
자세한 내용을 원하거나 Vim과 조금이라도 더 친해지고 싶다면 구입해서 보는 것을 추천해 드립니다!
- 장피디 왈 -
------------------------------------------------------------------------------------------------------------------

더이상 검은색 창을 두려워할 필요가 없다!

Vim은 유닉스 환경에서 전통적인 에디터인 Vi의 진보된 형태다. 특히 개발자라면 수많은 플러그인이 제공하는 다양한 기능과, 운영체제에 관계없이 일관된 환경을 구성할 수 있다는 점 때문에라도 반드시 익혀야 할 도구다.
[손에 잡히는 Vim]은 Vim의 필수 기능들을 친절한 그림과 함께 차근차근 설명하여, ‘배우기 어려운 에디터’라는 고정관념을 깨뜨린다.
리눅스를 공부하는 학생이나 터미널 창에서 작업하는 서버 관리자, 키보드에서 손을 떠나기 싫은 개발자 모두에게 유용한 안내서가 될 것이다.

이 책에서 다루는 내용
- 기본 조작법
- 색상 테마 등 옵션 설정하기
- 문자열 정렬, 검색, 교체하기
- 창 분할과 탭
- 키 매핑과 매크로를 사용한 자동화
- 프로그래머에게 유용한 기능들
- 플러그인
- 주요 명령어와 단축키

이 책에 수록된 소스코드는 저자의 블로그(http://sunyzero.tistory.com)와 출판사 스프링노트(http://insightbook.springnote.com/pages/7353373)에서 다운받을 수 있습니다.

반응형

+ Recent posts