vi 에디터 사용법
vi or vim 기초 사용법 (맥 -> 우분투)
[Vim] 문자열 검색 및 바꾸기
그동안 PS 사이트를 백준을 메인으로 사용하다보니 인텔리제이로 코딩을 많이했었는데 많은 코테들이 프로그래머스와 같이 웹에서 진행됐다. 그래서 이참에 vi
를 좀 익혀보려고 한다.
모드
처음 vi를 켜거나 esc
를 누르게 되면 모드를 선택할 수 있다.
편집 모드는 아래와 같다.
vi [파일이름].(확장자명)
해당 파일이름을 가진 파일을 생성한다.:i
-> 현재 커서 바로 앞에서 입력 시작.:a
-> 현재 커서 바로 뒤에서 입력 시작.:w
-> 현재 파일 상태를 저장.
종료
:q
-> 파일을 종료한다. 이 때 파일이 저장되지 않은 상태로 종료하면 저장 여부를 묻는다.:q!
-> 파일을 저장없이 강제로 종료한다.:wq
-> 파일을 저장 후 종료한다.:wq!
-> 저장 후 종료하되 문제 발생시 묻지 않고 강제 종료한다.
커서 이동
일단 내가 자주 쓸 것 같은 것만 기록.
0
-> 현재 줄 처음 이동^(shift + 6)
-> 현재 줄의 공백이 아닌 첫 글자로 이동$(shift + 4)
-> 현재 줄의 마지막으로 이동숫자 + shift + g
-> 해당 줄로 이동shift + g
-> 파일의 마지막 줄로 이동
기본 편집
- u -> 실행 취소
o
-> 현재 줄 아래에 빈 줄 추가O
-> 현재 줄 위에 빈 줄 추가
텍스트 자르기, 삭제
d명령어는 단순히 텍스트를 삭제하는 기능만 하는 것이 아닌 버퍼에 저장도 한다.
그렇기 때문에 자르기도 수행한다.
dd
-> 현재 줄 삭제[숫자]dd
-> 현재 줄 포함 다음 [숫자 - 1]줄 삭제
ex) 4dd -> 현재 줄 포함하고 다음 3줄 삭제
dd 명령어로 자르고 p
명령어로 붙여넣을 수 있다.
텍스트 복사하기, 붙이기
y명령어도 p
명령어를 사용해 붙인다.
yy
-> 현재 줄 복사[숫자]yy
-> 현재 줄 포함 다음 [숫자 -1]줄 복사
문자열 검색 및 치환
기본적으로 문자열 검색은 /찾을 문자열
로 찾을 수 있다./String
을 통해 전체 페이지 내에서 String이 있는 곳을 찾을 수 있고, n
으로 다음, N
으로 이전 문자를 찾을 수 있다.
정규표현식으로 검사하기
/"*."
으로 검색한 결과이다.
와일드 카드 .
와 *
가 있다.
.
은 모든 문자 1개와 매칭이 된다. 즉 apple을.pple
로 검색할 수 있다.*
은 바로 앞 문자가 0개 이상 반복된다는 의미이다. 따라서,ap*le
로 검색할 수 있다.
따라서, ".*"
은 어느 문자든 "
으로 시작하고 "
으로 끝나는 모든 문자열임을 알 수 있다.
문자열 치환
:[시작줄],[끝줄]s/[바꿀 문자열]/[원하는 문자열]/[옵션]
으로 바꿀 수 있다.
문자열 바꾸기 명령어는 s이며 이는 substitute의 약자이다.
범위
%s
-> 모든 문서의 모든 문자열1,$
-> 현재 페이지 내의 모든 문자열시작 줄, 끝 줄
-> 시작 줄부터 끝 줄까지의 모든 문자열옵션
g
,c
i
가 있고 두 가지 이상 한 번에 지정할 수 있지만g
와c
옵션을 모두 사용하면c
옵션이 더 우선된다.g
-> 사용자에게 묻지 않고 문자열을 치환c
-> 매 검색결과마다 사용자에게 치환 여부를 물어봄i
-> 대소문자 구별없이 치환
:3,4s/String/char/g
위와 같이 3 - 4번째 줄의 String을 char로 바꿀 수 있다.