반응형

 

내가 실무에서 자주 사용하는 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_ 라는 문자열이 몇건 나오는지 확인

 

반응형
복사했습니다!