프로그래머스/리눅스

리눅스 기초 (3-3) vim editor(패키지)

junl 2022. 11. 5. 21:53

### vim 의 바이너리 종류

##1. vi, vim, vimx

기능은 vimx > vim > vi  순으로 vimx가 많은 기능을 가졌다.

 

##2.  vim 패키지 

여러 vim 패키지들이 있으나 , enhanced vim이 주로 사용하는 패키지이다.

enhanced vim을 사용하는 RedHat 계열에선 vim-enhanced 패키지가 Debian 계열에선 vim-nox 가 있다.

모두 명령어는 vim 이다.

 

 

##3. Alias

alias 는 c/cpp에서 typedef 와 동일한 기능이다. 별명을 붙여주는 기능이다.

 

alias 별명붙일 target파일이름=별명(alias)

=은 2개 이름 사이에서 떨어지면 안됨!

unalias 별명 // 별명해제

 

alias 를 설정하는건 사진과 같다.  man su 의 별명을 ms로 설정하고 ms 입력시 man su 가이드라인에 들어가진다.

다시 해제하는 명령(unalias ms) 을 타이핑 시 ms 를 찾을 수 없다고 한다.

 

일반 유저의 경우  alias vi=vim 으로 기본 설정되있지만,  root는 별개이다. 이에 alias를 설정해줘도 되는데, alias 무시하고 vi를 실행시키고 싶다면 \vi(앞에 역슬래시) 를 타이핑 하면 vi 에디터로 들어가게 된다.

 

##4  vimx

1) clipboard 기능 여부 확인

X window 환경에서 vim과 클립보드 공유 가능한지 확인하려면 vim --version으로 clipboard, xterm_clipboard 기능이 있는지 확인해야한다. 

+로 되있으면 설치한 vim이 해당 기능을 지원해준다는것이다. 

+와 - 를 통해 vim을 컴파일 할 때 어느 기능을 넣었고, 어느 기능을 빼먹었는지 확인 가능하다.

 

grep name  은  name이라고 문자열이 포함되는 파일을 찾는 명령어다.

** The grep filter searches a file for a particular pattern of characters, and displays all lines that contain that pattern.

-geeks for geeks-

2) 기능이 존재해도 설정을 해야 사용이 가능하다!

 

vim ~/.vimrc

  타이핑하여 위 25라인~27라인 타이핑 통해 설정을 하자.

 

확인 하는 방법은 vimx 와 gedit 통해 서로 복사 붙여넣기가 호환 이 되는지 로 확인 할 수 있다.

 gedit 을 타이핑하면 gedit 창이 뜨는데 여기서 문장을 ctrl c를 눌러 복사하여 터미널창에 붙여넣기(shift + Insert) 해준다.

터미널에선 특정 문장 복사(ctrl+Insert)  해서 gedit에 ctrl v 를 눌러 붙여넣기 해준다.

(참고로  gedit 틀면 해당 터미널창은 gedit으로 사용이 안되고, 새로 ctrl +Alt +t 를 눌러 터미널창을 만들어서 실습을 해야한다)

 

### vim의 옵션

  • vimrc 옵션들
  • colorscheme 색상

##1. 명령행 모드: 옵션설정

#1.  vim/.vimrc 파일에 설정할 수 있는 기능들은 어디에서 볼까?

명령어 설명
:set 현재 옵션 설정 보여줌(vimrc)
:set all 모든 옵션 설정 버여줌
:set [no]name name에 해당하는 옵션 on/off함
(no는 off 의미)
:set name! name 옵션의 on, off를 토글
:set name=value name 옵션에 value의 값 할당.

:set 입력시 필자가 vimrc에서 설정한 옵션들이 보여진다.

 

:set all  입력 시 옵션이 no가 있는 경우(빨강) 와 없는경우(보라색)  , 명령어에 특정 값(문자/값 )이 할당되는 걸 볼 수 있다.

 

#2 명령어모드: 옵션 설정

옵션 설명
set: nu (number) 화면에 행번호 표시
set: rnu (relativenu) 현재 행 기준으로 상하의 상대적 행번호 표시
set: ai (autoindent) 자동 들여쓰기
set: cindent C언어 스타일의 들여쓰기
set: ts=value (tabstop) 화면에 표시될 탭 크기를 value로 지정
set: sw=value (shiftwidth) 자동 블록 이동시 열의 너비
set: fencs=value (fileencodings) 지원할 파일 인코딩 방식 리스트
* 복수개 지정시 콤파로 구분(공백없음)
set: fenc=value (fileencoding) 현재 파일 인코딩 방식을 지정

몇몇은 vimrc에서 이미 설정을 했던걸로 볼수 있다. 내가 필요로 하는 기능들은 vimrc에서 설정하거나 임시로 즉각 필요한 경우라면 vim내 명령어 모드에서 위 기능들을 적용하면된다. 

set: sw=4 

set: nu

...........

 

중괄호 만날 때 자동 들여쓰기, 중괄호 끝날때 자동 들여쓰기 빼주는 기능

 

vimrc 에서 설정시 vim ./vimrc 타이핑 후 아래와 같이 원하는 기능 타이핑하면된다.

jlim@jlim-vm:~$ vim ./.vimrc

 

 

# colorscheme 지원

vim 명령어 모드에서

둘중 하나 하면 테마컬러 선택 가능하다.
:colorscheme <tab>
:colo <tab>

 

 

해당 내용은  프로그래머스 리눅스 강의 김선영 선생님의 강의를 들으며 기록했습니다.