내가 실무에서 자주 사용하는 vim 기능, 명령어들을 정리해봄!!
사용하며 뭔가 필요하면 좋겠는 기능들은 대부분 찾아보면 다 있다.
사용하며 불편한 것이 있다면 그때그때 찾아보고 자주 사용하는 것들은 어느새 익히게 되는 편이다
굳이 외우려고 하진 않았음
정말 자주 쓰는 거고 이게 다임!
쓰면 쓸수록 더 추가 되는중ㅋㅋㅋ
vi -R 옵션 → 읽기모드로 열기
(잘못해서 파일이 수정되거나 파일 수정일이 변경되면 곤란한 경우..)
vi -R file_name
~ vim 에디터 안에서 ~
이동
ctrl+Y, ctrl+E → 터미널 화면을 한줄씩 이동
ctrl+F,ctrl+B → 앞 화면, 뒤 화면 이동
w, b → 단어 앞, 뒤 이동
$, ^ → 커서가 있는 문장의 맨 뒤, 맨 앞으로 이동 (shift+4, shift+6)
엔터키 → 현재 커서 다음줄 맨 앞으로 커서 이동
- → 현재 커서 이전줄 맨 앞으로 커서 이동
:1000 → 1000번줄로 이동
gg → 맨 위 line으로 이동
G → 맨 밑 line으로 이동 (shift+g)
복사, 붙여넣기, 삭제
< 삭제 >
dd → 커서가 있는 라인(줄) 삭제
=> 삭제된 내용은 붙여넣기 가능
=> 3dd → 3줄 삭제
:1,5d → 1번째줄부터 5번째줄까지 지우기
< 복사 >
yw → 커서 기준으로 뒤에 있는 단어 복사 (커서 포함)
yy → 커서가 있는 라인(줄) 복사
5yy → 5줄 복사
< 붙여넣기 >
p → 커서 다음에 붙여넣기
P → 커서 이전에 붙여넣기 (shift+p)
. → 이전에 실행한 명령어를 실행 ( 반복적으로 실행 가능 )
문자열 검색
/키워드 → 키워드를 찾아줌
/error\c → \c 옵션: 대소문자 구분없이 찾아줌 (Error, error, ERROR, ERroR 등등)
n, N → 찾은 키워드로 커서 이동
:noh → 찾은 문자열이 색으로 하이라이트된거 없애줌 (다시 검색하면 다시 강조가 활성화됨)
참고)
root에서 검색한 문자열 highlight 가 안보이는 경우엔
vi 사용하였을 때 vim으로 alias 안되어있을 수도 있으니..
vim명령어로 파일을 열어보기
문자열 일괄 변경
:%s/[검색할문자열]/[치환할문자열]/g
:%s/10.50.1.119/10.50.1.90/g
:%s#/bin/python3.6#/local/bin/python#g → 변경하려는 문자열에 / 가 들어가서 #으로 구분함
여러줄 Tab, shift+Tab 방법
:[시작줄], [종료줄]s/[검색할문자열]/[치환할문자열]/
:182,193s/^/ / → 182~193번줄 맨 앞에 4칸 띄어쓰기
:182,193s/^ // → 182~193번줄 맨 앞에 4칸 지우기
<여러줄 주석>
:112,117s/^/#/
작업시 소소한 팁
1.
파일을 수정해야 하는 경우 일단 파일을 백업해둔다
cp -rp로 복사하면 파일수정일까지 고대로 복사되서 나중에 ls -l 로 확인할 때 좋다
cp -rp file_name.py file_name.py.bak_250202
2.
vi에디터에서 저장하고 q 로 나가버리면 Undo, Redo 가 안된다. ( u, ctrl+R 이 안됨 )
실행 후 확인해보고 undo를 해야할 수도 있다면 :w, ctrl+Z, jobs, fg 를 이용해보자...
이게 뭔 소리냐면...
:w vi 에디터에서 저장한 후
ctrl+Z 프로세스 중지시키고 빠져 나와서
작업하다가 다시 수정이 필요한 경우
jobs
fg [숫자]
를 사용하면 Undo, Redo 가능하다!!
기타
종료시 :q! → 파일을 저장하지 않고 종료하고 싶은 경우
:se nu → line number 표시
:se nonu → line number 숨기기
u → 이전으로 되돌리기 (Undo)
Ctrl+r → 되돌리기 한 것을 다시 실행 (Redo)
:set encoding=utf-8 → 인코딩 설정
<탭 간격 설정>
:set ts=4 → 탭을 띄어쓰기 4칸으로 설정
<개수 세기>
:%s/delete_//n → delete_ 라는 문자열이 몇건 나오는지 확인
'리눅스' 카테고리의 다른 글
Rocky Linux 8.10에 오라클 19c 설치하기 (Silent 모드) (0) | 2025.01.26 |
---|---|
VMware 인터넷 연결 안될 때 해결 방법 (네트워크 bridge모드) (0) | 2025.01.19 |
VMWare에 RHEL8 iso이미지로 로컬 레포 연결하기 (0) | 2025.01.18 |
VMware 가상머신 리눅스 설치 (RHEL 8.10) (0) | 2025.01.11 |
리눅스 암호 걸어서 zip파일로 압축하는 방법 (0) | 2024.12.29 |