์ด ํŽ˜์ด์ง€๊ฐ€ ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? GitHub์—์„œ ์Šคํƒ€๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”! โญ Star

Forever in Vim ๐ŸŒ€

Vim์€ ์ดˆ๋ณด์ž๋Š” ๋ช…๋ น์–ด ๋•Œ๋ฌธ์—, ์ต์ˆ™ํ•œ ์‚ฌ์šฉ์ž๋Š” ๋งค๋ ฅ ๋•Œ๋ฌธ์— ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

Vim์˜ ์„ธ๊ณ„๋กœ ๋“ค์–ด์™”๋‹ค๋ฉด ์ด์ œ๋Š” ๋ฌดํ•œ์œผ๋กœ ์ฆ๊ฒจ๋ณด์„ธ์š”!

๊ธฐ๋ณธ ๋ช…๋ น์–ด

Vim์—์„œ ํƒˆ์ถœํ•˜๋Š” ๋ช…๋ น์–ด

  • :q - ์ €์žฅ ์—†์ด ์ข…๋ฃŒ
  • :wq - ์ €์žฅ ํ›„ ์ข…๋ฃŒ
  • :q! - ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ•์ œ ์ข…๋ฃŒ

๊ทธ๋ž˜๋„ ๋‚˜๊ฐ€๊ธฐ ์–ด๋ ค์šธ ๋•Œ๋Š”? ๊ทธ๋ƒฅ "Ctrl+C" ํ›„ "power off"๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๐Ÿ˜…

ํŒŒ์ผ ์ €์žฅ ๋ฐ ์ข…๋ฃŒ

๋ช…๋ น์–ด ์„ค๋ช…
:wํŒŒ์ผ ์ €์žฅ
:qVim ์ข…๋ฃŒ
:wq์ €์žฅ ํ›„ ์ข…๋ฃŒ
:q!์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ•์ œ ์ข…๋ฃŒ
:x์ €์žฅ ํ›„ ์ข…๋ฃŒ (๋‹จ์ถ• ๋ช…๋ น)

์ด๋™ ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์„ค๋ช…
h์™ผ์ชฝ์œผ๋กœ ํ•œ ์นธ ์ด๋™
l์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ ์ด๋™
j์•„๋ž˜๋กœ ํ•œ ์ค„ ์ด๋™
k์œ„๋กœ ํ•œ ์ค„ ์ด๋™
w๋‹ค์Œ ๋‹จ์–ด๋กœ ์ด๋™
e๋‹จ์–ด ๋์œผ๋กœ ์ด๋™
b์ด์ „ ๋‹จ์–ด๋กœ ์ด๋™
ggํŒŒ์ผ์˜ ๋งจ ์ฒ˜์Œ์œผ๋กœ ์ด๋™
GํŒŒ์ผ์˜ ๋งจ ๋์œผ๋กœ ์ด๋™
Ctrl+dํ™”๋ฉด์˜ ์ ˆ๋ฐ˜ ์•„๋ž˜๋กœ ์Šคํฌ๋กค
Ctrl+uํ™”๋ฉด์˜ ์ ˆ๋ฐ˜ ์œ„๋กœ ์Šคํฌ๋กค

ํŽธ์ง‘ ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์„ค๋ช…
i์ปค์„œ ์•ž์— ํ…์ŠคํŠธ ์‚ฝ์ž…
a์ปค์„œ ๋’ค์— ํ…์ŠคํŠธ ์‚ฝ์ž…
oํ˜„์žฌ ์ค„ ์•„๋ž˜์— ์ƒˆ๋กœ์šด ์ค„ ์‚ฝ์ž…
ddํ˜„์žฌ ์ค„ ์‚ญ์ œ
dGํ˜„์žฌ ์ค„๋ถ€ํ„ฐ ํŒŒ์ผ ๋๊นŒ์ง€ ์‚ญ์ œ
x์ปค์„œ ์œ„์น˜์˜ ๋ฌธ์ž ์‚ญ์ œ

์‹œ๊ฐ ๋ชจ๋“œ

๋ช…๋ น์–ด ์„ค๋ช…
v์‹œ๊ฐ ๋ชจ๋“œ ์‹œ์ž‘ (๋ฌธ์ž ๋‹จ์œ„ ์„ ํƒ)
V์‹œ๊ฐ ๋ชจ๋“œ ์‹œ์ž‘ (์ค„ ๋‹จ์œ„ ์„ ํƒ)
Ctrl+v์‹œ๊ฐ ๋ชจ๋“œ ์‹œ์ž‘ (๋ธ”๋ก ๋‹จ์œ„ ์„ ํƒ)
y์„ ํƒํ•œ ์˜์—ญ ๋ณต์‚ฌ
d์„ ํƒํ•œ ์˜์—ญ ์‚ญ์ œ
>์„ ํƒํ•œ ์˜์—ญ ๋“ค์—ฌ์“ฐ๊ธฐ
<์„ ํƒํ•œ ์˜์—ญ ๋‚ด์–ด์“ฐ๊ธฐ

๋ณต์‚ฌ ๋ฐ ๋ถ™์—ฌ๋„ฃ๊ธฐ

๋ช…๋ น์–ด ์„ค๋ช…
yyํ˜„์žฌ ์ค„ ๋ณต์‚ฌ
y$ํ˜„์žฌ ์ค„์˜ ์ปค์„œ ์ดํ›„๋งŒ ๋ณต์‚ฌ
p๋ณต์‚ฌํ•œ ๋‚ด์šฉ ๋ถ™์—ฌ๋„ฃ๊ธฐ
u๋งˆ์ง€๋ง‰ ์ž‘์—… ์ทจ์†Œ (undo)
Ctrl+r์ทจ์†Œํ•œ ์ž‘์—… ๋ณต๊ตฌ (redo)

์ฐฝ ๋ถ„ํ• 

๋ช…๋ น์–ด ์„ค๋ช…
:split์ˆ˜ํ‰ ์ฐฝ ๋ถ„ํ• 
:vsplit์ˆ˜์ง ์ฐฝ ๋ถ„ํ• 
Ctrl+w w๋‹ค์Œ ์ฐฝ์œผ๋กœ ์ด๋™
Ctrl+w qํ˜„์žฌ ์ฐฝ ๋‹ซ๊ธฐ

์—ฌ๋Ÿฌ ์ค„ ํŽธ์ง‘

๋ช…๋ น์–ด ์„ค๋ช…
v + ์„ ํƒ + :์‹œ๊ฐ ๋ชจ๋“œ๋กœ ์˜์—ญ์„ ์„ ํƒํ•œ ํ›„ ๋ช…๋ น์–ด ์‹คํ–‰ (norm ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
Ctrl+v + I + ํ…์ŠคํŠธ + Esc๋ธ”๋ก ์„ ํƒ ํ›„ ์—ฌ๋Ÿฌ ์ค„์˜ ์‹œ์ž‘์— ํ…์ŠคํŠธ ์‚ฝ์ž…
Ctrl+v + d๋ธ”๋ก ์„ ํƒ ํ›„ ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ ์‚ญ์ œ
:%norm i#ํŒŒ์ผ ์ „์ฒด์˜ ๊ฐ ์ค„ ์•ž์— # ์ถ”๊ฐ€
:%norm ^xํŒŒ์ผ ์ „์ฒด์—์„œ ๊ฐ ์ค„์˜ ์ฒซ ๊ธ€์ž ์‚ญ์ œ

์˜ˆ์ œ:

1. ์—ฌ๋Ÿฌ ์ค„ ์ฃผ์„ ๋‹ฌ๊ธฐ

  1. ์ฃผ์„์„ ๋‹ฌ๊ณ  ์‹ถ์€ ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐฉ๋ฒ• 1: v๋ฅผ ๋ˆŒ๋Ÿฌ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์„ ํƒ
    • ๋ฐฉ๋ฒ• 2: Ctrl+v๋ฅผ ๋ˆŒ๋Ÿฌ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์„ ํƒ
  2. :์„ ์ž…๋ ฅํ•œ ๋’ค ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    :norm i#

2. ์—ฌ๋Ÿฌ ์ค„์—์„œ ์ฒซ ๊ธ€์ž ์‚ญ์ œ

  1. ์‚ญ์ œํ•  ์ค„์„ ์‹œ๊ฐ ๋ชจ๋“œ(v ๋˜๋Š” Ctrl+v)๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. :์„ ์ž…๋ ฅํ•œ ๋’ค ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    :norm ^x

Diff ๋น„๊ต

๋‘ ํŒŒ์ผ์˜ ์ฐจ์ด์ (diff) ๋น„๊ตํ•˜๊ธฐ

๋‹จ๊ณ„ 1: ๋‘ ํŒŒ์ผ ์—ด๊ธฐ

ํ„ฐ๋ฏธ๋„์—์„œ Vim์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋‘ ํŒŒ์ผ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค:

vim -d file1 file2

๋˜๋Š” Vim ๋‚ด๋ถ€์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

:vert diffsplit file2

๋‹จ๊ณ„ 2: ์ฐจ์ด์  ํƒ์ƒ‰

  • ]c : ๋‹ค์Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ด๋™
  • [c : ์ด์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ด๋™

๋‹จ๊ณ„ 3: ์ฐฝ ์ด๋™

  • Ctrl+w w : ๋‹ค์Œ ์ฐฝ์œผ๋กœ ์ด๋™
  • Ctrl+w h : ์™ผ์ชฝ ์ฐฝ์œผ๋กœ ์ด๋™
  • Ctrl+w l : ์˜ค๋ฅธ์ชฝ ์ฐฝ์œผ๋กœ ์ด๋™

Vimrc ์„ค์ •

์•„๋ž˜๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” .vimrc ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค:

set shiftwidth=4      " ๋“ค์—ฌ์“ฐ๊ธฐ ๊ณต๋ฐฑ ๋„ˆ๋น„๋ฅผ 4์นธ์œผ๋กœ ์„ค์ •
set tabstop=4         " ํƒญ ํ‚ค์˜ ๊ณต๋ฐฑ ๋„ˆ๋น„๋ฅผ 4์นธ์œผ๋กœ ์„ค์ •
set ignorecase        " ๊ฒ€์ƒ‰ ์‹œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์Œ
set hlsearch          " ๊ฒ€์ƒ‰์–ด๋ฅผ ํ•˜์ด๋ผ์ดํŠธ ํ‘œ์‹œ
set background=dark   " ์–ด๋‘์šด ๋ฐฐ๊ฒฝ์— ์ตœ์ ํ™”๋œ ์ƒ‰์ƒ ์„ค์ •
set nocompatible      " ํ˜ธํ™˜ ๋ชจ๋“œ ๋น„ํ™œ์„ฑํ™” (๋” ํ˜„๋Œ€์ ์ธ Vim ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”)
set history=1000      " ๋ช…๋ น์–ด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ 1000๊ฐœ๊นŒ์ง€ ์ €์žฅ
set ruler             " ์ƒํƒœ ํ‘œ์‹œ์ค„์— ์ปค์„œ ์œ„์น˜ ํ‘œ์‹œ
set nobackup          " ๋ฐฑ์—… ํŒŒ์ผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ
set title             " ํ˜„์žฌ ํŽธ์ง‘ ์ค‘์ธ ํŒŒ์ผ ์ด๋ฆ„์„ ์ฐฝ ์ œ๋ชฉ์— ํ‘œ์‹œ

set softtabstop=4     " ์†Œํ”„ํŠธ ํƒญ์„ 4์นธ์œผ๋กœ ์„ค์ • (ํƒญํ‚ค ๋ˆ„๋ฅด๋ฉด ์ŠคํŽ˜์ด์Šค ํ‚ค ๋„ค ๋ฒˆ ๋ˆŒ๋ฆฐ ํšจ๊ณผ)
set shiftwidth=4      " ๋“ค์—ฌ์“ฐ๊ธฐ ์‹œ ์‚ฌ์šฉํ•  ๊ณต๋ฐฑ ๋„ˆ๋น„๋ฅผ 4์นธ์œผ๋กœ ์„ค์ •
set smartindent       " ์Šค๋งˆํŠธ ๋“ค์—ฌ์“ฐ๊ธฐ ์„ค์ •
set nu                " ์ค„ ๋ฒˆํ˜ธ ํ‘œ์‹œ
set expandtab         " ํƒญ ๋Œ€์‹  ๊ณต๋ฐฑ์„ ์‚ฝ์ž