2017년 11월 21일 화요일

Vim의 기본; Option과 설정 파일


시작하며....


무엇이든 하나씩 차근차근 배우는 걸 좋아합니다.

그리고 그 단계에는 왜 해야 하는지를 먼저 이해 하고 앞으로 나아가는 게 재미있더라고요.

누가 시켜서 억지로 넣는다기 보다는 왜 그걸 해야 하면 좋은지를 먼저 알고 나면 더 기억에도 남고요.

그러니 이번에도 왜 필요한지 알아 가면서 계속 진행하도록 할게요.


설정 변경


Vim은 기본적인 설정을 변경할 수 있어요.

물론 기본 상태로도 간단한 편집기로는 사용할 수도 있는데 Vim을 사용하는 분들은 개발자분들이 많겠지요?

그럼 개발자에 어울리는 형태로 변경하면 좋을 거 같아서요.

물론 개발하지 않는 분들도 각자 취항대로 변경 하는 방법을 알면 좋겠죠?

여기서는 일단은 제가 사용하는 설정들을 보여 드릴게요.

제가 설명을 안 드리는거 외에는 구글에서 검색 하여 해당 Option을 찾으면 돼요~


줄 번호 출력


저는 개발을 할 때 라인에 줄 번호가 있는 게 좋더라고요.

Source Insight 같은 Tool을 사용할 적에도 항상 기본적으로 줄 번호를 추가해 두곤 하죠.

그런데 아시는 거처럼 Vim의 기본 설정은 줄 번호가 출력되지 않아요.

그렇지만 개인이 원한다면 넣을 수 있죠.

명령어는 다음과 같아요.


  • :se[t] nu[mber]          


지난 번 강좌에서 Command-line Mode에 진입한 거 기억하시죠?

그거처럼 :를 눌러서 Command-line Mode로 변경하시고 set number를 적으면 돼요.

set은 가장 흔하게 사용되는 Command 중에 하난데요.

option에 대해 Setting을 하거나 option의 값을 변경하는 역할을 하지요.

option의 종류가 궁금하신가요?

그럼 다음과 같은 명령어를 적어 보세요.


  • :help option-list


그럼 set 으로 설정할 수 있는 option의 종류들이 나와요.



위의 그림은 일부이고 아래로 쭉~~ 내려서 확인할 수 있지요.

방금 확인하니 381개 정도가 있네요.

많지요?? ㅎㅎㅎ

그러니 필요한 건 찾아가면서 알아 가야 한다고 말씀드리는 거예요.

이게 외울 수 있는 정도가 아니거든요...;;;;

그리고 위에 se[t]라고 적은 부분을 보고 이상하다고 생각하실 수 있는데요.

이건 set의 se까지만 적어도 명령어로 인식 된다는 거예요.

그러니 :se nu 까지만 적어도 :set number와 같다는 거죠.

그리고 다시 줄 번호를 보이지 않게 하는 방법은 아래와 같아요.




  • :se[t] invnumber

별로 어려운 건 없지요?? ^^


swp, un, backup 파일들


제가 폴더에 source.c라는 파일을 만들고 이걸 Vim으로 작업했다고 해 봐요.

작업이 완료되고 저장을 하면 어떻게 될까요??

당연히 저장되겠지요?? ^^

뭐.. 그런 의도로 물어 본 건 당연히 아니겠죠..;;;

일단 같은 폴더로 이동해 볼까요????



분명히 source.c 라는 파일밖에 없었는데 무료 3개의 파일이 더 생겼어요.

각각 무엇인지 알아볼까요?


.source.c.swp


swap 파일이라고 불러요.

하는 일은 혹시나 PC가 갑자기 꺼져서 저장한 파일을 날려야 할 때 있잖아요?

그때 swap 파일이 있으면 복원이 가능하데요.
(그런데 저는 지금까지 복원을 해 본 적이 없어요.ㅎㅎ)

또 복수의 사용자가 같은 파일을 수정하는 걸 막을 수 있죠.

굉장히 예전에는 개인용 컴퓨터 보다는 동시에 같이 사용하는 경우가 많았다고 해요.

그래서 동시에 한 파일에 접속 하는걸 막아야 했던거죠.

만약 위의 두 기능을 사용하지 않을 거라면 아래 명령어를 입력 하시면 돼요.


  • :set noswapfile


만약에 swp을 사용하고 싶다면 no를 뺀 :set swapfile을 입력 하면 돼요.


.source.c.un~


un이 붙은 거 보니 undo 느낌이 나지 않나요??

맞아요.

우리가 문서를 편집하고 저장 후 종료를 했어요.

그리고 다시 문서를 편집하려고 했더니 이전에 수정했던걸 다시 원복하고 싶은 거예요.

그래도 이미 Ctrl+z를 눌러도 종료를 했으니 당연히 원복되지 않겠죠.

하지만 Vim은 un~ 파일이 있기 때문에 원복을 할 수 있어요.

편집을 하고 저장한 다음에 종료하고.. 다시 열어 보세요.

u를 누르시면 이전에 편집한 게 다시 원복 될 거예요.^^

하지만 이 기능이 필요 없으면 아래 명령어를 입력 하시면 됩니다.

필요 하다면 하단 명령어를 입력하시고요.


  • :set noundofile


사실 있으면 좋겠지만...

폴더 안에 이것저것 많이 생기는 게 저는 별로 안 좋더라고요.

그래서 일단은 막아 두었지요.

다시 사용하고 싶으면 아래 명령어를 입력 하시면 되요.


  • :set undofile



source.c~


그냥 단순 백업 파일이에요.

backup 자체를 하기 싫다면 아래 두 명령어를 입력해 주세요.

:set nobackup
:set nowritebackup

writebackup은 백업을 만드는 순서를 말하는 거예요.

writebackup : 저장 후 Backup 파일 생성
unwritebackup : 저장 전의 자료로 Backup 파일 생성 후 저장

사실 writebackup의 옵션은 큰 상관이 없는데 혹시 Backup에 대해 알고 싶으신 분이 있을지 몰라 적어 두네요.


열심히 그렸는데...

한번 봐 주세요~

어려울건 없을거 같은데 모르시겠으면 알려 주세요.

다시 설명해 드릴게요.

혹시 백업 파일을 만드려면 no를 뺀 :set backup 하시면 되는 거 아시죠?? ^^


Tab 과 space


회사 마다 그리고 언어마다 각자의 코딩 스타일이 있지요.

그 중에 Tab과 Space는 가장 기본적인 스타일인 거 같아요.

그럼 Tab은 몇 칸으로 설정(기본은 8칸) 할지 그리고 Tab을 눌렀을 때 Space로 채우게는 어떻게 할지를 알려 드릴게요.


  • :set softtabstop=4 tabstop=4 shiftwidth=4 expandtab
  • :set smartindent


우선 Tab의 간격에 대한 옵션은 softtabstop과 tabstop, shiftwidth가 다 인거 같아요.

softtabstop은 Tab 키를 눌렀을 때 이동하는 정도예요.

shiftwidth는 ">>"나 "<<"를 입력했을 때의 이동 간격이고요.

tabstop은 잘 모르겠어요.;;;

설명을 읽어 봐도 잘 이해가 되지 않더라고요..;;;

일단 다른 분들도 같게 두더라고요.

expandtab은 Tab을 space로 변경하는 옵션이에요.

저는 보통 space로 적용하는 게 편하더라고요.

지금 회사에서 적용하는 코딩 스타일도 그렇고요.

smartindent는 자동으로 indent를 해주는 건데요.

엔터를 쳐서 새로운 라인으로 같을 때 위의 Tab과 같은 간격 혹은 Tab을 하나 더 나아가서 첫 글을 적도록 하는 거예요.

사용하시면서 엔터를 쳐 보시면 아실 거예요.


우선 이 정도의 설정만 하면 기본적으로 편집 관련한 옵션은 다 적용한 거 같아요.

물론 필요하시면 google에게 문의를 하면 다 나오기도 하더라고요.

정 모르시겠으면 저한테 물어보세요.

같이 찾아 드릴게요.^^


설정 파일 _vimrc


위 처럼 set을 통해 원하는 데로 설정을 하셨나요??

그런데 아세요???

해당 vim을 종료하고 다시 vim을 켜면 이전에 설정했던 내용이 모두 사라져요.

그래서 다시 설정해야 하죠.ㅠㅠ

그런 일을 막기 위해서 설정 파일인 _vimrc라는게 있지요.

OS 별로 _vimrc의 위치가 달라지는데 일단은 윈도우에 대해서만 알려 드릴게요.

"C:\Program Files (x86)\Vim\_vimrc"

위의 파일이 설정 파일이에요.

해당 파일을 열어서 아까 위에서 설정한 내용을 아무 위치에 적어 넣으면 돼요.

어느 위치인지 걱정되시면 가장 아래에 추가해 주세요~

set noswapfile
set nobackup
set nowritebackup
set noundofile
set smartindent
set softtabstop=4 tabstop=4 shiftwidth=4 expandtab "tab to 4 spaces
set number

보시는 거처럼 앞에 ":" 부분을 빼고 추가해주시면 되지요.

이렇게 무언가 처음부터 설정을 하려면 _vimrc를 이용하시면 됩니다.

간단한 설정이지만 본인의 입맛에 수정할 수 있다는 점에서 도움이 되었으면 좋겠습니다.

감사합니다.


댓글 1개:

  1. Best Places To Bet On Boxing - Mapyro
    Where To Bet On Boxing. It's https://jancasino.com/review/merit-casino/ a sports betting event in which you 출장마사지 bet on the outcome of a game. In the boxing world, each player kadangpintar must decide ventureberg.com/ if 1xbet app or not to

    답글삭제