쌓고 쌓다
[Linux]Vi 에디터 본문
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