RadarURL
Skip to content
조회 수 1402 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

vi 명령어, vi 단축키, vi(Visual Editer), vim

0. 읽기전에!!!

  • 큰따옴표 " " 로 묶인 글은 그 안의 내용을 말하는 것입니다. 만일 "가나다" 라고 하면 큰따옴표("")를 제외한 가나다만 입력하면 됩니다.
  • "", "/", "?" 표시는 입력모드에서 ESC키를 누른뒤 입력하면 됩니다.
  • filename.xxx는 아무 파일을 의미합니다. 즉 자기가 원하는 대로 쓰면 됩니다. 단, 파 일명 작성규칙에 맞는 파일명을 입력해야 합니다.
  • 대소문자는 구분합니다. x와 X는 다릅니다.
  • ""은 엔터키를 의미합니다.
  • "[n]"은 숫자를 의미 합니다.
  • "x, dl"은 x 또는 dl을 의미합니다.

1. History of vi

vi는 BSD의 C shell을 개발한 빌 조이가 1976년에 ed의 기능을 확장시킨 ex(Extended editer)편집기를 개발 하고 이를 확장 시켜서 만들었다. <<유닉스.리눅스 프로그래밍 필수 유틸리티>>
※vi는 Visual editer의 줄임이다.

2. vi의 특징

장점

  1. 키보드로 모든것을 할 수 있다.(처음 시작하는 사람들에게는 치명적인 단점이다.)
  2. 가볍다. 하지만 매우 많은 기능이 있다.
  3. 사용하면 할 수록 재미있다.

단점

  1. 키보드 만을 사용한다.
  2. 단축키가 매우 많다.
  3. 처음 사용자들은 사용하기가 매우 힘들다.

3. vi의 모드(mode of vi)

  1. 명령모드(command mode)
  2. ex모드
  3. 입력모드
  4. ex모드 <=> 명령모드 <=> 입력모드

즉 ex모드에서 입력모드로 가기위해서는 명령모드를 거쳐서 가야한다. 모드라고해서 거창한것은 없다. 단지 "ESC" 키 를 한번 누르는것이 전부다.

4. vi의 명령(command of vi)

ㄱ. 파일관련 단축키

  1. w filename.xxx : 쓰기(write)
  2. w >> filename.xxx : 파일에 덧붙여서 저장>
  3. q : 종료(quit)
  4. q! : 저장하지 않고 종료
  5. e filename.xxx : 열기(open)
  6. wq! : 저장하고 종료하기

ㄴ. 입력모드 전환 키

  1. a : 커서 위치의 다음칸부터 입력
  2. A : 커서 행의 맨 마지막부터 입력
  3. i : 커서 위치부터 입력
  4. I : 커서 행의 맨 처음부터 입력
  5. o : 커서 행의 다음행에 입력
  6. O : 커서 행의 이전행에 입력
  7. s : 커서 위치의 한 글자를 지우고 입력
  8. cc : 커서 위치의 한 행을 지우고 입력

ㄷ. 이동(move)

  1. h : 왼쪽
  2. l : 오른쪽
  3. j : 아래
  4. k : 위
  5. w : 다음 단어의 첫글자로 이동
  6. b : 이전 단어의 첫글자로 이동
  7. $ : 커서 행의 맨 마지막으로 이동
  8. ^ : 커서 행의 맨 처음으로 이동
  9. + : 다음행의 첫 글자로 이동
  10. - : 이전행의 첫 글자로 이동
  11. ( : 문장의 처음으로 이동
  12. ) : 문장의 마지막으로 이동
  13. { : 문단의 처음으로 이동
  14. } : 문단의 마지막으로 이동
  15. H : 커서를 화면의 맨 위로 이동
  16. M : 커서를 화면의 가운데로 이동
  17. L : 커서를 화면의 마지막으로 이동
  18. z : 현재 행을 화면의 맨 위로 이동
  19. z. : 현재 행을 화면의 중앙으로 이동
  20. z- : 현재 행을 화면의 최하단으로 이동
  21. [n]H : 커서를 현재 화면의 [n]행으로 이동
  22. [n]L : 커서를 현재 화면의 아래서 [n]행으로 이동
  23. ctrl + u : 반 화면 위로 스크롤
  24. ctrl + d : 반 화면 아래로 스크롤
  25. ctrl + b : 한 화면 위로 스크롤
  26. ctrl + f : 한 화면 아래로 스크롤
  27. gg : 문서의 맨 첫 행으로 이동
  28. G : 문서의 맨 마지막행으로 이동
  29. [n]G : 문서의 [n]번째 행으로 이동
  30. [n] : 문서의 [n]번째 행으로 이동

ㄹ. 삭제

  1. x, dl : 커서위치의 글자 삭제
  2. X : 커서 바로 앞의 글자 삭제
  3. dw : 한 단어를 삭제
  4. d0 : 커서 위치부터 행의 처음까지 삭제
  5. D, d$ : 커서 위치부터 행의 끝까지 삭제
  6. dd : 커서가 있는 행을 삭제
  7. dj : 커서가 있는 행과 그 다음 행을 삭제
  8. dk : 커서가 있는 행과 그 앞 행을 삭제

ㅁ. 복사 & 붙여넣기

  1. yw : 커서가 있는 단어를 복사한다.
  2. yy : 커서가 있는 줄을 복사한다.
  3. v : 현재 커서부터 블록을 시작한다.
  4. y : 블록이 되어있는 부분을 복사한다.
  5. p : 현재 커서가있는곳에 붙여 넣는다.

ㅂ. 잘라내기

잘라내기를 이해하기위해서는 vi의 레지스터를 알아야 한다. vi는 총 17개의 레지스터를 가지고 있다. 일단 삭제명령으로 지운 글자들은 순서대로 레지스터로 이동한다. 그러므로 p를 눌러주면 삭제된 글자들이 붙여넣기가 된다.

ㅅ. 레지스터

윈도우에서 말하는 클립보드와 같은것이다.

  1. reg : 레지스터에 있는 내용을 볼 수 있다.
  2. "[n]p : [n]번 레지스터에 있는 값을 현재 커서위치에 붙여넣는다.

o. 블록

  • 블록은 v키를 누른뒤 커서를 이리저리 움직이면 설정된다.
  • 직사각형의 영역을 지정하기 위해서는 "ctrl + v"를 누르면 된다.
  1. ~ : 대소문자 전환
  2. d : 삭제
  3. y : 복사
  4. c : 치환(바꾸기)
  5. < : 앞에 탭 제거
  6. > : 앞에 탭 삽입

선택된 영역에 대하여 ex명령

  1. J : 행을 합침
  2. U : 대문자로 만듦
  3. u : 소문자로 만듦

ㅈ. 되돌리기와 되살리기

  1. u : 되돌리기(undo) 윈도우에서 ctrl + z 와 같다.
  2. ctrl + r 되살리기 지워진것을 다시 살린다.>

ㅊ. 문자열 찾기

  1. /[찾고자하는 문자열] : 아래로가면서 문자열을 찾는다.
  2. ?[찾고자하는 문자열] : 위로 올라가면서 문자열을 찾는다.
    • n : 다음 문자열
    • N : 이전의 문자열

ㅋ. 문자열 치환

  1. %s/old/new/g : 아래로 가면서 문서에 있는 모든 old문자열을 new로 바꿈
  2. s/old/new/ : 아래로 가면서 제일 처음 매칭되는 행의 문자열을 치환
  3. 2,4s/old/new/g : 2행에서 4행사이에 매칭되는 문자열을 치환한다.
  4. -1,+3s/old/new/g : 현재 커서에서 위로1줄 아래로 3줄 범위내의 문자열을 치환
  5. %s/old/new/ : 문서의 전체를 조사하되 한행에서는 처음 만나는 문자열만 치환
  6. %s/old/new/gc : 치환여부를 물어본다.

Vim window split Manual

vim은 정말 알면 알수록 재미있고 신기한 에디터인것 같다. 소개할 window split기능은 여러가지로 재미있게 이용할 수 있을것이다. 아래에서 부터는 ^는 "ctrl 키와 함께 누름" 을 의미한다.

새창으로 파일 열기

:sp filename

커서의 창 이동

  1. ^ww 다음창으로 이동
  2. ^wt 최상위 top으로 이동
  3. ^wb 최하위 botton으로 이동
  4. ^wj 아래창으로 이동
  5. ^wk 위쪽 창으로 이동

창 닫기

  1. ^wc 현재창 닫기
  2. :q 현재창 닫기
  3. ^wo 현재창만 남기고 모두 닫기
  4. :only 현재창만 남기고 모두 닫기
  5. :qa 모든 창을 닫고 종료

창의 크기조절

  1. ^w_ 활성창 크기 최대화
  2. 10^w_ 활성창 크기를 10줄으로
  3. :res10 활성창 크기를 10줄으로
  4. ^w= 모든창 크기를 같게

창의 위치 이동

  1. ^wH 창을 왼쪽으로 이동
  2. ^wL 창을 오른쪽으로 이동
  3. ^wJ 창을 아래로 이동
  4. ^wK 창을 위로 이동

파일으로 바로 이동

커서를 파일 이름위에 대고 ^wf

vim 유용한 기능들, vim useful commands, functions

마우스 사용하기

:set mouse=a

html 으로 소스코드를 색을 입혀서 새 창에 띄운다.

:TOhtml

외부 명령어 실행

:!ls
쉘에서 ls를 친것과 같은 기능을 한다.

현재 커서에 파일 불러서 더하기

:r filename

이런방법도 있음
:r !ls

vim 옵션조정

1. 커서, 백스페이스 설정

windows 에서 vim 사용시 초기화 파일은 자기 홈디렉토리에 "_vimrc" 파일을 생성하여 넣어놓으면 된다. 즉 나의 경우는
"C:\Documents and Settings\김성환" 폴더에 "_vimrc"파일을 넣어두었다.
그렇지 않으면 vim이 설치된 폴더 c:\Program Files\Vim\ 에다가 넣어도 된다.
_vimrc 파일을 설정하는법은 쉽다.

		-----------------------_vimrc 파일의 내용-------------------------
set nu
set autoindent
set backspace=indent,eol,start
set ruler
syntax on
set incsearch
------------------------------------------------------------------

이렇게 넣어두었다.
set nu 는 라인의 번호를 출력하라는 명령이고
set autoindent 는 자동 들여쓰기기능
set backspace=indent,eol,start 는 처음에 vim을 설치했을때 backspace를 눌러도 글자가 지워지지 않고 커서만 이동했는데 이 명령후에는 일반 윈도우의 메모장이나 한글프로그램처럼 동일하게 작동한다.
set ruler 는 우측하단에 현재 커서의 위치를 표시해주게된다.
syntax on 은 자동으로 파일을 인식하여 색을 입혀주는 기능이 활성화 되는기능이다.

2. gVIM에서 color scheme 지정법

가. c:\Program Files\vim\_vimrc 파일을 연다.
나. 아래와 같이 입력

		------------------ _vimrc --------------------
: colorscheme torte
----------------------------------------------

3. gVIM에서 폰트지정

가. c:\Program Files\vim\_vimrc 파일을 연다.
나. 아래와 같이 입력

		------------------ _vimrc --------------------
set guifont = 나눔고딕코딩:h14:cHANGEUL
----------------------------------------------

4. 그외 다른 옵션들

		" ---- language-env DON'T MODIFY THIS LINE!
""" ========================================================
""" 기본적인 설정들
""" ========================================================
set nocompatible " Vim 디폴트 기능들을 사용함
set backspace=2 " 삽입 모드에서 백스페이스를 계속 허용
"set autoindent " 자동 들여쓰기
set cindent " C 언어 자동 들여쓰기
set smartindent " 역시 자동 들여쓰기
"set textwidth=76 " 76번째 칸을 넘어가면 자동으로 줄 바꿈
set nowrapscan " 찾기에서 파일의 맨 끝에 이르면 계속하여 찾지 않음
"set nobackup " 백업파일을 만들지 않음
set novisualbell " 비주얼벨 기능을 사용하지 않음
set nojoinspaces " J 명령어로 줄을 붙일 때 마침표 뒤에 한칸만 띔
set ruler " 상태표시줄에 커서 위치를 보여줌
set tabstop=4 " 간격
set shiftwidth=4 " 자동 들여쓰기 간격
"set keywordprg=edic " K를 눌렀을 때 실행할 명령어
set showcmd " (부분적인) 명령어를 상태라인에 보여줌
set showmatch " 매치되는 괄호의 반대쪽을 보여줌
set ignorecase " 찾기에서 대/소문자를 구별하지 않음
set incsearch " 점진적으로 찾기
set autowrite " :next 나 :make 같은 명령를 입력하면 자동으로 저장
set title " 타이틀바에 현재 편집중인 파일을 표시


""" ========================================================
""" 파일 인코딩을 한국어로 설정
""" ========================================================
if $LANG[0] == 'k' && $LANG[1] == 'o'
set fileencoding=korea
endif


""" ========================================================
""" 터미널에 따른 설정 : Xterm이면 16컬러 사용
""" ========================================================
if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"
set t_Co=16
set t_Sf=^[[3%dm
set t_Sb=^[[4%dm
set t_kb=?
fixdel
endif


""" ========================================================
""" 문법 강조기능 사용
""" ========================================================
if has("syntax")
"syntax on
syntax off
endif


""" ========================================================
""" GUI 모드로 실행할 경우
""" ========================================================
if has("gui_running")
set visualbell " 비주얼벨 기능 사용
set hlsearch " 찾는 단어를 하이라이팅
set guifontset=-*-fixed-medium-r-normal--14-*-75-75-*-70-iso8859-1,
-*-gulim-medium-r-normal--14-140-75-75-*-140-ksc5601.1987-0
endif


출처 : http://hacheo.egloos.com/viewer/3307158

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
65 Linux monitoring tool (리눅스 모니터링 툴) JAESOO 2014.05.28 893
64 리눅스 디렉토리 및 파일 권한 일괄(한번에) 변경 JAESOO 2014.05.27 928
63 Vim Vi 블록 선택, 복사, 붙이기, 칼럼 영역 선택하기; Select Copy Paste JAESOO 2014.05.27 1005
62 sudo 사용자 등록 (in CentOS) JAESOO 2014.05.26 4829
61 Xmanager CentOS 설정 : CentOS 4.x, 5.x, 6.x JAESOO 2014.05.26 1272
60 리눅스에서 일반 계정으로 httpd 80포트 실행하기 JAESOO 2014.05.26 676
59 Xmanager에서 CentOS 5.X 원격Xwindow 띄우기 JAESOO 2014.05.26 947
58 Apache 파일시스템 권한 설정 JAESOO 2014.05.26 609
» vi 명령어, vi 단축키, vi(Visual Editer), vim JAESOO 2014.05.26 1402
56 리눅스 파일의 소유자, 소유그룹 변경하기 JAESOO 2014.05.26 1088
55 CentOS 방화벽 설정 하기 JAESOO 2014.05.26 723
54 Apache HTTP Server, Rewrite가 안되는 경우 JAESOO 2014.05.26 661
53 CentOS - samba 자동실행 JAESOO 2014.05.26 1135
52 vsftp에서 500 OOPS: cannot change directory 오류가 나올 때 JAESOO 2014.05.26 682
51 CentOS samba 공유 폴더 생성하기 JAESOO 2014.05.26 627
50 CentOS Samba Server 설정 JAESOO 2014.05.26 737
49 CentOS Samba 설치 및 설정 JAESOO 2014.05.26 748
48 안전한 CentOS를 위한 방화벽, 보안 설정 JAESOO 2014.05.26 2113
47 CentOS 에 APM 설치하기 JAESOO 2014.05.26 654
46 Xshell 한글 깨짐 JAESOO 2014.05.26 1216
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10

PageViews   Today : 1,659   Yesterday : 2,999   Total : 21,171,388  /  Counter Status   Today : 334   Yesterday : 272   Total : 1,707,323
Site Info   Member : 251  /  Total documents : 1,247   New documents : 0  /  Total comments : 26

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소