VIM 에디터 이해 및 실습
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
5. VIM 에디터 이해 및 실습¶
5.1. VIM 에디터 이해 및 설치¶
- VIM : Vi improved 에서 앞 글자를 빼내어 만든 이름
- Vi: 전통적이 유닉스 에디터(개발자: 빌 조이), Visual Editor의 줄임말
- Vim 은 Vi에 자동화, 시각화 메뉴등을 추가한 프로그램
- Vim 이외에 이맥스(Emacs, GNU 프로젝트 설립자 리차드 스톨만이 개발) 라는 유명한 에디터가 있음 (대부분 개발자는 두 에디터 중 하나를 사용함)
- 설치
- 윈도우/맥: https://vim.sourceforge.io/download.php
- 리눅스: sudo apt-get install vim
5.2. ubuntu vim을 위한 한글 설정¶
- 시스템 언어 설정 확인 (기본 설정으로 POSIX, glibc에서의 기본 로케일은 C 또는 POSIX)
(참고1: POSIX - 이식 가능 운영 체제 인터페이스의 약자로, 다양한 유닉스 계열 운영체제 간 공통 시스템콜 또는 API 정의)
(참고2: glibc - GNU 프로젝트의 일환으로 개발된 표준 C언어 라이브러리로 C++언어도 지원)
# locale
- 한글 입력 패키지 설치
# sudo apt-get install language-pack-ko
- 시스템 언어 설정 변경
# sudo locale-gen ko_KR.UTF-8
- 확인: ko_KR.UTF-8 UTF-8 만 샵(#) 표시가 없어야 함
# vi /etc/locale.gen
재부팅시 기본적으로 한글을 설정할 수 있도록 /etc/default/locale 파일에 다음 설정 추가
LANG="ko_KR.UTF-8" LANGUAGE="ko_KR:ko:en_US:en"
vi ~/.vimrc 에도 다음 두 줄 추가
set encoding=utf-8 set fileencodings=utf-8,euckr
5.3. vim 네 가지 모드¶
일반(명령) 모드: 처음 vim을 실행했을 때 또는 입력 모드/명령 모드에서 ESC입력 시 - 찾기, 커서 이동등
명령(명령행) 모드: 일반 모드에서 : 입력 시 - 저장, 파일읽기, vim설정등
입력(편집) 모드: 일반 모드에서 a 또는 i 또는 o 키 입력 시 - 내용 입력
Visual 모드: 일반 모드에서 v 입력 시 - 블럭 복사/붙이기
커서 이동 (방향키로도 지원되는 경우가 많음) k 커서를 위로 움직임 j 커서를 아래로 움직임 h 커서를 왼쪽으로 움직임 l 커서를 오른쪽으로 움직임
입력 모드 진입 (입력 모드 진입 시, 왼쪽 하단에 "--INSERT-- " 라는 문구가 출력) o 포커스 잡힌 커서 아래 라인으로 이동 후 편집모드 시작 O 포커스 잡힌 커서 윗 라인으로 이동 후 편집모드 시작 i 포커스 잡힌 커서 위치에서 편집모드 시작 I 포커스 잡힌 커서의 라인 제일 앞으로 이동 후 편집모드 시작 a 포커스 잡힌 커서의 다음 문자열에서 편집모드 시작 A 포커스 잡힌 커서의 라인 제일 뒤로 이동후 편집모드 시작
블록 지정 및 복사 (Visual 모드에서 활용) v 단어 단위로 블럭 지정. Shift + v 라인 단위로 블럭 지정. y 지정된 블럭을 복사. p 복사된 블럭을 현재 커서에 붙인다. u 직전 실행 작업 취소 자주 사용하는 시나리오 1. v 로 visual 모드로 들어간 후 2. Shift 를 누른채 커서 이동을 통해 블록 지정 3. y 를 눌러 블록 복사 4. 붙이기 필요한 곳으로 커서 이동 후 p 를 눌러 복사된 블록 붙이기
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
편집 x 커서의 한 문자를 삭제한다. dd 커서의 현재 라인을 삭제한다. Shift + j 커서의 아랫라인과 현재 라인을 하나의 라인으로 합침
문자열 찾기 기능 일반 모드에서 / 를 누른 후 찾을 문자 입력 정규 표현식 지원 (다음 기호는 a\+ 와 같이 백슬래시와 함께 사용해야 함) + : 1번 이상의 임의 번 반복. a+ 는 a, aa, aaa, ... 즉 aa* 와 동일. | : a|b 는 a 또는 b () : group, (ab|cd)ef 는 abef 또는 cdef ? : 없거나 하나 있거나. ab? 는 a 또는 ab 찾을 문자 입력 후 엔터 누르면 해당 문자열 색상 변경을 통한 표시 이 상태에서 n 다음 찾는 문자열로 이동 N 이전 찾는 문자열로 이동
참고: 파이썬과 정규표현식(https://wikidocs.net/4308)¶
문자열 교체 기능(명령 모드) :(시작줄),(끝줄)s/찾을패턴/바꿀문자열/옵션 옵션 : g : global - 한 줄에 패턴이 여러 번 나오면 모두 바꿈, 지정하지 않으면 첫번째 패턴만 치환 i : ignore case - 대소문자 구분을 하지 않음 c : confirm - 검색된 모든 문자열에 대해서 치환 여부에 대해 사용자 확인을 받음 예) :5,10s/a/b/ 5번째 줄부터 10번째 줄까지 각 줄의 첫번째 "a" 를 "b" 로 치환 :.,.+10s/a/b/g 현재 줄부터 (현재 행번호+10) 번째 줄까지 모든 "a" 를 "b" 로 치환 :1,$s/a/b/c 첫 번째 줄부터 마지막 줄까지 (즉 문서 전체) 각 줄의 "a" 를 "b" 로 바꾸되, 사용자에게 확인을 받음 :%s/a/b/gi 문서 전체에서 "a" 와 "A" 를 "b" 로 치환 :%s/Hello/Good Morning/g 두 글자 이상의 문자열도 검색 및 치환 가능
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
가장 빠르게 풀스택 개발자가 될 수 있도록, 최적화된 로드맵을 제공합니다
파일 열기 및 저장 :e filename filename 의 파일이 존재하면 오픈하고, 존재하지 않으면 해당 파일 이름으로 새로 파일을 만들고 오픈함 :w 현재 오픈된 파일 저장 :q 저장하지 않고 종료 (quit) :wq 현재 오픈된 파일 저장 후 종료 :wq {저장할 파일명} 현재 오픈된 파일을 저장할 파일명으로 저장 후 종료 :q! 강제 종료 (대소문자 구문) :wq! 현재 오픈된 파일 강제 저장 및 종료
5.4. vim 설정¶
- 명령(명령행) 모드에서 set all 입력 (결국 :set all 입력 후 엔터)
- vim에서 설정할 수 있는 모든 옵션이 나옴
- ~/.vimrc 파일에 필요한 vim 설정을 할 수 있음
실습 - vi 사용
- vi ~/.vimrc 후 다음 설정 입력 및 저장
- vi ~/.vimrc 후 다음 설정 입력 및 저장
set nocompatible set autoindent set cindent set smartindent set wrap set nowrap set nowrapscan set nobackup set ruler set shiftwidth=4 set number set fencs=utf-8 set fileencoding=utf-8 set tenc=utf-8 set expandtab set hlsearch set ignorecase set tabstop=4 set incsearch syntax on filetype indent on set background=dark colorscheme desert set backspace=eol,start,indent set history=1000
5.5. vim 팁¶
- 한글 작성 중 한글이 깨져보일 시
- sudo apt-get install language-pack-ko
- sudo locale-gen ko_KR.UTF-8
- sudo dpkg-reconfigure locales
- vi ~/.vimrc 에서 아래 두 줄 추가
- set encoding=utf-8
- set fileencodings=utf-8,euckr