Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 딥러닝
- backend
- c
- ChatGPT
- 인공지능
- Shellcode
- flask
- hacking
- Scala
- php
- mysql
- 리눅스
- 챗GPT
- hackthissite
- Python
- 러닝스칼라
- 웹해킹
- Web
- hackerschool
- Linux
- Javascript
- deep learning
- webhacking
- BOF 원정대
- 경제
- c++
- 백엔드
- 러닝 스칼라
- BOF
- 파이썬
Archives
- Today
- Total
jam 블로그
[명령어] vi 단축키 본문
728x90
< 단축키 >
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 윈도 최대화
'시스템 > 리눅스' 카테고리의 다른 글
[명령어] 리눅스 서버 시간 맞추기 (rdate) (0) | 2010.06.04 |
---|---|
[명령어] vim에서 인코딩 변경 저장하기 (0) | 2010.06.04 |
[리눅스] 폴더 구조 (0) | 2010.05.31 |
[명령어] netstat 명령어 및 옵션 (0) | 2010.05.27 |
[명령어] tar.bzip2 압축 풀기 (0) | 2010.05.27 |
Comments