본문 바로가기

TEAM STUDY/LINUX

vi 입력과 수정

728x90
반응형

vi 입력

  • vi에디터는 명령 모드와 입력 모드가 명확이 나눠져 있다.
  • 제일 처음은 명령모드 상태이다.
  • 무언가를 입력하기 위해서는 입력모드로 전환이 필요하다.

 

입력 모드 전환 명령 키

  • i
    • 커서 앞에 입력
    • 현재 커서 자리에서 입력
  • a
    • 커서 뒤에 입력
    • 현재 커서 다음 자리에서 입력
  • o
    • 커서가 위치한 행의 다음 행에 입력
  • I(대문자 i)
    • 커서가 위치한 행의 첫 칼럼으로 이동하여 입력
  • A
    • 커서가 위치한 행의 마지막 칼럼으로 이동하여 입력
  • O
    • 커서가 위치한 행의 이전 행에 입력함

 

i 명령 키를 사용하여 입력 모드로 전환하기

  •  vi를 실행한 뒤 명령 모드에서 i 명령 키를 입력하고 나서 다음 내용을 입력

 

  • 입력 모드에서 다시 명령 모드로 전환하기 위해 Esc 키를 누르면 커서가 x 위로 이동

 

 

i와 a 명령 키의 차이

  •  명령 키 i는 커서 앞에, a는 커서 뒤에 입력
  • 커서가 마지막 글자인 x 자 위에 있는 상태에서 i를 입력하고 ‘Space Bar+fedora’를 입력한 후 Esc 키를 누르면 명령 모드로 전환되어 마지막 입력 글자인 a 위에 커서가 놓임

 

  • a 명령 키로 입력 모드로 전환한 후 ‘Space Bar+linu’를 입력하면 커서가 위치한 a 다음부터 글자가 입력되고, Esc키를 누르면 명령 모드로 전환되면서 마지막 입력 글자인 u 위에 커서가 놓임

 

o 명령 키를 사용해 입력 모드로 전환하기

  • 명령 모드에서 현재 커서가 위치한 그 다음 행에 글자를 입력

 

 

커서 이동하기

  • k
    • 커서를 한 행 위로 이동함
  • j
    • 커서를 한 행 아래로 이동함
  • l
    • 커서를 한 글자 오른쪽으로 이동함
  • h
    • 커서를 한 글자 왼쪽으로 이동함
  • ^ 또는 O
    • 커서를 현재 행의 처음으로 이동함
  • $
    • 커서를 현재 행의 마지막으로 이동함
  • -
    • 커서를 앞 행의 처음으로 이동함

 

커서 이동하기

  • 초기의 유닉스 vi: 화살표 키로 커서를 이동할 수 없었음
  • 리눅스 vi: 화살표 키로도 커서를 이동할 수 있음
  • 기존 vi 명령 키와 화살표 키, 페이지 업·다운 키
  • k
    • 위 화살표 키( ↑ )
  • h
    • 왼쪽 화살표 키( ← )
  • j
    • 아래 화살표 키( ↓ )
  • ^ 또는 O
    • [Home]
  • l
    • 오른쪽 화살표 키( → )
  • $
    • [End]

 

화면 이동하기

  • 파일 크기가 터미널의 화면 크기보다 클 경우 화면을 이동하기 위한 명령

 

면 이동 명령 키

  • ^u (Ctrl+u)
    • 반 화면 위로 이동함
  • ^d (Ctrl+d)
    • 반 화면 아래로 이동함
  • ^b (Ctrl+b)
    • 한 화면 위로 이동함 [Page Up]
  • ^f (Ctrl+f)
    • 한 화면 아래로 이동함
    • [Page Down]
  • ^y (Ctrl+y)
    • 화면을 한 행만 위로 이동함
  • ^e (Ctrl+e)
    • 화면을 한 행만 아래로 이동함

 

특정 행으로 바로 이동하는 명령 키

  • G(Shift + g)
    • 파일의 마지막 행으로 커서가 이동함
  • 행 번호G(Shift + g)
    • 지정한 행 번호로 커서가 이동함
  • :행 번호
    • 지정한 행 번호로 커서가 이동함(마지막 행 모드)
  • :$
    • 파일의 마지막 행으로 커서가 이동함(마지막 행 모드)

 

내용 수정 명령 키

  • r
    • 커서가 위치한 글자를 다른 글자로 수정함
  • cw, #cw
    • 커서 위치부터 현재 단어의 끝까지 수정함 
    • #에는 수정할 단어의 수를 지정함 
    • 3cw는 커서 위치부터 세 단어를 수정함
  • s, #s 
    • 커서 위치부터 [Esc] 키를 입력할 때까지 수정함 
    • #에는 수정할 글자의 수를 지정함 
    • 5s는 커서 위치부터 다섯 글자를 수정함
  • cc
    • 커서가 위치한 행의 내용을 모두 수정함
  • C
    • 커서 위치부터 행의 끝까지 수정함

 

내용 삭제 및 취소

  • x, #x
    • 커서 위치의 글자를 삭제함 
    • #에는 삭제할 글자 수를 지정함
  • dw, #dw
    • 커서 위치의 단어를 삭제함 
    • #에는 삭제할 단어 수를 지정함
  • dd, #dd 
    • 커서 위치의 행을 삭제함 
    • #에는 삭제할 행의 수를 지정함
  • D( shift +d)
    • 커서 위치부터 행의 끝까지 삭제함
  •  u
    • 명령을 취소함
  • U
    • 해당 행에서 한 모든 명령을 취소함
  • :e!
    • 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업함

 

복사 및 잘라서 붙이기

  • yy, #yy
    • 커서가 위치한 행을 복사함
    • #에는 복사할 행의 수를 지정함
  • p
    • 커서가 위치한 행의 아래쪽에 붙임
  • P
    • 커서가 위치한 행의 위쪽에 붙임
  • dd, #dd
    • 커서가 위치한 행을 잘라둠
    • 삭제와 같은 기능임
    • #에는 잘라둘 행의 수를 지정함

 

마지막 행 모드에서의 복사 및 잘라서 붙이기

  • 마지막 행 모드에서 행을 복사하거나 잘라낼 때는 범위를 지정해서 할 수 있음
  • 범위 지정 명령 키
  • 1, $ 또는 %
    • 1행부터 마지막 행까지 지정함
  • 1,.
    • 1행부터 커서가 있는 행까지 지정함
  • .,$
    • 커서가 있는 행부터 마지막 행까지 지정함
  • ,-3
    • 현재 행과 이전 세 행까지(총 네 행) 지정함
  • 10,20
    • 10행부터 20행까지 지정함

vi 편집방법

검색하기

  • 검색하기 위해 마지막 행으로 이동할 때는 ‘:’이 아니라 ‘/’ 이나 ‘?’를 입력
  • 검색하기 명령 키
  • /문자열
    • 문자열을 아래 방향으로 검색함
  • ?문자열
    • 문자열을 위 방향으로 검색함
  • n
    • 원래 찾던 방향으로 다음 문자열을 검색함
  • N
    • 역방향으로 다음 문자열을 검색함

바꾸기

  • 기존의 문자열을 다른 문자열로 바꾸려면 먼저 :을 입력하여 마지막 행 모드로 전환
  • 커서 위치의 문자열만 바꿀 수 있음 
  • 파일 전체나 특정 범위 내에서 해당하는 문자열을 모두 바꿀 수도 있음

 

바꾸기 명령 키

  • :s/문자열1/문자열2/
    • 커서가 위치한 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꿈
  • :%s/문자열1/문자열2/g
    • 파일 전체에서 모든 문자열1을 문자열2로 바꿈
  • :<범위>s/문자열1/문자열2/
    • 범위 내 모든 각 행에서 첫 번째로 나오는 문자열1을 찾아 문자열2로 바꿈
  • :<범위>s/문자열1/문자열2/g
    • 범위 내 모든 각 행에서 문자열1을 문자열2로 바꿈
  • :<범위>s/문자열1/문자열2/gc
    • 범위 내 모든 행에서 문자열1을 문자열2로 바꿀 때 수정할지 여부를 물음

 

파일 읽어오기, 여러 파일 편집하기

  • :r 파일
    • 지정한 파일을 읽어 들여 현재 커서 위치에 삽입함
  • :e 파일
    • 지정한 파일로 전환함
    • 기존 파일을 :w로 저장한 뒤에 실행해야 함
  • :n
    • vi 시작 시 여러 파일을 지정했을 경우 다음 파일로 작업을 이동함

 

파일 읽어와 삽입하기

  • vi test.txt 실행 후 커서를 4행으로 이동한 후, :r exec2.txt를 실행하면 exec2.txt 파일의 내용이 test.txt 파일의 4행 다음에 삽입

 

vi에서 셸 명령 사용하기

  • :! 셸 명령
    • vi 작업을 잠시 중단하고 셸 명령을 실행함
    • vi로 돌아오려면 [Enter]키를 누름
  • :sh
    • vi를 잠시 빠져나가서 셸 명령을 실행함
    • vi로 돌아오려면 exit 명령을 입력함

 

기타 명령 키

  • Ctrl+ l (소문자 L)
    • 현재 화면을 다시 출력함
  • Ctrl + g
    • 현재 커서 위치의 행 번호를 마지막 행에 출력함
  • Shift + j (대문자 J)
    • 현재 행과 아래행을 연결하여 한 행으로 만듦
  • . (마침표)
    • 바로 직전에 했던 명령을 반복함
  • ~
    • 대문자를 소문자로, 소문자를 대문자로 변경

 

파일 편집하기

  • 파일 편집을 마치고 다른 파일 편집하기
    • :e 명령 키는 현재 작업 중인 파일의 작업을 마치고 다른 파일을 편집하려고 할 때 사용
      • text.txt 파일 편집을 완료하고 exe.txt 파일 편집으로 바꾸려면 :e exe.txt 사용
    • 이때 작업 중이던 파일을 먼저 저장하고 :e 명령을 실행해야 함
  • 여러 파일 편집하기
    • vi를 시작할 때 파일명을 여러 개 지정
    • 파일 작업을 마치고 다음 파일로 이동하려면 :n을 입력

 

728x90
반응형

'TEAM STUDY > LINUX' 카테고리의 다른 글

유닉스 쉘의 기능과 종류  (0) 2021.01.16
[ 리눅스 마스터 ] 디렉토리 ?  (0) 2021.01.13
vi 에디터의 개요  (0) 2021.01.09
유닉스의 디렉토리 조작하기  (0) 2021.01.03
유닉스 디렉토리 계층 구조  (1) 2021.01.02