사용자 도구

사이트 도구


application:vim:tip

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
application:vim:tip [2007/08/19 22:20]
starlits 새로 만듬
application:vim:tip [2008/01/30 01:49] (현재)
starlits
줄 1: 줄 1:
 ====== VIM 고급 활용팁 ====== ====== VIM 고급 활용팁 ======
 +
 +  * 같이 일하시는 최책임님을 위해서 활용팁을 적어보았습니다.
 +  * 윈도우는 빠삭하신데, 리눅스와 VIM를 첨 접하셔서 나름 자세하게 적어보았습니다.
 +
 +
 +
 +
 +===== 메모장 내용 VI로 파일에 붙여넣기 =====
 +  - VI로 파일을 연다.
 +  - 복사할 내용을 메모장이나 파일에서 복사한다.(**<ctrl>+<c>**) \\ 아래는 복사할 내용이다. <code>
 +SELECT MB.MCode, MB.MName, COUNT(DISTINCT ItemCode)
 +FROM   TB_Member MB, TB_StudyPlan SP
 +WHERE   MB.TCode = ? AND MB.ACode = ? AND SP.MCode = MB.MCode
 +    AND MB.MCode > 0 AND MB.IsActive = 1
 +    AND SP.StudyPlanYMD  Between ? AND ? ;
 +</code>
 +  - VI에서 명령모드로 가기 위해서 <ESC>를 누른다.
 +  - <i> 키를 눌러 입력모드에서, 마우스 오른쪽 버튼을 눌러 붙여넣기를 한다. 
 +  - 아래처럼 한줄씩 밀린다면 어떻게 할까? <code>
 +SELECT MB.MCode, MB.MName, COUNT(DISTINCT ItemCode)
 +    FROM   TB_Member MB, TB_StudyPlan SP
 +    WHERE   MB.TCode = ? AND MB.ACode = ? AND SP.MCode = MB.MCode
 +        AND MB.MCode > 0 AND MB.IsActive = 1
 +            AND SP.StudyPlanYMD  Between ? AND ? ;
 +</code>
 +  - **:set paste** 명령을 통해 밀리지 않고 다시 붙여넣기를 한다. <code> :set paste </code>
 +  - 그럼 아래처럼 깔끔하게 붙여넣기를 할 수 있다. <code>
 +SELECT MB.MCode, MB.MName, COUNT(DISTINCT ItemCode)
 +FROM   TB_Member MB, TB_StudyPlan SP
 +WHERE   MB.TCode = ? AND MB.ACode = ? AND SP.MCode = MB.MCode
 +    AND MB.MCode > 0 AND MB.IsActive = 1
 +    AND SP.StudyPlanYMD  Between ? AND ? ;
 +</code>
 +
 +
 +
 +===== VI 치환공식 =====
 +
 +  * VI에서 치환문법은 다음와 같다.<code> :s/{변환전문자}/{변환된문자}/ </code> 
 +  * aaa를 bbb로 치환해보자. <code> :s/aaa/bbb/ </code> 
 +  * 한줄에 치환해야 하는 문자가 여러개 있다면 뒤에 **g** 옵션을 준다. <code> :s/{변환전문자}/{변환된문자}/g </code> 
 +  * 해당라인의 모든 ccc를 ddd로 치환해보자. <code> :s/ccc/ddd/g </code> 
 +
 +===== 선택한 블록에 맨 앞에 글자 추가하기 =====
 +
 +  - <shift>+<v>를 통하여 블록을 선택한다. 
 +  - <shift>+<:>를 누른다. 그럼 화면 하단에 아래처럼 보인다. <code> :'<,'>_ </code>
 +  - 위 상태에서 맨앞을 의미하는 <^>와 이를 치환할 문자(**.append("**를 바꿀 명령을 수행한다. <code>
 +'<,'>s/^/.append(" /
 +</code>
 +  - 만약탭을 넣고 싶다면 탭을 의미하는 **<\t>** 문자를 넣는다.<code>
 +'<,'>s/^/\t\t\t.append(" /
 +</code>
 +
 +===== 선택한 블록에 맨 뒤에 글자 추가하기 =====
 +  - <shift>+<v>를 통하여 블록을 선택한다. 
 +  - <shift>+<:>를 누른다. 그럼 화면 하단에 아래처럼 보인다. <code> :'<,'>_ </code>
 +  - 위 상태에서 맨앞을 의미하는 <$>와 이를 치환할 문자(**")**를 바꿀 명령을 수행한다. <code>
 +'<,'>s/$/")/
 +</code>
 +
 +
 +===== 필요없는 문자 제거하기 =====
 +  - 파일 안에 아래의 내용 중에서 SQL만 추출하고 싶을 경우를 생각해 보자. <code>
 +            StringBuffer SQL = new StringBuffer()
 +            .append(" SELECT /* study/dao/readNoStudyMemberList */ MB.MCODE AS MCODE, MB.MNAME AS MNAME ")
 +            .append(" FROM TB_MEMBER MB LEFT JOIN TB_STUDYPLAN ST ")
 +            .append("   ON MB.MCODE = ST.MCODE AND ST.STUDYPLANYMD >= TO_CHAR(SYSDATE, 'YYYY-MM-DD') ")
 +            .append(" WHERE MB.TCODE = ? AND MB.ACODE = ? AND MB.ISACTIVE = 1 AND ST.MCODE IS NULL ");
 +</code>
 +  - 블록(<ctrl>+<v>)으로 **            .append("** 까지 선택하고 아래로 내린다.
 +  - <d> 키를 눌러 선택된 모든 **            .append("** 값을 제거한다.
 +  - 다시 블록(<shift>+<v>)으로 SQL구문을 지정한다.
 +  - **")** 단어를 공백으로 변환시킨다. <code>
 +'<,'>s/")//g
 +</code>
 +
  
application/vim/tip.1187529619.txt.gz · 마지막으로 수정됨: 2007/08/19 22:20 저자 starlits