TIL (Today I Learned)/Linux

vi/vim ํŽธ์ง‘๊ธฐ ๋ช…๋ น์–ด ์ •๋ฆฌ

loki d 2021. 7. 21. 16:24
728x90

vi/vim ํŽธ์ง‘๊ธฐ ๋ช…๋ น์–ด ์ •๋ฆฌ

vi ์‹œ์ž‘ ๋ช…๋ น์–ด

  • vi {ํŒŒ์ผ๋ช…}
    • ์˜ˆ์‹œ : $ vi test.c ์ž…๋ ฅํ•œ ํŒŒ์ผ๋ช…์ด ์‹ค์ œ ์กด์žฌ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํŒŒ์ผ์„ ์ƒ์„ฑ

      vitest
  • vi + {ํ–‰๋ฒˆํ˜ธ}{ํŒŒ์ผ๋ช…}
    • ์˜ˆ์‹œ : $ vi -10 test.c
  • vi + /"{๊ฒ€์ƒ‰ ๋ฌธ์ž์—ด}"{ํŒŒ์ผ๋ช…}
    • ์˜ˆ์‹œ : $ vi-/"abc" test.c
  • vi -r{ํŒŒ์ผ๋ช…}
    • ์˜ˆ์‹œ : $ vi -r test.c

      -r test
  • view {ํŒŒ์ผ๋ช…}
    • ์˜ˆ์‹œ : $ view test.c

      view

vi ์ปค์„œ ์ด๋™

  • h (←) : ์™ผ์ชฝ์œผ๋กœ ์ปค์„œ ์ด๋™
  • j (↓) : ์•„๋ž˜๋กœ ์ปค์„œ ์ด๋™
  • k (↑) : ์œ„๋กœ ์ปค์„œ ์ด๋™
  • l (→) : ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ปค์„œ ์ด๋™
  • w : ์˜ค๋ฅธ์ชฝ ํ•œ ๋‹จ์–ด์˜ ๋๋ถ€๋ถ„์œผ๋กœ ์ปค์„œ ์ด๋™

    w push
  • e : ์˜ค๋ฅธ์ชฝ ํ•œ ๋‹จ์–ด์˜ ์•ž ๋ถ€๋ถ„์œผ๋กœ ์ปค์„œ ์ด๋™

    e push
  • b : ์™ผ์ชฝ ํ•œ ๋‹จ์–ด์˜ ์•ž ๋ถ€๋ถ„์œผ๋กœ ์ปค์„œ ์ด๋™

    b push
  • Enter : ํ•œ ํ–‰ ์•„๋ž˜๋กœ ์ปค์„œ ์ด๋™
  • Back space : ํ•œ ๋ฌธ์ž ์™ผ์ชฝ์œผ๋กœ ์ปค์„œ ์ด๋™
  • Space bar : ํ•œ ๋ฌธ์ž ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ปค์„œ ์ด๋™
  • ^ : ํ–‰์˜ ๋งจ ์™ผ์ชฝ์œผ๋กœ ์ปค์„œ ์ด๋™
  • $ : ํ–‰์˜ ๋งจ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ปค์„œ ์ด๋™
  • H : ํ™”๋ฉด์˜ ๋งจ ์œ„๋กœ ์ด๋™
  • M : ํ™”๋ฉด์˜ ์ค‘๊ฐ„์œผ๋กœ ์ด๋™
  • L : ํ™”๋ฉด์˜ ๋งจ ์•„๋ž˜๋กœ ์ด๋™
  • ์ˆซ์žG : ์ˆซ์ž์˜ line number๋กœ ์ด๋™ ex) 5G 10G 20G 30G

    5G10G20G30G

๋ฌธ์ž, ํ–‰, ์‚ฝ์ž… ๋ช…๋ น์–ด

  • a : ์ปค์„œ ์˜ค๋ฅธ์ชฝ์— ๋ฌธ์ž ์‚ฝ์ž…
  • A : ์ปค์„œ ์˜ค๋ฅธ์ชฝ, ํ–‰์˜ ๋์— ๋ฌธ์ž ์‚ฝ์ž…
  • i : ์ปค์„œ ์™ผ์ชฝ์— ๋ฌธ์ž ์‚ฝ์ž…
  • I : ์ปค์„œ ์™ผ์ชฝ, ํ–‰์˜ ์ฒ˜์Œ์— ๋ฌธ์ž ์‚ฝ์ž…
  • o : ์ปค์„œ ์•„๋ž˜์— ํ–‰ ์‚ฝ์ž…
  • O : ์ปค์„œ ์œ„์— ํ–‰ ์‚ฝ์ž…
  • ESC : ์ข…๋ฃŒ

ํ…์ŠคํŠธ ๋ณ€๊ฒฝ ๋ช…๋ น์–ด

  • cw : ๋‹จ์–ด ๋ณ€๊ฒฝ
  • cc : ํ–‰ ๋ณ€๊ฒฝ
  • C : ์ปค์„œ ์˜ค๋ฅธ์ชฝ์˜ ํ–‰ ๋ณ€๊ฒฝ
  • s : ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๋ฌธ์ž์—ด ๋Œ€์ฒด
  • S : ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ๋ผ์ธ์˜ ๋ฌธ์ž์—ด ๋Œ€์ฒด
  • r : ์ปค์„œ ์œ„์น˜ ๋ฌธ์ž๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ž๋กœ ๋Œ€์ฒด
  • r-Enter : ํ–‰ ๋ถ„๋ฆฌ
  • J : ํ˜„์žฌ ํ–‰๊ณผ ์•„๋ž˜ ํ–‰ ๊ฒฐํ•ฉ
  • xp : ์ปค์„œ ์œ„์น˜ ๋ฌธ์ž์™€ ์˜ค๋ฅธ์ชฝ ๋ฌธ์ž ๊ตํ™˜
  • ~ : ๋ฌธ์žํ˜•(๋Œ€, ์†Œ๋ฌธ์ž) ๋ณ€๊ฒฝ
  • u : ์ด์ „ ๋ช…๋ น ์ทจ์†Œ
  • U : ํ–‰ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ทจ์†Œ, ์ด์ „์˜ ์ตœ์ข… ํ–‰ ์ทจ์†Œ
  • . : ์ด์ „ ์ตœ์ข… ๋ช…๋ น ๋ฐ˜๋ณต

ํ…์ŠคํŠธ ์‚ญ์ œ ๋ช…๋ น์–ด

  • x : ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž ์‚ญ์ œ

    xxxx push
  • nx : ์ปค์„œ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ถ€ํ„ฐ n๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์‚ญ์ œ ex) 8x

    8x push
  • dw : ํ˜„์žฌ ์ปค์„œ์— ์žˆ๋Š” ํ•œ ๋‹จ์–ด ์‚ญ์ œ

    dw push
  • dd : ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๋ผ์ธ ์‚ญ์ œ
  • ndd : ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๋ผ์ธ๋ถ€ํ„ฐ n๊ฐœ์˜ ๋ผ์ธ ์‚ญ์ œ 10dd

    10dd push
  • db : ์ปค์„œ์˜ ์œ„์น˜์—์„œ ๊ฑฐ๊พธ๋กœ ํ•œ ๋‹จ์–ด ์‚ญ์ œ

    db push
  • D : ์ปค์„œ ์˜ค๋ฅธ์ชฝ ํ–‰ ์‚ญ์ œ

    D push
  • :5,10d : 5~10๋ฒˆ์งธ ํ–‰ ์‚ญ์ œ

    5,10d

๋ณต์‚ฌ ๋ฐ ์ด๋™ ๋ช…๋ น์–ด

  • yy : ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„ ๋ณต์‚ฌ
  • y : ํ–‰ yank ๋˜๋Š” ๋ณต์‚ฌ
  • yh : ์ปค์„œ์˜ ์™ผ์ชฝ ๋ฌธ์ž ๋ณต์‚ฌ
  • yl : ์ปค์„œ์— ์œ„์น˜ํ•œ ๋ฌธ์ž ๋ณต์‚ฌ
  • yi : ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„๊ณผ ๊ทธ ์•„๋žซ์ค„ ๋ณต์‚ฌ
  • yk : ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„๊ณผ ๊ทธ ์œ—์ค„ ๋ณต์‚ฌ
  • p : yank ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋œ ํ–‰ ํ˜„์žฌ ํ–‰ ์œ„๋กœ ์‚ฝ์ž…
  • :1,2 co 3 : 1~2ํ–‰์„ 3ํ–‰ ๋‹ค์Œ์œผ๋กœ ๋ณต์‚ฌ
  • :4,5 m 6 : 4~5ํ–‰์„ 6ํ–‰ ์œ„๋กœ ์ด๋™

ํ–‰ ๋ฒˆํ˜ธ ์„ค์ • ๋ช…๋ น์–ด

  • :set nu ๋˜๋Š” :set number
  • :set nonu

๋ณด๊ด€ ๋ฐ ์ข…๋ฃŒ ๋ช…๋ น์–ด

  • :w : ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ €์žฅ
  • :w{ํŒŒ์ผ๋ช…} : ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ž…๋ ฅํ•œ ํŒŒ์ผ๋ช…์œผ๋กœ ์ €์žฅ
  • :wq : ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ด€ ํ›„ vi ์ข…๋ฃŒ. ZZ๋ช…๋ น๊ณผ ๋™์ผ
  • ZZ : ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ด€ํ›„ vi ์ข…๋ฃŒ
  • :q! : ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ด€ํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒ
  • q : ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  vi ์ข…๋ฃŒ
  • e! : ์ˆ˜์ •ํ•œ ๊ฒƒ์„ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์‹œ
  • ํ•œ๊ธ€ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค
    image
  • ์ด๋™์— ํŽธ๋ฆฌํ•œ ๋‹จ์ถ•ํ‚ค
    image