사용하는 이유
텍스트 파일을 편하게(시각적으로) 편집하기 위해서입니다.
터미널만 제공되면 동작하기 때문에 외부 서버에 ssh 연결을 했을 때와 같이
제한적인 경우에 텍스트 편집을 해야 할 때 쓰입니다.
vi와 vim 차이
vi : visual (editor)
vim : vi improved
ex(EXtended) : line editor, 화면 대신 터미널 출력을 보여주면서 텍스트 파일의 line을 편집하는 도구입니다.
위 예시와 같이 쓰기 많이 불편해 보입니다. 그래서 vi와 같은 시각적 텍스트 편집기가 나왔습니다.
vi는 이른 시기에 등장한 시각적 텍스트 편집 도구입니다. ex와 달리 터미널 출력(stdout)이 아닌
화면을 중심으로 텍스트 편집 기능을 제공합니다.
vim은 vi 표준에 여러 기능과 편의를 추가한 구현체입니다. 현재 대부분의 linux 배포판에서는 vim은 표준으로 여겨집니다.
그래서 대부분 vi를 입력해도 vim이 실행되며, linux man page에도 vi 문서에 vim에 관한 설명이 있습니다.
사실 순수한 vi만을 쓰면 키보드 방향키를 통한 문서 이동이 불가하며 H, J, K, L을 사용해야 합니다.
이런 걸 보면 vi 커맨드를 실행해도 vim이 실행되어 다행인 것 같습니다.
vi(vim) 사용법
vi <new file> # 새로운 파일 생성
vi <existing file> # 기존 파일 수정
vi 커맨드
모든 커맨드 입력 전에는 esc 키를 입력해야 "커맨드 입력 모드"로 전환됩니다.
저장 및 종료
- :w :저장
- :w <file name> : 파일 이름으로 저장
- :wq :저장 후 종료
- :q! :저장하지 않고 종료
실행 취소(윈도에서 ctrl + z) 및 실행
- u : 마지막 실행 취소
- * : (취소한) 마지막 실행을 다시 실행
검색
- /<expression> : 표현식에 일치하는 텍스트들 찾기; 정방향
- ?<expression> : 표현식에 일치하는 텍스트들 찾기; 역방향
- n : 다음 찾기, 방금 찾던 거 다음 거
- N : 이전 찾기, 방금 찾던 거 이전 꺼
커서 이동
화살표 이동으로 하시면 됩니다.
삭제
- dd: 1줄 삭제
- dw : 1 단어 삭제
- x : 한 문자 삭제
- D : 커서부터 라인 끝까지 삭제
- dG : 문서 끝까지 삭제
텍스트 추가
- a : apeend 커서 다음에 텍스트 추가
- i : insert 커서 앞에 텍스트 추가
linux man page 설명
Vim is a text editor that is upwards compatible to Vi. It can be used to edit all kinds of plain text. It is especially useful for editing programs.
There are a lot of enhancements above Vi: multi level undo, multi windows and buffers, syntax highlighting, command line editing, filename completion, on-line help, visual selection, etc.. See ":help vi_diff.txt" for a summary of the differences between Vim and Vi.
(해석)
vim은 vi와 호환되는 텍스트 편집기입니다. 모든 종류의 평문을 편집하는 데 사용될 수 있습니다. 특히 프로그램들을 편지하는데 유용합니다.
vim은 vi에 비해 여러 개선점이 있습니다.
: multi level undo, multi windows and buffers, syntax highliting, command line editing, file name completion, on-line help, visual selection 등등.. ":help vi_diff.txt" 명령어를 통해 vi와 vim의 차이를 볼 수 있습니다.
참고 자료
'개발 > linux' 카테고리의 다른 글
linux dpkg 사용법,설명 : .deb 설치 (0) | 2022.10.22 |
---|---|
package manager in linux (종류, 구조) (0) | 2022.10.22 |
linux grep 사용법, 설명 (0) | 2022.10.21 |
linux stat 사용법, 설명 (0) | 2022.10.21 |
linux chown chmod (setuid, setgid, sticky bit, mode format) 사용법, 설명, 차이 (0) | 2022.10.21 |
댓글