2020년 9월 17일 목요일

우분투 서버 원격 접속 시 필수적인 편집기 VIM 사용 방법

이 글은 우분투 서버 원격 제어를 위한 SSH에서 편집기 VIM 사용 방법을 간략히 정리한다. 

머리말

SSH는 윈도우 같은 클라이언트 컴퓨터에서 원격으로 같은 네트웍으로 묶여 있는 리눅스 서버를 제어하는 데 매우 편리하다. 하지만, GUI를 지원하지 않아, gedit 같은 편집기를 사용하기 어렵다(이 경우, x-server 에뮬레이션을 설치해야 한다). 

리눅스 서버에 원격으로 코딩을 하거나, 설정을 하는 경우, 편집기가 필수적인데, GUI가 없이 편리하게 사용할 수 있는 프로그램이 없으면 작업할 수가 없다. 이 경우 VI나 VIM을 사용한다.

VIM을 이용하면 왠만한 편집기 이상의 기능을 제공하여 편리하게 코딩이나 설정파일을 편집할  수 있다(VI보다 편리하다). 다만, 사용을 위해 몇가지 설정이 필요하다. 

설치 및 설정

다음 명령으로 VIM을 우분투에 설치한다.

sudo apt-get update
sudo apt-get install vim

편집기 컬러 설정을 다음과 같이 다운로드 받는다.
mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim

다음과 같이 편집기를 이용해 VIM 에디터를 설정한다. 참고로 "는 주석 표시이다.
sudo gedit ~/.vimrc
set number    " show line 
set ai            " auto indent
set si            " smart indent
set cindent           " c style indent
set shiftwidth=4    " auto indent space  4 column
set tabstop=4       " convert tab to 4 spaces
set expandtab 
set et
set ignorecase      " ignore case character
set hlsearch         " highlight for searching
set nocompatible   " enable arrow keys
set fileencodings=utf-8,euc-kr    " file save encoding as utf-8, euc-kr
set fencs=ucs-bom,utf-8,euc-kr   " korea text encoding as euc-kr, unicode
set bs=indent,eol,start    " enable backspace
set ruler                " show cursor on status line
set title                 " show title
set showmatch       " show match () {}
set wmnu              " enable auto complate when tab 
syntax on              " enable grammar highlight
filetype indent on   " highlight depending on file format
set mouse=a         " enable mouse position as cursor
colorscheme jellybeans

.vimrc를 저장한 후 다음과 같이 vim을 실행해보자. 코딩 전용 편집기처럼 문법에 따른 컬러와 각종 기능이 활성화될 것이다.
vim test.py

사용

vim 사용은 일반 편집기와는 다르다. 이는 원격에서도 사용할 수 있고, 그래픽이 없는 최소한의 자원에서도 사용할 수 있도록 단축키를 이용하도록 설계되었기 때문이다. 

vim은 편집기 명령 상태와 파일 편집 상태를 구분해 동작한다. 

vim을 실행하면 명령 상태이며, 이때 다음 명령을 실행해 파일을 저장, 종료, 라인 복사, 라인 붙여넣기, 라인 삭제 등을 수행할 수 있다. 

종료
:q

저장
:w

저장/종료
:wq

커서 이동
화살표 키 입력

커서있는 줄 복사
yy

블럭 복사 시작
v

블럭 복사 끝
y

커서 다음에 붙여 넣기
p

앞에서 문자열 찾기
/문자열

뒤에서 문자열 찾기
?문자열

뒤로 검색
n

앞으로 검색
N

문자열 old를 new로 변경
:%s/old/new

모든 문자열 old를 new로 변경
:%s/old/new/g

되돌리기(undo)
u

되돌린것 재 실행
ctrl + r

현재 폴더 출력
:cd

다음 명령을 입력하면 그때 편집상태가 된다. 이때는 텍스트를 입력, 수정할 수 있다. 

커서 앞에서 글자 입력 모드 전환
i
행 처음부터 입력 모드 전환
l

다시 명령 상태로 복귀하려면 ESC 키를 입력하면 된다.

마무리

이 글은 리눅서 서버에서 텔넷이나 SSH로 원격 접속 시 사용하는 대표적 편집기인 VIM에 대해 이야기해보았다. 이 프로그램은 Bram Moolenaar가 개발한 것으로 1991년에 발표되어 지금까지 널리 사용되는 오픈소스이다. VIM은 VI Improved의 약자로 최초는 1988년 아미가 커뮤터에서 개발하다 발전된 것이다. VIM은 VI에 비해 정규 표현식, 마우스, 맞춤법 검사, 문법 강조 등 기능이 있어 편리하다. 뿐만 아니라, 다음과 같은 스크립트를 지원해 편집을 자동화할 수 있다.

let i = 1
while i < 5
  echo "count is" i
  let i += 1
endwhile

서버를 원격으로 설정하거나 코딩할 경우, VIM은 필수 도구이다. 

댓글 없음:

댓글 쓰기