반응형


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