본문 바로가기

OS/Ubuntu

[Ubuntu] Vim

그렇다면 먼저 vi에 대해 알아보자.

 

거의 모든 유닉스나 리눅스에는 vi 편집기가 기본적으로 설치되어 있으며, 윈도우용 vim(gvim)도 배포되고 있다. 우분투 9.04 배포본에는 vim-common(2:7.2.079-1ubuntu5)과 vim-tiny(2:7.2.079-1ubuntu5)가 기본적으로 설치되어 있다. Fedora에는 vim-minimal과 vim-common이 기본 설치되어 있는데, 영문이 아닌 한글로된 vi를 사용하고 싶다면 우분투에서는 vim과 vim-runtime을 설치하면 된다. vim과 vim-runtime은 Fedora에서 vim-enhanced를 설치하는 것과 같다. 

이제 본격적으로 vi(m)을 시작해보자.
터미널에서 vi를 입력하면 다음과 같은 화면이 나온다.

 

만약 위에서 vim과 vim-runtime을 설치하지 않았다면 위의 내용이 영어로 나올 것이다.
vi에는 여러가지 모드(mode)가 있다.
  1. Normal mode : 처음 실행한 상태
  2. Insert mode : i, a, o, I, A, O를 누른 후 텍스트를 입력할 수 있는 상태
  3. Command mode : Normal mode에서 <ESC>키를 누르고 콜론(:)을 입력한 상태
  4. Visual mode : 블록 선택을 위해서 v키를 누른 상태
위의 그림과 같이 콘솔상에서 vi 파일명 명령을 입력했을 때 처음으로 디스플레이되는 화면은 "Normal mode"이다.
문자를 입력하기 위해서는 Insert mode로 들어가야 하는데, 소문자 "i"를 눌러보면 좌측 하단에 "-- 끼워 넣기 --"라고 나오게 된다.

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

리눅스 시스템 계열을 다루거나 프로그래밍을 할 때 vim을 주로 이용하게 되는데,

사용법만 익히면 아주 강력한 효과를 낼 수 있는 매력적인 에디터 vim의 명령어를 정리했습니다.

참고 : 유닉스 리눅스 프로그래밍 필수 유틸리티 

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

Vi는 배우는 것이 아니라 몸으로 익히는 것이다!

 


 

명령모드 : 키 입력을 통해 vim에게 명령을 내리는 모드커서이동삭제복사붙이기 등

입력모드 : 실제로 문서를 편집하는 모드명령모드와 다르다는 것을 명심

ex모드   특정 패턴 치환 같은 강력한 많은 기능을 쓸 수 있는 모드종료저장불러오기 등

 

파일열기

vim 파일명

 

파일저장

Esc 누른 후 :w

 

파일 종료

Esc 누른 후 :q

 

파일 불러오기

vim

Esc 누른 후 :e 파일명

 

- ETC

:w file.txt          // file.txt 파일로 저장

:w >> file.txt      // file.txt 파일에 덧붙여 저장

:wq!                // 강제 저장 후 종료

입력

 

a : 커서 위치 다음 칸부터 입력

i : 커서의 위치에 입력

o : 커서의 다음 행에 입력

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

 

이동

 

h           j        k            l

왼쪽     아래             오른쪽

 

w : 다음 단어 첫 글자로 이동

b : 이전 단어 첫 글자로 이동

 

^ : 그 행의 첫 글자로 이동

$ : 그 행의 마지막 글자로 이동

 

{ : 이전 문단으로 이동

} : 다음 문단으로 이동

 

: n       // n 행으로 이동

gg : 문서의 시작으로 이동

G : 문서의 끝으로 이동

 

삭제

 

x : 커서 위치의 글자 삭제

dw : 한 단어를 삭제

D : 커서 위치부터 행의 끝까지 삭제

dd : 커서가 있는 행을 삭제

 

복사 & 붙이기

 

yw : 현재 커서 위치의 한 단어를 복사

yy : 현재 커서 위치의 한 행을 복사

10yw : 현재 커서 위치에서 10개의 단어 복사

10yy : 현재 커서 위치에서 10개의 행을 복사

 

p : 붙여넣기

2p : 2번 붙여넣기

 

레지스터

 

vi는 총 17개의 레지스터가 존재만약 dd 명령어로 한 행을 지웠다면 화면에서 지워짐과 동시에 그 내용은 “1 레지스터에 들어간다그리고 다시 dd 명령어로 한 행을 지우면 “1 레지스터에 들어 있던 내용은 “2 레지스터로 옮겨가고 “1 레지스터에 새로 지운 내용이 들어가게 된다.

 

:reg                 // 레지스터의 내용보기

 

“ “

“0

“1

“2

“3

“4

“5

“6

“7

“8

“9

“-

“.

“:

“%

“#

“/

 

“ “ // 바로 이전에 지워진 내용이 들어감

“0~9 // 지워진 내용이 큐 형식으로 들어감

“.    // 최근에 타이핑한 내용이 들어감

“%  // 현제 편집하는 파일명이 들어감

“/   // 가장 최근에 검색한 문자열이 들어감

 

2p : 2번 레지스터에 있는 내용 붙여넣기

 

블록지정

 

커서위치에서 v를 누르고 j키로 커서를 아래로 이동시키면 역상으로 블록이 형성, y누르면 복사

커서 위치에서 Ctrl+v를 투르고 커서를 이동시키면 사각형의 블록이 형성삭제(d), 복사(y)

 

되돌리기 & 되살리기

 

u : 되돌리기(명령취소윈도우에서의 Ctrl+z)

Ctrl + r : 되살리기

 

문자열 탐색

 

/[찾고자 하는 문자열]      // 정방향

?[찾고자 하는 문자열]      // 역방향

다음에 매칭되는 문자열 탐색

이전에 매칭되는 문자열 탐색

 

문자열 치환

 

:[범위]/[매칭문자열]/[치환문자열]/[행범위]

:%s/old/new/g    // 문서에 모든 old 문자열을 new로 바꿈

:%s/old/new/     // 문서에 모든 old 문자열중 행의 처음 매칭되는 문자만 new로 바꿈

:s/old/new/g      // 문서 전체에서 제일 처음 매칭되는 행의 문자열만 치환

:2,4s/old/new/g   // 2행에서 4행 사이에 매칭되는 문자열 치환

:%s/old/new/gc   // 치환할 것인지 사용자에게 물어봄

 

여러 파일 편집

 

vim file1 file2 file3          // 3개의 파일 동시에 열기각 버퍼에 저장됨

vim * 또는 vim *.c

 

:b2       // 2번 버퍼로 이동

:bw      // 현재 버퍼 닫기

:files 또는 :ls      // 버퍼의 내용 나열

 

~/.vimrc            //자신의 홈폴더에 .vimrc파일에서 아래 내용등록없을 시 생성

:map ,1 :b!1<CR>

:map ,2 :b!2<CR>

:map ,3 :b!3<CR>

 

,1 키를 누르면 1번 버퍼로 전환

키를 누르고 뗀 후 숫자키 누름

는 이동 시 저장의 의미

<CR>은 엔터의 의미

:map 을 입력하면 매핑리스트 확인

 

반복되는 문자열 저장해서 쓰기

 

C코딩을 하다보면 printf를 통해 디버깅 메시지를 찍어보는 경우가 빈번히 발생한다.

 

int main(){

           int i = 2;

#ifdef DEBUG

           printf(“DEBUG : i = %d\n”, i);

#endif

           return 0; }

이런 디버깅 메시지를 네임 레지스터에 저장하고 사용하면 된다.

“a3yy    // “a a레지스터에 저장, 3yy는 현재 커서 위치에서 3행을 복사해서 저장

“ap       // “a 레지스터에 있는 내용을 붙여넣기

a~z 까지 총 26개의 네임레지스터를 지원함으로 넉넉하게 원하는 문자열을 저장하고 사용

 

매크로

 

키 입력을 네임 레지스터에 저장해서 사용하는 방법만약 어떤 소스파일에서 커서가 있는 행에 주석을 넣기 위해서는 ^ i // [Space Bar] [Esc] [Enter] 키를 순차적으로 눌러야 한다.

 

^는 현재 행의 처음으로 이동

i키를 이용하여 입력모드 변환

//와 공백을 입력, Esc키를 사용하여 명령모드로 전환

Enter키를 눌러 다음 행의 처음 커서로 이동

 

이러한 키 입력을 저장해서 필요할 때 사용한다면 편리할 것이다이 기능이 바로 매크로이다.

먼저 q[임의 네임 레지스터명]을 눌러 매크로를 등록할 레지스터를 지정한다그럼 화면 하단에 기록중이란 글자가 나온다이 후에 누르는 키들은 q 레지스터에 저장된다원하는 키를 누른 후 q를 누르면 기록중이란 메시지가 사라지면서q레지스터에 이제까지 누른 키들이 등록된다.

 

이제 q레지스터에 등록된 매크로는 @q를 누름으로써 사용할 수 있다.

5@q를 누르면 다섯번을 반복한다는 뜻이다위의 키를 등록했다면 총 5행의 코드에 주석을 넣는 효과가 나타나는 것이다.

 

다중 창 사용하기

 

프로그래밍을 하거나 소스를 분석하다보면 다른 파일에 작성된 구조체의 타입이나 소스를 참조해야 하는 경우가 있다이런 경우 다중 창 기능을 사용하면 유용하다다중 창 기능이란 vim의 화면을 여러 개로 분할해서 사용하는 방법을 말한다.

 

명령모드에서 Ctrl + w n (Ctrl 키를 누른 상태에서 w를 누르고 Ctrl키를 떼고 n키를 누른다.)

키를 누르면 vim 창이 가로로 분할된다이렇게 분할된 상태에서 :e [파일명명령어로 파일을 불러올 수 있다.

 

Ctrl + ww : 창간의 전환

Ctrl + w q : 현재 창 닫기

Ctrl + w s : 현재 창 수평분할

Ctrl + w v : 현재 창 수직분할

Ctrl + w _ : 수평분할일 경우 현재 창 최대

Ctrl + w | : 수직분할일 경우 현재 창 최대

Ctrl + w = : 창을 원래대로 균등하게 분할

 

마킹으로 이동하기

 

커서의 특정 위치를 임의의 문자로 마킹하여 나중에 한번에 표시한 위치로 돌아가기 위한 방법소스가 매우 긴 파일이거나 여러 곳을 동시에 수정할 때 많이 사용된다그리고 특히 커널과 같이 거대한 프로젝트 소스를 분석할 때 사용하면 유용하다.

 

m[임의의 알파벳 : 마킹할 때

‘[마킹한 알파벳] : 마킹된 위치로 이동

 

전역마킹(A-Z) : 현재 파일을 포함한 다른 파일 간의 마킹

지역마킹(a-z) : 현재 파일 내에서만 마킹이 가능

:marks   // 마킹된 모든 정보 확인

 

 

셀 명령어 사용

 

vim에서 작업을 하다가 잠깐 쉘로 돌아가 명령어를 실행해야 할 때가 있다예를 들어 IP를 봐야할 필요가 있을 때가 있다.이렇게 쉘로 잠깐 빠져나가기 위해서는 ex모드에서 :![명령어]를 입력하면 명령이 수행되고 :!bash 라고 입력하며 새로운 쉘이 열리면서 vim을 빠져 나가게 된다쉘에서 원하는 명령을 수행하고 exit 명령을 내리면 쉘을 종료하고 다시 vim으로 돌아오게 된다.

 

결과 화면이 필요한 경우는 :r ![명령어]를 입력하면 결과 화면이 현재 커서의 위치에 삽입된다.

뿐만 아니라 :r [파일명]을 입력하면 현재 커서의 위치에 파일의 내용을 삽입하게 된다.

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

 


일반모드(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 에디터 기본 입력키 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 에디터를 사용할 때 기본적으로 사용하는 옵션에 대해서 알아보자.

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


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

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

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


이전에 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 에디터의 초급 단계의 내용으로 중급 단계로 가기 위한 작은 첫 걸음을 띄기 위해서는 파일 관련 기능을 필히 숙지해야 한다.
물론 파일 관련 기능을 알았다고 해서 중급사용자라고 할 순 없지만 그래도 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은 빠르고 사용법이 간단하다는 장점이 있으니 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

 


사실 모든 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를 참고하자.


출처 : 
http://jangpd007.tistory.comhttp://dreamchoco.tistory.com http://idkwim.tistory.com