GUI 환경 : Microsoft Word, VS Code, Pycharm, 메모장 등 다양한 텍스트 에디터가 있다.
CLI 환경: Vim
Vim : ✅엄청나게 많은 기능과 단축키 ⛔모든걸 마우스 없이 키보드로 해결
$ mkdir ~/unix_practice
/* 유닉스 연습 디렉토리 생성 */
$ cd unix_practice
/* 유닉스 연습 디렉토리 이동 */
unix_practice $ vim
/* 아무 아규먼트 없이 실행하면 새로운 파일을 만들고, 파일 경로를 아규먼트로 주면 그 파일을 수정한다. */
여기서 글자를 작성하려고 키보드를 눌러봐도 글자는 작성되지 않는다. 지금은 입력모드가 아니기 때문에 텍스트를 입력할 수 없는데 Vim에는 네가지 모드가 있다.
일반모드 (Normal) |
입력모드 (Insert) |
비주얼모드 (Visual) |
명령모드 (Command) |
커서이동 | 텍스트 입력 | 텍스트 블록 지정 | 내용 저장 |
텍스트 붙여넣기 | 텍스트 복사 | Vim 종료 | |
작업취소 | |||
esc | i | V, v | : |
사용자가 어떤 모드에 있는지에 따라 같은 키를 눌러도 다르게 해석된다. Vim을 처음 열면 일반모드로 실행되고, 다른 모드로 가려면 항상 일반모드를 거쳐야 한다.
텍스트 복사, 잘라내기
입력(insert)모드로 글자를 작성 해준 뒤, 다시 일반모드로 나와준다. 그리고 복사를 시작하고 싶은 부분으로 커서를 이동한다. 이제 비주얼 모드로 전환하면 되는데, 줄 단위로 복사를 하고 싶으면 대문자 V, 글자 단위로 복사하고 싶으면 소문자 v를 사용한다.
만약 대문자 V를 이용해 줄을 복사하고, 커서를 움직여서 복사하고 싶은 줄들을 선택한 뒤, y 키를 누르면 복사가 된다. 그리고 커서를 원하는 위치에 두고 p를 누르면 복사가 된다.
잘라내기는 잘라내고 싶은 부분에 커서를 두고 V나 v + 커서를 움직여 잘라내고 싶은만큼 선택하고, d를 누르면 잘라내기가 된다. 붙여넣기는 똑같이 p를 누르면 된다.
한 줄씩 잘라내거나 복사할때는 비주얼모드로 갈 필요 없이 커서를 원하는 위치에 두고 yy나 dd를 누르면 복사, 잘라내기가 가능하다. 여전히 붙여넣기는 p이다.
내용저장 및 Vim 종료
:(콜론)으로 명령모드에 들어왔다면 w와 q를 기억해주면 된다. w는 파일을 저장할 때 쓰이고, q는 Vim을 종료할 때 쓰인다.
만약 : w를 했는데 error가 난다면 이름을 만들어서 저장해주면 된다.
unix_practice $ ls
hello_world.txt reports
Vim을 유닉스 연습 디렉토리 안에서 실행했기 때문에 유닉스 연습 디렉토리에 파일이 저장됐다.
unix_practice $ vim hello_world.txt
/* 아무 아규먼트 없이 실행하면 새로운 파일을 만들고, 파일 경로를 아규먼트로 주면 그 파일을 수정한다. */
vim 후에 아규먼트를 주면 그 파일로 들어가 수정이 가능하고, 수정을 완료 한 뒤에는 :wq로 저장 후 Vim을 종료할 수 있다.
혹시 파일을 수정했는데 저장하지 않고 나가려고 한다면 이런식으로 에러가 뜨는데, 만약 저장을 안하고 Vim을 나가고 싶은 경우엔 !를 사용하면된다. :q! 그러면 변경사항이 저장되지 않고 Vim은 종료된다.
단축키 정리
- 텍스트 입력: 입력 모드(i) → 텍스트 입력
- 텍스트 한 줄 복사: 일반 모드 → 복사하고 싶은 줄에 커서 위치 → yy
- 텍스트 한 줄 잘라내기: 일반 모드 → 잘라내고 싶은 줄에 커서 위치 → dd
- 특정 영역 복사: 비주얼 모드(V는 줄 단위, v는 글자 단위) → 복사하고 싶은 영역 커서로 설정 → y
- 특정 영역 잘라내기: 비주얼 모드(V는 줄 단위, v는 글자 단위) → 잘라내고 싶은 영역 커서로 설정 → d
- 텍스트 붙여넣기: 일반 모드 → 붙여넣고 싶은 위치에 커서 위치 → p
- 파일 저장: 명령 모드(:) → w + enter
- 파일 저장 + vim 종료: 명령 모드(:) → wq + enter
- vim 종료 (내용 저장되지 않음): 명령 모드(:) → q! + enter
'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글
옮기기 , 이름 변경하기 : mv (0) | 2024.12.07 |
---|---|
파일 내용 살펴보기 (0) | 2024.12.07 |
디렉토리와 파일 생성하기 (0) | 2024.12.07 |
필수 디렉토리 (1) | 2024.12.07 |
디렉토리 구조와 파일 경로 (1) | 2024.12.07 |