쌓고 쌓다

[Linux]Vi 에디터 본문

프로그래밍/리눅스

[Linux]Vi 에디터

승민아 2022. 3. 22. 20:20

Vi 에디터

  • 터미널에서 vi [filename]을 입력하면 시작된다.
  • 만약 파일이 존재 시 그 파일을 열고, 존재하지 않는다면 새로 파일을 만든다.
  • 종료 시 command mode로 아래의 문장을 입력한다.
  • :q! ( 저장 없이 종료 )
  • :wq ( 저장하고 종료 )

Insert mode

  • i : 현재 커서의 앞에 입력 (현재 커서 자리에 입력)
  • a : 현재 커서의 뒤에 입력 (현재 커서 다음 자리에 입력)
  • o : 커서 밑에 빈 행을 추가해 입력 (다음 행에 입력)
  • I : 행의 맨 앞에 입력
  • A : 행 마지막 부분에 입력
  • O : 커서 윗 행에 빈 행을 추가해 입력 (커서가 위치한 행의 앞 행에 입력)

Command mode

  • ESC를 누르면 명령 모드로 전환

Extended command ( Ex mode )

  • 명령 모드에서 : 를 누르면 전환

커서 이동 명령 ( Command 모드에서 사용한다 )

  • h : 커서를 한 글자 왼쪽으로 이동
  • j : 커서를 한 행 아래로 이동
  • k : 커서를 한 행 위로 이동
  • l : 커서를 오른쪽으로 이동
  • ^ 또는 0 : 커서를 현재 행의 처음으로 이동
  • $ : 커서를 현재 행의 마지막으로 이동
  • - : 커서를 앞 행의 처음으로 이동
  • + : 커서를 다음 행의 처음으로 이동
  • H : 커서를 맨 윗행으로 이동
  • M : 커서를 중간 행으로 이동
  • L : 커서를 맨 아랫행으로 이동
  • w : 커서를 다음 단어의 첫 글자 위치로 이동
  • b : 커서를 앞 단어의 첫 글자 위치로 이동
  • e : 커서를 다음 단어의 마지막 글자 위치로 이동

화면 이동 명령

  • ^u ( Ctrl + u ) : 반 화면 위로 이동한다.
  • ^d ( Ctrl + d ) : 반 화면 아래로 이동한다.
  • ^b ( Ctrl + b ) : 한 화면 위로 이동한다.
  • ^f ( Ctrl + f ) : 한 화면 아래로 이동한다.
  • ^y ( Ctrl + y ) : 화면을 한 행만 위로 이동
  • ^e ( Ctrl + e ) : 화면을 한 행만 아래로 이동

특정 행으로 이동 명령

Command mode에서

  • line number + "G" -> ex, 50G

ex mode에서

  • :50 [enter]
명령 키 기능
G ( Shift + g ) 파일의 마지막 행으로 이동
행 번호G ( Shift + g ) 지정한 행 번호로 이동
:행 번호 지정한 행 번호로 이동
:$ 파일의 마지막 행으로 이동

 

내용 지우기 명령

Command mode에서 명령을 입력한다.

삭제한 것도 p로 붙이기 가능 하더라

  • x, #x : 커서 위치의 글자를 삭제한다. #에는 삭제할 글자 수를 입력 ex, 3x -> 3개의 글자 삭제
  • dw, #dw : 커서 위치의 단어를 삭제한다. #에는 삭제할 단어의 개수를 입력
  • dd, #dd : 커서 위치의 행을 삭제한다. #에는 삭제할 행의 개수를 입력 ex, 5dd -> 커서 위치로부터 5개의행 삭제
  • D ( Shift + d ) : 커서 위치부터 행의 끝까지 삭제한다.

Undo 명령

  • u : 명령을 취소
  • U : 해당 행에서 한 모든 명령을 취소
  • :e! : 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업한다.

글자 찾기 명령

  • Forward 방향 ( 현재 커서 위치에서 아래 방향 ) : slash (/)
  • Backward 방향 ( 현재 커서 위치에서 윗방향 ) : question (?)
  • ex, /food or ?food
  • 그 다음 문자열을 탐색하려면 소문자 "n"을 누른다.
  • 이전 문자열을 탐색하려면 "N"

구체적 글자 찾기

  • "/te\>" : 끝 부분이 te인 단어를 찾는다 ex, "write", "byte"
  • /\<top : 시작 부분이 top인 단어를 찾는다 ex, "top", "topology"
  • /theat[er] : 괄호 안의 단어가 포함된 단어를 찾는다. ex, "theater", "theatre"

문자열 바꾸기

ex 모드에서 아래의 명령을 입력한다.

  • %s : 파일 안의 모든 키워드를 바꾸기
  • $ : 파일의 끝까지
  • ex -> " :1,$s/text/doc/g " : 첫 줄부터 문서 끝($)까지 text를 doc로 바꾼다.
명령 키 기능
: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 에디터에서 쉘 명령 실행하기

  • :! 쉘 명령 : vi 작업을 잠시 중단하고 쉘 명령을 실행한다. (vi로 돌아오기는 Enter)
  • :sh : vi를 잠시 빠져나가서 쉘 명령을 실행 ( vi로 돌아오기는 exit 명령을 입력해야 함 )

 

복사, 자르기, 붙이기

command 명령 모드에서 아래의 명령을 입력한다.

  • yy, #yy : 커서가 위치한 행을 복사한다, #에는 복사할 행의 수를 삽입한다. ex, 3yy -> 세 행을 복사
  • p : 커서가 위치한 행의 아래쪽에 붙인다.
  • P : 커서가 위치한 행의 위쪽에 붙인다.
  • dd, #dd : 커서가 위치한 행을 잘라둔다. 삭제와 같은 기능, #에는 잘라둘 행의 수 삽입 ex, 3dd -> 세 행을 잘라두기

 

'프로그래밍 > 리눅스' 카테고리의 다른 글

[Linux] uniq 명령어  (0) 2022.04.06
[Linux] 파일 조작  (0) 2022.04.05
[Linux] 리다이렉션 ( Redirection )  (0) 2022.04.05
[Linux] 파일 권한  (0) 2022.03.15
[Linux] 파일 시스템  (0) 2022.03.15
Comments