티스토리 뷰

Tools/Vim

[Vim]vim 설정하기

heyhyo 2019. 10. 22. 18:04

 리눅스에는 터미널환경에서 사용가능한 다양한 텍스트 편집기가 있다. 그 중 대표적인 편집기로 vim이 있다. vim은 vi의 클론으로 vi의 기본적인 명령어를 그대로 계승하고, 거기에 사용자가 더 사용하기 쉽도록 여러 기능을 집어넣은 편집기로 이해하면 되겠다.

 vim의 가장 큰 특성은 .vimrc파일에 설정값을 넣어놓으면 그 설정값에 따라 편집기를 자유자재로 설정할 수 있다는 것이다. .vimrc파일은 언제나 홈 디렉토리에 존재해야한다. 이 게시글은 다음과 같은 순서로 설명할 예정이다.

 

1. .vimrc 파일 생성하기

2. .vimrc 파일에 설정 값 넣기

 

 지금부터 하나씩 알아보도록 하겠다.

* 이 글에는 vi 편집기의 사용법에 대한 내용은 없습니다.

 

 

 

1. .vimrc 파일 생성하기

 

 

 .vimrc 파일은 언제나 홈 디렉토리에 존재해야 하므로, 홈 디렉토리로 이동하여 .vimrc를 생성한다.

 

 

 

cd ~
vim .vimrc

 

 위와 같이 명령어를 입력하면 홈 디렉토리에 .vimrc가 생성되고 vi 편집기가 열릴 것이다.

 

 

 

2. .vimrc 파일에 설정 값 넣기

 

 

 아래의 설정 값은 현재 내 컴퓨터에서 사용중인 설정 값이다. 각각의 설정 값들이 어떠한 의미를 가지는지 하나씩 알아보도록 하자.

 

 

 

 

1) Highlight

 

if has("syntax")
	syntax on
endif

 위 설정 값은 문법이 존재한다면 하이라이트를 켜라는 명령어이다. 우리가 생각하는 visual studio, pycharm과 같은 IDE에서 문법이 강조되는 것과 같이 문법 하이라이트 기능을 켠다고 생각하면 된다.

 

set hlsearch

 

 

 이 값을 넣으면 ?또는 /로 vim내의 특정한 문자열을 검색할 때 매칭되는 문자열을 하이라이트해주는 기능이다. 위와 같이, 검색 시 한눈에 잘 보이기 때문에 꽤 유용하다.

 

 

2) Line number

 

set nu

 

 

 위 설정을 켜면 그림과 같이 라인 넘버가 출력된다. gcc, python 프로그래밍을 할 때, 에러와 함께 에러난 코드의 라인을 출력해주는데, 이 설정을 켜면 한층 더 찾기가 쉬워진다.

 

 

3) Indent

 

set autoindent
set cindent

 

 위 설정을 켜면 문법에 따라서 자동으로 들여쓰기를 해준다. 우리가 사용하던 IDE의 기능들이 대부분 구현되어 실제 코딩시에도 상당히 편리하다.

 

 

4) Tap space

 

set ts=4
set sts=4
set shiftwidth=4

 위 세가지 설정 값은 tab 너비에 관련된 설정 값이다.

ts - 문서의 '\t' 값을 출력시 몇 개의 스페이스로 보여줄지에 대한 설정 값

sts - tab 키를 눌렀을 때 몇 개의 스페이스를 입력할 것인지에 대한 설정 값

shiftwidth - 자동 들여쓰기를 할 때의 스페이스 설정 값

 

 

5) Status

 

set laststatus=2

 마지막 창에 statusline을 보여주는 설정 값이다.

0 - 출력안함

1 - 창이 2개 이상일 때 출력

2 - 항상 출력

 

 

6) Show match

 

set showmatch

 

 

 이 설정값을 적용하면, 위 그림과 같이 닫는 괄호를 입력 시 짝이 되는 괄호를 하이라이트 해준다.

 

 

7) Smart setting

 

set smartcase
set smarttab
set smartindent

 위 설정값은 검색, 탭, 들여쓰기 시 자동으로 설정해 준다고 한다.

smartcase - no automatic ignore case switch

smarttab - ts, sts, sw 값을 참조하여, 탭과 백스페이스의 동작을 보조해준다.

smartindent - 자동 들여쓰기 시 #include 와 같은 전처리 구문을 판단하여 들여쓰기를 하지 않는다.

 

 

8) Ruler

 

set ruler

 

 

 위 그림과 같이 현재 커서 위치의 줄번호와 행번호를 출력해준다.

 

 

9) Encoding

 

set fileencodings=utf8,euc-kr

 위 설정을 하면, vim으로 파일을 열때, 그 파일의 인코딩 방식에 따라 맞춰서 연다. 보통 윈도우 메모장에서 작성된 텍스트는 기본값으로 euc-kr 인코딩을 가지고 있을 것이다. 따라서 윈도우에서 작성된 파일을 vim으로 열면, 리눅스 터미널은 utf8 형식을 기본적으로 사용하고 있기 때문에, 글씨가 깨져보일 것이다. 이러한 상황을 방지하기 위해서 utf8, euc-kr을 명시해주면, 인코딩 방식이 달라도 정상적인 출력을 보장한다.

 

 

10) 종합

 

 여기까지 각 속성에 대해서 알아보았다. 지금 사용중인 설정 값을 아래에 정리해서 올렸다.

if has("syntax")
	syntax on
endif

set hlsearch
set nu
set autoindent
set ts=4
set sts=4
set cindent
set laststatus=2
set shiftwidth=4
set showmatch
set smartcase
set smarttab
set smartindent
set ruler
set fileencodings=utf8,euc-kr

 vim은 상당히 확장성이 좋은 에디터이다. 따라서 이 게시글에서 제시한 설정값들은 빙산의 일각에 불과하다. 필요에 따라서 더 많은 설정값을 적용해보기를 바란다.

 

 

 

참고

 

 

https://medium.com/sunhyoups-story/vim-%EC%97%90%EB%94%94%ED%84%B0-%EC%9D%B4%EC%81%98%EA%B2%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-5b6b8d546017

 

vim 에디터 이쁘게 사용하기

.vimrc 편집을 통해 vim 에디터의 모습을 바꿔봅시다

medium.com

https://johngrib.github.io/wiki/vim-with-space-char/

 

Vim 공백 문자 조작 설정

 

johngrib.github.io

https://vimhelp.org/

 

Vim: help.txt

help.txt For Vim version 8.1. Last change: 2019 Jul 21 VIM - main help file k Move around: Use the cursor keys, or "h" to go left, h l "j" to go down, "k" to go up, "l" to go right. j Close this window: Use ":q ". Get out of Vim: Use ":qa! " (careful, all

vimhelp.org

'Tools > Vim' 카테고리의 다른 글

[Vim]클립보드 복사&붙여넣기(Copy&Paste Clipboard)  (10) 2019.03.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함