[펌 from Allegro con brio]VI 단축키

< 단축키 >
ZZ         저장후 종료

:e           불러오기
:!            실행하기

Ctrl + b         이전 페이지 이동
Ctrl + f          다음 페이지 이동
{, }                 문단 이동

ma                  a로 위치 마크하기
'a                     마킹된 a위치 찾아가기

Ctrl + w, n    분할 새창 열기
Ctrl + w, s    화면 가로분할
Ctrl + w, v    화면 세로분할
Ctrl + w, c    화면 닫기
Ctrl + w, q    화면 종료
Ctrl + w, o    현재 커서가 있는 창 냅두고 다 닫기

Ctrl + ]         ctag 추적하기
Ctrl + t         한단계 빠져나가기 (스택 형식)

< 확장기능 >
* 파일 탐색 기능
:vs ./

* 흐트러진 소스 정렬
방법1> 명령모드에서 gg=G 누르면 소스 전체가 자동정렬된다.
방법2> v
를 눌러 영역을 설정한 후 = 누르면 자동정렬이 된다.

* {  } 간 이동
함수의 시작 {, 끝 } 위에서 %를 누르면 이동한다.

* 헤더파일 바로 읽어오기
Ctrl + w, f

* 자동완성 기능
함수명 일부만 입력한 후 Ctrl + n, 혹은 Ctrl + p 를 누른다.

Vim Tip
아래 명령어를 사용하면 80 글자 이상되는 부분은 색깔을 표시해 줍니다. 편집할 때 도움이되죠.

80을 다른 숫자로 변경해 주면 길이를 바꿀 수 있습니다.
:match Error /\%>80v./


 ============================
0. 소스 브라우징과 패턴 교환
============================
[[, ]] - 문단 옮기기
% - {}의 짝 찾기
ctrl + P - 자동 완성 기능
ma, 'a - 다중 마크 기능

특정 패턴을 다른 패턴으로 바꾸기
:s /old /new          - 현재 줄의 처음 old를 new로 교체

:s /old /new /g       - 현재 줄의 모든 old를  new로 교체

:1,20s /old new /g    - 1부터 20번째 줄까지 모든 old를 new로 교체

:-2, +4s /old /new /g - 커서 2줄 위부터 4줄 아래까지 모든 old를 new로 교체

:%s /old /new /g      - 문서 전체에서 old를 new로 교체

:%s /old/ new /gc     - 문서 전체에서 old를 new로 확인하며 교체



===============================
1. 키 매핑을 사용해 단축키 정의
===============================

~/.vimrc의 nmap부분 참고하여 입맛에 맞게 바꾸시면 됩니다.(재로그인하면 적용됩니다.)


 키                  기능
-----------------------------------
`             현재 윈도우 최대화
탭            윈도우 이동
8             윈도우 아래로 이동
9             윈도우 위로 이동
컨트롤+L      무조건저장(w!)
컨트롤+X      모든창닫고 나가기(qa)
,if            #if..#else..#endif
,tg           /*TGKim 날짜*/ "TGKim"부분을 자신의 주석으로 바꾸시길



=============================
2. Tags를 이용한 Source Trace
=============================

리눅스 커널소스 맨위에서(예: /usr/src/linux)
$ctags -R * 해주면 한참뒤 ctags화일이 만들어 집니다.

이제 vi로 들어가서(tags화일이 있는 위치에서 = /usr/src/linux)
:ts task_struct 해보시면 task_struct 심볼리스트가 좌악 나오는데 번호로
선택해서 찾아가면 됩니다.

그 밖에 Keyword위에 커서를 위치하고 다음을 할수 있습니다.

Ctrl + ] : tag 찾아감,
Ctrl + t : tag 되돌아감
:tags - taglist를 출력
g + ] : ts keyword와 같은기능(매우 편함)

커널에 보면 tag를 Makefile에서 만들수 있더군요

TAGS: -> etags로
tags: -> ctags로 그냥 ctags -R *보다 효과적이겠죠..

make tags하믄 됩니더.



========================
3. Visual mode 블럭 복사
========================

yy(한라인)나 y#(#라인)같은 라인복사 외에 Visual mode에서의

블럭 복사가 있습니다.

v 누르고 h,l,j,k로 블럭지정하구 y(복사), d(잘라내기)하구

커서를 목적지 한칸앞에서 p(붙여넣기)하믄 됩니다.

참고로

Shift + v : 라인복사
Ctrl + v  : 사각블럭 복사



========================
4. Multi Window 작업하기
========================

Ctrl-W 누른후에 다음 키를 누른다.

Ctrl-W ] 새윈도 만들고 tag로 뜀
Ctrl-W f 새윈도 만들고 커서위치의 화일을염
Ctrl-W q 창닫기
Ctrl-W o 현재창남기고 다닫기
Ctrl-W n 새로운창열기(수평창)
Ctrl-W v 새로운창열기(수직창)

Ctrl-W j 위쪽 윈도우로 커서이동
Ctrl-W k 아래쪽 윈도우로 커서이동
Ctrl-W h 왼쪽 윈도우로 커서이동
Ctrl-W l 오른쪽 윈도우로 커서이동
Ctrl-W p 전에 활성된 윈도우로 커서이동
Ctrl-W t 맨위쪽 윈도우로 커서이동
Ctrl-W b 맨아래쪽 윈도우로 커서이동

Ctrl-W x 전의윈도와 위치바꿈
Ctrl-W r(R) 윈도 위치 돌림

Ctrl-W =       모든창 같은 크기로
Ctrl-W N +(-)  N열만큼 높이크기 조절
Ctrl-W N >(<)  N열만큼 넓이크기 조절
Ctrl-W N _     현윈도 높이 N만큼, 기본은 최대
Ctrl-W N _     현윈도 넢이 N만큼, 기본은 최대

:only  윈도 최대화

by 좋은게좋아 | 2008/01/19 17:25 | Linux | 트랙백 | 덧글(0)

트랙백 주소 : http://pitfall.egloos.com/tb/1310038
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶