반응형
    
    
    
   
 
사용하는 사람이 아직 많이 있는지는 모르겠지만 예전에 어디선가 받아둔 vi 편집기 명령어 모음
 
 
1.시작
| vi file | vi를 시작하여 지정한 파일 편집 | 
| vi -R file | 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집 | 
| view file | 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집 | 
 
2.종료
| :wq | 데이터를 저장하고 종료 | 
| :q! | 데이터를 저장하지 않고 종료 | 
 
3. 디스플레이 제어하기
| ^L | 현재 화면을 다시 디스플레이하기 | 
| :set number | 내부 줄 번호 디스플레이 | 
| :set nonumber | 배부 줄 번호 디스플레이 않기 | 
4. 마지막으로 지운 것 복사하기
| p | 마지막으로 지워진 것을 커서의 뒤/아래에 삽입 | 
| P | 마지막으로 지워진 것을 커서의 앞/위에 삽입 | 
| xp | 두 문자를 바꿈 | 
| deep | 두 단어를 바꿈 | 
| ddp | 두 줄을 바꿈 | 
5. 패턴 검색
| /rexp | 지정된 정규 표현식에 대해 앞으로 이동 | 
| / | 이전의 패턴에 대해 앞으로 검색을 반복 | 
| ?rexp | 지정된 정규 표현식에 대해 뒤로 이동 | 
| ? | 이전의 패턴에 대해 뒤로 검색을 반복 | 
| n | /나 ?명령에 대해 같은 방향으로 반복 | 
| N | /나 ?명령에 대해 반대 방향으로 반복 | 
 
6. 약어의 사용
| :ab short long | short를 long에 대한 약어로 변경 | 
| :ab | 현재 약어 목록을 표시 | 
| :una short | 약어 short를 표시 | 
 
7. 줄 길이의 조정
| r | 문자를 뉴라인으로 변경 | 
| J | 줄의 결합 | 
| :set wm=n | 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔 | 
 
8. 커서 이동
| h | 커서를 한 칸 왼쪽으로 이동 | 
| j | 커서를 한 줄 아래로 이동 | 
| k | 커서를 한 줄 위로 이동 | 
| l | 커서를 한 칸 오른쪽으로 이동 | 
| ← | 커서를 한 칸 왼쪽으로 이동 | 
| → | 커서를 한 칸 오른쪽으로 이동 | 
| - | 커서를 이전 줄의 처음으로 이동 | 
| + | 커서를 다음 줄의 처음으로 이동 | 
| ↓ | 커서를 다음 줄의 처음으로 이동 | 
| 0 | 커서를 현재 줄의 맨 앞으로 이동 | 
| $ | 커서를 현재 줄의 맨 끝으로 이동 | 
| ^ | 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동 | 
| w | 커서를 다음 단어의 첫 글자로 이동 | 
| e | 커서를 다음 단어의 끝 글자로 이동 | 
| b | 커서를 이전 단어의 첫 글자로 이동 | 
| W | w와 같음(문장 부호 무시) | 
| E | e와 같음(문장 부호 무시) | 
| B | b와 같음(문장 부호 무시) | 
| ( | 다음 문장의 처음으로 이동 | 
| ) | 이전 문장의 처음으로 이동 | 
| { | 다음 문단의 처음으로 이동 | 
| } | 이전 문단의 처음으로 이동 | 
| H | 커서를 화면 맨 위로 이동 | 
| M | 커서를 중간으로 이동 | 
| L | 커서를 맨 아래로 이동 | 
 
9. 편집 버퍼를 통한 이동
| ^F | 한 화면 아래로 이동 | 
| ^B | 한 화면 위로 이동 | 
| n^F | n화면 아래로 이동 | 
| n^B | n화면 위로 이동 | 
| ^D | 반 화면 아래로 이동 | 
| ^U | 반 화면 위로 이동 | 
| n^D | n줄만큼 아래로 이동 | 
| n^U | n줄만큼 위로 이동 | 
 
10. 셸 명령 실행
| :!command | vi를 중단하고 지정한 셸 명령을 실행 | 
| :!! | vi를 중단하고 이전의 셸 명령을 실행 | 
| :sh | vi를 중단하고 셸을 실행 | 
| :!csh | vi를 중단하고 새로운 C-셸을 실행 | 
11. 패턴에 의한 치환
| :s/pattern/replace/ | 현재 줄의 치환 | 
| :lines/pattern/replace/ | 지정한 줄의 치환 | 
| :line,lines/pattern/replace/ | 지정한 범위의 치환 | 
| :%s/pattern/replace/ | 모든 줄의 치환 | 
12. 데이터 읽기
| :liner file | file의 내용을 지정한 줄 다음에 삽입 | 
| :r file | file의 내용을 현재의 줄 다음에 삽입 | 
| :liner !command | command의 결과를 지정한 줄 다음에 삽입 | 
| :r !command | command의 결과를 현재의 줄 다음에 삽입 | 
| :r !look pattern | 지정한 pattern으로 시작된 단어 삽입 | 
 
13. 정규 표현식을 사용하기 위한 특수 기호
| . | 뉴라인을 제외한 모든 단일 문자와 대응 | 
| * | 영 또는 그 이상의 선행 문자와 대응 | 
| ^ | 줄의 시작과 대응 | 
| $ | 줄의 끝과 대응 | 
| \< | 단어의 시작과 대응 | 
| \> | 단어의 끝과 대응 | 
| [ ] | 묶여진 문자중의 하나와 대응 | 
| [^ ] | 묶여진 문자를 제외한 아무것하고나 대응 | 
| \ | 이어지는 기호를 문자 그대로 해석 | 
 
14. 줄 번호
| nG | 줄번호 n으로 건너뛰기 | 
| 1G | 편집 버퍼의 첫 줄로 건너뛰기 | 
| G | 편집 버퍼의 마지막 줄로 건너뛰기 | 
| :map g lG | g가 lG와 같도록 매크로 정의 | 
 
15. 삽입
| i | 입력 모드로 전환, 커서 위치 앞에서 삽입 | 
| a | 입력 모드로 전환, 커서 위치 뒤에서 삽입 | 
| I | 입력 모드로 전환, 현재 줄의 앞에 삽입 | 
| A | 입력 모드로 전환, 현재 줄의 끝에 삽입 | 
| o | 입력 모드로 전환, 현재 줄의 아래에 전개 | 
| O | 입력 모드로 전환, 현재 줄의 위에 전개 | 
 
16. 편집하고 있는 파일을 바꾸기
| :e file | 지정한 파일의 편집 | 
| :e! file | 지정한 파일의 편집, 자동 점검의 생략 | 
 
17. 내용 고치기
| r | 단지 한 글자만 변경(입력 모드로 바뀌지 않음) | 
| R | 입력하는 대로 겹쳐 써서 변경 | 
| s | 삽입에 의해 한 단어의 변경 | 
| C | 커서의 위치로부터 줄 끝까지 삽입에 의한 변경 | 
| cc | 전체 줄을 삽입에 의한 변경 | 
| S | 전체 줄을 삽입에 의한 변경 | 
| cmove | 커서부터 move까지 삽입에 의해 변경 | 
| ~ | 대,소문자 바꾸기 | 
18. 고치기의 취소 또는 반복
| u | 편집 버퍼를 수정했던 마지막 명령을 취소 | 
| U | 현재 줄을 저장 | 
| . | 편집 버퍼를 수정했던 마지막 명령 반복 | 
 
19. 문자 삭제
| x | 커서가 있는 문자 삭제 | 
| X | 커서의 왼쪽 문자 삭제 | 
| D | 커서부터 줄의 끝까지 삭제 | 
| dd | 현재 줄의 전체 삭제 | 
| dmove | 커서부터 move까지 삭제 | 
| dG | 커서부터 편집 버퍼의 끝까지 삭제 | 
| d1G | 커서부터 편집 버퍼의 맨 앞까지 삭제 | 
| :lined | 지정한 줄의 삭제 | 
| :line, lined | 지정한 범위의 삭제 | 
 
20. 여러 줄의 복사와 이동
| :linecotarget | 지정한 줄을 복사하여 target 줄 밑에 삽입 | 
| :line, linecotarget | 지정한 범위를 복사하여 target 줄 밑에 삽입 | 
| :linemtarget | 지정한 줄로 이동하여 target 줄 밑에 삽입 | 
| :line, linemtarget | 지정한 범위로 이동하여target 줄 밑에 삽입 | 
 
21. 데이터를 처리하기 위한 셸 명령의 사용
| n!!command | n번 줄에서 command의 실행 | 
| !move command | 커서부터 move까지 command 실행 | 
| !move fmt | 커서부터 move까지 줄들을 형식 맞추기 | 
 
22. 데이터 저장하기
| :w | 원래의 파일로 데이터를 저장 | 
| :w file | 지정한 파일로 데이터를 저장 | 
| :w>> file | 지정한 파일에 데이터를 추가 | 
반응형
    
    
    
  '개발 기록 > OS & Server' 카테고리의 다른 글
| [Apache 1.3] server-status (0) | 2023.05.22 | 
|---|---|
| [Tomcat] javax.Servlet 환경 설정 MIME-Type 한글 업로드 (0) | 2023.05.22 | 
| [Tomcat] JVM 메모리 늘리기 (0) | 2023.05.12 | 
| 솔라리스 서버관리 명령어 모음 (0) | 2022.01.15 | 
| stty - Invalid argument 에러 (0) | 2022.01.15 |