Linux를 다른 운영체제에서 이용하는 방법에는 가상 머신(VMware, VirtualBox), 멀티 부팅, WSL 등이 있다. 나는 Windows 11 운영체제에서 WSL2(Windows Subsystem for Linux 2)를 활용하여 Ubuntu 18.04.6 LTS를 이용하고 있다.
sudo apt -y install vim
vim tmp.txt
tmp.txt 파일을 연다.
find . -name '*.txt' | vim -
find의 결과값을 vim으로 연다. 파일명이 '-'일 경우에는 stdin을 의미한다.
H ← | J ↓ | K ↑ | L → | ^ 맨 앞 | $ 맨 뒤 |
---|
[#][HJKL]
: 키 입력 전에 숫자를 입력하면 그 수만큼 이동한다.명령어 | 설명 |
---|---|
:# | #행으로 이동 |
gg | 1행으로 이동 |
G | 마지막행으로 이동 |
<CTRL-G> | 현재 위치 정보를 표시 |
명령어 | 설명 |
---|---|
<CTRL-B> | 위로 한 화면 스크롤(backward) == <Page Up> |
<CTRL-F> | 아래로 한 화면 스크롤(backward) == <Page Down> |
<CTRL-U> | 위로 1/2 화면 스크롤(up) |
<CTRL-D> | 아래로 1/2 화면 스크롤(down) |
명령어 | 설명 |
---|---|
a | 현재 커서 다음 위치 |
A | 현재 행의 끝으로 이동 |
i | 현재 커서 앞에 위치 |
I | 현재 행의 맨 앞으로 이동 |
o | 현재 행 아래에 빈 행 생성 |
O | 현재 행 위에 빈 행 생성 |
R | 수정(replace) 모드로써 모든 글자가 덧쓰여짐 |
vi에서 삭제한 내용은 임시 버퍼(buffer)에 들어간다.
명령어 | 설명 |
---|---|
x | 커서에 위치한 문자 삭제 == <Delete> |
dd , :d | 현재 행을 삭제 |
D | 현재 위치에서 행의 끝까지 삭제 == d$ |
J | 아래 행을 현재 행의 끝에 붙임(아래 행의 앞부분 공백은 제거) |
3dd
: 세 줄 삭제
명령어 | 설명 |
---|---|
yy , :y , Y | 현재 행을 레지스터에 복사(yank) |
명령어 | 설명 |
---|---|
p | 현재 행 아래쪽에 붙여넣기 /?현재 커서 뒤에 붙여넣기 |
:pu | 개행 문자가 포함된 경우에 현재 행의 아래에 붙여넣기 |
P (대문자) | 현재 행의 위쪽에 붙여넣기 /?현재 커서 앞에 붙여넣기 |
5p
: 다섯 번 붙여넣기명령어 | 설명 |
---|---|
u | undo |
<CTRL-R> | redo |
. | 이전 명령어 반복 |
명령어 | 설명 |
---|---|
w | write |
q | quit |
! | force 명령 |
. | 현재 행을 의미 |
$ | 마지막 행을 의미 |
+# | 현재 행부터 아래로 #개 행을 의미 |
-# | 현재 행부터 위로 #개 행을 의미 |
% | 문서(파일) 전체를 의미 |
범위를 지정하여 명령
명령어 | 설명 |
---|---|
:20d | 20행을 삭제 |
10,25d | 10~25행을 삭제 |
10,$d | 10~마지막행을 삭제 |
:%y | 문서 전체를 복사. % ==1,$ |
:.,+20y | 현재 행부터 아래로 20개 행을 복사 |
:-10,+5d | 현재 행부터 위로 10개 행, 아래로 5개 행, 총 열여섯행을 삭제 |
:40pu | 40행에 레지스터의 내용을 붙여넣기 |
mouse의 drag 기능을 대신한다.
명령어 | 설명 |
---|---|
v | 일반 비주얼 모드로, 현재 커서 위치에서 블록을 지정한다. |
V | visual line mode로, 현재 커서가 위치한 행에서 행 단위로 블록을 지정 |
<CTRL-V> | visual block mode로, 열 단위로 블록을 지정한다. (사용 불가 시 <CTRL-Q> 로 대신) |
o | 블록의 시작, 끝 이동 |
gg
→ <CTRL-V>
→ G
→ I
→ 0000
→ <ESC>
vim-gnome: 더 많은 기능을 가진 vimx(vim + clipboard, X window clipboard)을 사용해보자. gvim
sudo apt install vim-gnome # vim-gnome 설치
# sudo apt --auto-remove remove vim-gnome # 제거
X window 환경에서 vim과 클립보드를 공유하려면 clipboard, xterm_clipboard 기능이 포함(+)되어 있는지 확인해야 한다.
vim --version | grep clipboard
~/.vimrc 환경설정에 다음 clipboard 설정이 필요
" clipboard settings : Copy/Paste/Cut
if has('unnamedplus')
set clipboard=unnamed,unnamedplus
endif
gvim와 gedit(X 윈도우 에디터)을 오가며 복사와 붙여넣기를 시도해보자.
주요 명령어와 옵션
명령어 | 설명 |
---|---|
:set | 현재 옵션 설정 출력 |
:set all | 모든 옵션 설정 출력(default 옵션까지) |
:set [no]name | name에 해당하는 옵션을 on/off. no 입력 시 off |
:set name! | name 옵션의 on/off toggle |
:set name=value | name 옵션에 value의 값을 할당 |
nu | (number) 행번호 표시 |
rnu | (relative num) 현재 행을 기준으로 상대적 행번호 표시 |
ai | (auto indent) 자동 들여쓰기 |
cindent | C언어 스타일의 들여쓰기 |
ts=value | (tab stop) 화면에 표시될 탭 크기를 value로 지정. (default=8) |
sw=value | (shift width) 자동 블록 이동 시 열의 너비 |
fencs=value | (file encodings) 현재 파일 인코딩 방식을 지정 |
~/.vimrc 파일에 설정을 저장할 수 있다. 개별 파일에서도 설정 가능하다.
set nu
set ts=4 sw=4
set ai cindent
" option to read files encoded by euc-kr
set fencs=ucs-bom,utf-8,korea
colorscheme jellybeans
~/.vimrc에 위 코드를 저장함으로써 set nu
로 행번호를 표시하고 colorscheme jellybeans
로 색 테마를 변경하였다. (jellybeans 테마 github repository)
📙강의 - 코인즈월렛 기술이사 김선영