vi와 vim의 차이
vi는 리눅스에 기본적으로 설치돼있는 문서편집기이다. 그런데 딱 기본 기능만 들어있어서 사용하기 불편하다. 그래서 vi의 발전 모델인 vim을 설치해줘야 한다. 앞으로는 그냥 둘 다 vi 로 통칭한다.
vim 설치
sudo apt install vim-gtk
vi 탐색기 실행
vi ./
vim 기본설정 파일 작성
vim의 기본설정은 .vimrc 라는 파일에 작성한다. 이 파일은 홈디렉토리에 존재한다.
cd ~
vi .vimrc
vim 기본설정 하기
.vimrc 파일에 필요에 따라 아래 내용을 작성하고 저장한다.
syntax on
set number "줄번호를 표시한다.
set tabstop=2 "탭키를 누르면 공백 2칸씩 입력된다.
set shiftwidth=2 "들여쓰기가 공백 2칸으로 설정된다.
set mouse=a "마우스로 커서 이동을 허용한다.
set smartindent "들여쓰기를 자동으로 해준다.
※ 위의 설정은 vim 실행후에 명령어로도 설정할 수 있다.
숫자 키패드 사용하기
1. 현재 사용되고 있는 터미널 환경 확인
env | grep TERM
※ 대부분 「TERM=xterm」 과 같이 결과가 나타난다.
2. 설정
cd ~
vi .vimrc
if &term=="xterm" || &term=="xterm-color"
set t_Co=8
set t_Sb=^[4%dm
set t_Sf=^[3%dm
:imap <Esc>Oq 1
:imap <Esc>Or 2
:imap <Esc>Os 3
:imap <Esc>Ot 4
:imap <Esc>Ou 5
:imap <Esc>Ov 6
:imap <Esc>Ow 7
:imap <Esc>Ox 8
:imap <Esc>Oy 9
:imap <Esc>Op 0
:imap <Esc>On .
:imap <Esc>OQ /
:imap <Esc>OR *
:imap <Esc>OI +
:imap <Esc>OS -
endif
[모드 변경]
vim에는 「내용 입력모드」와 「커서 이동모드」와 「명령어 입력모드」가 있다.
* 커서 이동모드 → 내용 입력모드
-현재칸 삽입: i
-현재칸 수정: s
-다음칸 삽입: a
-다음줄 삽입: o
* 내용 입력모드 → 커서 이동모드
ESC키를 누른다.
* 커서 이동모드, 내용 입력모드 → 명령어 입력모드
ESC키를 누르고 콜론(:)을 적고 명령어를 입력한다.
[커서 이동]
* 제일 아랫줄의 앞칸으로: G
* 제일 윗줄의 앞칸으로: gg
* 한 칸 왼쪽으로: h
* 한 칸 오른쪽으로: l(소문자 '엘')
* 한 줄 위쪽으로: k
* 한 줄 아래쪽으로: j
* 같은 줄 가장 뒤칸으로: $
* 같은 줄 가장 앞칸으로: ^
* 특정 줄번호로 이동: 줄번호 → Shift+G
[선택]
* 한 칸씩 선택: v
* 한 줄씩 선택: V
[편집]
* 현재 칸 삭제: x
* 선택 복사: y
* 선택 잘라내기: d
* 현재 줄 잘라내기: dd
* 다음 칸에 삽입해서 붙여넣기: p
※ Putty 붙여넣기: Shift+우클릭
[저장]
: w
[종료]
: q
[저장 후 종료]
: wq
※ 명령어를 연속해서 적으면 두가지 이상의 명령을 동시에 실행시킬 수 있다.
[저장 않고 종료]
: q!
[문자열 찾기]
* 커서 기준으로 위에서 아래로 찾기
: /문자열
* 커서 기준으로 아래에서 위로 찾기
: ?문자열
* 계속 찾기
문자열을 찾은 후, Enter를 쳐서 일반 모드로 이동후에 'n' 키를 누르면 뒤로 다음 문자열을 찾고 'N' 키를 누르면 앞으로 다음 문자열을 찾는다.
1. 문자열 찾아 바꾸기
:시작줄,끝줄s/찾을패턴/바꿀문자열/옵션
1.1. 시작줄, 끝줄은 행 번호 또는 행 표시로 지정한다.
행 표시 | 의미 |
. | 현재 커서가 있는 행 |
$ | 마지막 행 |
% | 문서 전체 |
2. 찾을패턴: 문자열을 적어도 되고 정규표현식을 적어도 된다.
3. 바꿀문자열: 정규표현식은 안 된다. 문자열만 된다.
4. 옵션
1) g: global 한 줄에 패턴이 여러 번 나오면 모두 바꾼다. 지정하지 않으면 첫번째 패턴만 바꾼다.
2) i: ignore case 대소문자 구분을 하지 않는다.
3) c: confirm 검색된 모든 문자열에 대해서 바꿀지 확인한다.
예)
: %s/대상패턴/바꿀문자열
: 2, 20s/대상패턴/바꿀문자열
※ 만약 검색할 문자열에 「/」가 포함되면, 「\/」로 쓴다.
[정규표현식]
1. []
대괄호 사이에 존재하는 문자들 중 하나에 일치한다.
I love you.
Love is peace.
[Ll]ove
2. [x-y]
대괄호 사이 범위 내의 한 문자와 일치한다.
I pick you.
But you kick me.
[a-z]ick
3. ^
행의 시작을 나타낸다. vi편집기에서 문자열은 개행까지를 한 행으로 판단한다.
I love you.
love is
^love
대괄호 안에 들어가면 부정을 의미한다.
love, #ove, 3ove
[^a-z]ove
4. $
행의 끝을 나타낸다.
I love you.
Peace is love.
love.$
5. .
하나의 모든 문자를 나타낸다.
love, hove, sovl
.ov.
6. 공백*
앞에 공백이 0개이상 있는 것을 찾음.
love
love
i love
공백*love
*공백도 같은 원리로 가능
love*공백
7. \<, \>
단어의 시작과 끝
glove
loved
\<love
glove
loved
love\>
glove
loved
love
\<love\>
8. 문자\{숫자\}
문자가 정확히 몇개 있음을 나타낸다.
god
good
o\{2\}
9. 문자\{숫자, \}
최소 숫자번 반복한다.
10. 문자\{숫자1, 숫자2\}
최소 숫자1번 최대 숫자2번 반복한다.
[화면 분할]
* 수평분할
: sp 파일명
* 수직분할
: vs 파일명
* 분할한 창 모두 종료
: qa
[탐색기]
* 탐색기 열기
: e ./
* 새 파일 만들기
%
* 새 디렉토리 만들기
d
줄번호 없애기
:set nonumber
클립보드에 복사하기
선택 후 "+y
'컴퓨터 > Ubuntu' 카테고리의 다른 글
010. wget 사용법 (0) | 2021.10.28 |
---|---|
006. 데비안 기반 리눅스 사용법(우분투, 라즈비안 등) (0) | 2021.10.26 |
라즈비안 Raspbian 설치 (0) | 2021.10.22 |
우분투 Ubuntu 설치 (0) | 2021.10.04 |
Ubuntu shell (0) | 2021.06.29 |