vi[Visual Edit]의 간단한 팁들...
[사용하고 있는 헤더파일 열기]
***.h (Header file) 에 커서를 이동시킨후에
[ctrl + wf] : 해당 Header file 이 창이 분할 되어서 표시된다.
------------------------------------------------------------------------------------
[Tab Size 를 변경하기]
명령어 모드에서
[set ts=8]
[set sts=4]
ts [tabstop] : tab 사이즈가 얼마나 보일지를지정한다.
sts [softtabstop] : 실질적으로 얼마만큼의 간격으로 이동할지를 지정한다.
-------------------------------------------------------------------------------------
[함수을 폴딩하기]
함수가 많을경우 보지 않는 함수를 폴딩하는 기능이다.
v 로 폴딩하고자 하는 영역을 지정하고
zf 를 입력하면 지정된 영역이 폴딩된다.
폴딩된 영역의 해제는 zo 를 입력하면 다시 원상태로 복귀
--------------------------------------------------------------------------------------
[함수의 범위를 파악하기]
함수의 범위가 어디까지인가 를 { , }확인가능하는 기능이다.
{ 에서 % 를 누르면 해당하는 } 로 이동한다.
--------------------------------------------------------------------------------------
[파일탐색기능으로 파일열기]
해당 화일을 같은 vi 상에서 보고싶을경우 어떤 파일명을 전부 입력하여 열수있지만
:20vs./ 와 같이 입력하면 탐색기와 같이 탐색하여 파일을 열수 있다.
20 -> 창의 사이즈(% 값이다.)
vs -> vertical screen 즉 vi 의 창을 세로 분할하여 파일의 내용을 보여주겠다는 것
./ -> 어느 폴더를 보여줄것인지 ./ 는 현재 폴더이다.
따라서 :20vs./ 를 입력하게 되면 창의 20% 가 탐색기와 같이 열리게 된다.
--------------------------------------------------------------------------------------
[현재vi창에서 다른 파일 열기]
현재의 창에서 다른 파일을 열고 싶을경우
:e FileName 을 입력하면 된다.
--------------------------------------------------------------------------------------
[파일의 처음과 끝으로 이동하기]
해당파일의 처음으로 이동하거나 끝으로 이동하려면.
파일의 처음으로 이동시 :1 을 입력하여 이동가능하나, gg 를 실행하면 파일의 처음으로 이동한다.
파일의 끝으로 이동하려면 :$ 를 입력하여 이동가능 하지만 G 를 실행하여도 파일의 끝으로 이동한다.
--------------------------------------------------------------------------------------
[블럭 지정하기]
한줄이 아닌 원하는 부분을 삭제하거나 복사 등의 명령을 내리고 싶을경우엔
ctrl+v 를 입력한 후에 원하는 부분을 블럭을 지정할 수 있다.
블럭을 지정한 후에
y : 해당 블럭 복사
d : 해당 블럭 삭제
U : 해당 블럭 대문자로 변경
u : 해당 블력 소문자로 변경
~: 해당 블력 대소문자 변환
--------------------------------------------------------------------------------------
[되살리기와 되돌아가기]
실행한 명령을 되돌리기 즉 윈도우의 ctrl+z 에 해당하는 u 명령어와
되살리기 윈도우의 ctrl + y 에해당하는 ctrl+r 명령어가 있다.
--------------------------------------------------------------------------------------
[문자열 치환하기]
해당하는 문자열을 치환하기 위해서는
:%s/old/new/g 를 실행하면 문서 전체를 범위로 하여 해당 old 문자를 new 로 치환한다.
:s/old/new/g 를 실행하면 현재 라인에서 검색하여 치환을 실행한다.
:%s/old/new/gc 를 실행하면 치환하기 전에 사용자에게 확인을 한다.
--------------------------------------------------------------------------------------
[vi창을 분할하여 사용하기]
작업을 하다보면 다른 파일의 소스를 참조해야할 일들이 있다 이럴때 창을 나누워 사용하면편리하겠지..
이럴때 사용하는 명령어는
ctrl+w s : 현재 파일을 두개의 수평창으로 나눔
ctrl+w v : 현재 파일을 두개의 수직창으로 나눔
이렇게 나뉘워진 창으로 의 이동은 ctrl + ww 를 입력하면 이동 가능하다.
나누어진 차에서 다른 파일을 불러드리고 싶으면 ctrl + e FILE_NAME 을 입력한다.
--------------------------------------------------------------------------------------
[분할된 창의 크기를 조절하기]
분할된 창의 크기를 조절할 필요가 있을 것이다. 이때는 다음과 같이 사용하면 된다.
수평분할의 경우
ctrl+w N+ : N만큼 증가한다.
ctrl+w N- : N만큼 감소한다.
수직분할의 경우
ctrl+w N> : N만큼 오른쪽으로 증가
ctrl+w N< : N만큼 왼쪽으로 증가
공통적인 것
ctrl+w = : 창의 크기가 균등하게 분할
--------------------------------------------------------------------------------------
[원하는 위치를 마킹하기]
어떠한 특정한 위치를 마킹하여 사용하고자 할때 즉 임의로 저장해 이동하려할때는
vi 의 마킹기능을 이용하면 편리하다.
원하는 위치 즉 기억 시키고 싶은 위치에 커서를 이동하고
ma 를 입력한다. (여기서 a 대신에 a-z 까지 입력가능하다.)
그러면 a 라는 마킹 이름으로 현재 커서의 위치가 저장이 된다.
mA 를 입력하게 되면 현재 파일에서만의 이동이 아닌 전역적으로 다른 파일에서도 이동가능하게 된다.
마킹된 곳으로 이동하는 방법은 'a 또는 'A 를 입력하면 해당 마킹 지점으로 이동하게 된다.
현재 마킹된 정보를 알아보는 방법은 :marks 명령어를 통해서 가능하다.
--------------------------------------------------------------------------------------
[편집중에 명령어를 수행한는 법]
편집화면 중에서 어떠한 셀 명령어를 실행하고 싶을 경우에는
:!command 를 실행하면된다. 이렇게 하면 명령어를 실행하고 난 후에 다시 편집 창으로 돌아온다.
만약 실행 명령의 결과를 현재 편집창에 넣고 싶다면
:r !command 를 실행하면 된다.
--------------------------------------------------------------------------------------