주) 아래에서 VI의 모드는 3가지 즉 Command mode는 [C]로
Edit mode는 [E], ex line Command mode는 [Ex]로 쓴다.
주) 아래에서 모든 명령은 대/소문자를 구별한다.
1. [C] 현재화면의 제일위로 커서를 이동 : h
현재화면의 가운데로 커서를 이동 : m
현재화면의 제일아래로 커서를 이동 : l
* VI/VIM에 익숙해지고 싶다면 오른손을 절대로 화살표로 가져가지 말아야 한다.
2. 원하는 line으로 이동하고 싶다. n번째 line으로 이동하고자 할 경우
[C] nG
G 문서의 제일 끝으로 이동
3. 줄의 맨 처음에 나오는 `select'만 검색하고 싶다면 다음과 같이 입력한다.
[C] /^select<Enter>
참고 : '^'는 유닉스에서 사용되는 검색Character이다.
예) % grep "^from" *.sql ---> *.sql에서 라인의 첫칼럼에 from이 들어간 파일 찾기
4. 현재 줄의 앞쪽에 <tab>을 입력하고 싶다.(C,java program에서 유용)
[C] >> 현재줄
7>> 현재줄에서 7줄을 모두 앞에 <Tab>을 입력.
5. 프로그래밍중 괄호의 짝 맞추기 : {}, (), []
[C] 찾고자하는 괄호에서 %(Shift + 5)를 누르면 나머지 괄호로 커서가 이동한다.
6. 문서에서 'SQL'가 들어 있는 행을 delete하고 싶다.
[Ex] :g/SQL/d
|
+-------> 이곳에 ex 명령을 사용
:g/BX/ s/Esc/ESC/g BX가 있는줄만 찾아서 Esc 를 ESC 로 바꾸기.
:g/SQL/ nu 'SQL'이 들어있는 라인의 번호와 라인을보여주기
주의 : 이 global명령은 한번에 죄다 바꿔버리므로 주의할 필요가있다.
/를 이용하여 찾은다음 cw등을 이용하여 변환한후 n.을 이용하여 반복한다.
7. simple 이라는 단어가 나올때까지 지우기
[C] d/simple
8. 현재 편집하고 있는 sample1.c를 컴파일하기
[Ex] :!cc -o sample1 %<Enter> 현재 파일명이 %로 대체됨
[Ex] :!javac %<Enter>
9. 파일내의 모든 라인의 끝에있는 ^M을 지우기
이것은 도스파일을 binary형태로 서버로 전송하였을 경우에 나타나는 현상이다.
[Ex] :1,$ s/^M//g
설명 : 1,$ ---> 1 line부터 끝($)까지, 한라인만 원한다면 해당라인을 쓴다(:199 s/
s ---> Search한다.
/old/new/ ---> old을 new로 바꾼다.
g ---> global(?), 한라인에 해당하는 문자열이 두개이상 나올경우 모두 바꿔라
주의 : ^M같은 특수문자(^가 포함되어있는)는 Ctrl-V + Ctrl-M으로 입력해야한다.(^K는 Ctrl-V + Ctrl-K)
10. 예를 들어 모든 라인의 시작위치에 printf( 를 넣고 싶다면 보통
I ---> printf(입력 ---> ESC ---> J ---> . ---> J ---> . ---> J와.을 반복
너무 귀찮다. 한번에 하고 싶다. 이럴땐 매크로를 이용한다.
1) I ---> printf(입력 ---> ESC
2) :map #2 j$.<Enter> #2는 F2 Key 의미, j$.은 한줄아래로가서(j) 현재작업(insert)을 다시실행(.)
3) F2를 누른채로 가만히 있으면 된다
4) :unmap #2 매크로 해제
위에서 예를 든 매크로는 아주 유용하게 쓰일수 있기 때문에 user의 home디렉토리에 .exrc파일로 저장해
두면 아주 편리하다.
'IT' 카테고리의 다른 글
크롬(Chrome) 브라우저에서 스크롤 캡쳐하기 (0) | 2022.03.14 |
---|---|
나의 티스토리를 구글, 네이버에 노출시키자 (2) | 2022.03.14 |
크롬(Chrome) 브라우저 단축키 (0) | 2022.03.09 |
윈도우 환경 작업을 빠르게 - 윈도우 단축키 (0) | 2022.03.08 |
Notepad++ 소개 (0) | 2022.03.08 |