Linux/Unix2009. 5. 10. 16:51
    1. 커서 이동하기
    k는 한 줄
    h는 한 문자 왼쪽으로
    l은 한 문자 오른쪽으로
    j는 한 줄 아래
    b는 한 단어 으로
    w는 한 단어
    ^는 그 줄의 시작으로
    $는 그 줄의 마지막으로
    :n?특정줄로 이동합니다.(n는 숫자)
    Ctrl+f한 화면 아래
    Ctrl+b한 화면 위
    Ctrl+d반 화면 아래
    Ctrl+u반 화면 위
     
      2. 화면 이동하기
      z
      z.
      z-
      <n
      >n
      /sss/+n
      ?sss?-n
      ?L
      현재의 줄이 화면의 맨 위에 오도록 다시 그림
      현재의 줄이 화면의 가운데 오도록 다시 그림
      현재의 줄이 화면의 맨 아래에 오도록 다시 그림
      화면을 왼쪽으로 n(숫자)만큼 이동
      화면을 오른쪽으로 n(숫자)만큼 이동
      현재부터 뒤로 문자열 sss가 나타난 첫줄부터 n줄 뒤로 커서 이동
      현재부터 앞으로 문자열 sss가 나타난 첫줄부터 n줄 앞으로 이동
      talk 명령수신등으로 화면이 지저분할 때 다시 그림
       
        3. 문자 삭제하기
        x는 한 문자
        dw는 한 단어
        dd는 한 줄
        D는 커서부터 줄 끝까지
        :line#,line#d는 지정범위를 삭제합니다
        (예) :1,$d (첫줄부터 마지막줄까지)
        :1,. (첫줄부터 현재줄까지)
        :.,$d (현재줄부터 마지막줄까지)
        :.-2 (현재줄부터 두번째앞줄까지)
         
            4. 탐색과 치환하기
            :/zzz? 현재위치에서 파일의 뒤쪽으로 문자열 zzz를 탐색
            :?zzz? 현재위치에서 파일의 앞쪽으로 문자열 zzz를 탐색
            :n? 마지막 탐색 명령을 반복
            :line#,line#s/zzz/sss/? 지정한 범위내의 문자열 zzz 처음것만을 sss로 치환
            :line#,line#s/zzz/sss/g? 지정한 범위내의 문자열 zzz를 sss로 모두 치환
            :%s/zzz/sss/ 모든 줄의 치환
             
              5. 임시기억장소인 버퍼에 복사했다가 붙이기
              yy (현재줄을 버퍼에 복사)
              n yy (현재줄부터 시작하여 n줄 뒤까지 복사하여 버퍼에 저장)
              p (이미 버퍼에 복사해 둔것을 현 위치 뒤에 붙이기)
              (P or :p? or :P? 모두 같음)
              :line#,line#y? (해당줄을 버퍼로 복사)
              :line#,line#yy? (해당줄을 버퍼로 복사한 후 삭제)
              :line#,line#Y? (해당줄을 버퍼로 복사한 후 삭제)
              :line#p (지정한 줄 다음에 버퍼에 복사해 둔 것을 붙이기)
              :\"버퍼이름y? (버퍼로 버퍼이름에 복사)
              :\"버퍼이름p? (버퍼이름의 버퍼에 저장된 내용을 복사)
               
                6. 여러 파일을 동시에 편집하기
                yskang%> vi test1.txt test2.txt test3.txt
                yskang%> vi test*.txt
                :n? (현재 편집중인 파일의 다음 파일을 편집)
                :e <파일명>? (현재의 파일이 아닌 다른 파일 <파일명>을 편집)
                 
                   7. 기타 명령
                  :!<명령>? (vi에서 빠져나와 유닉스 명령을 시행하고 vi로 되돌아 옴)
                  :!sh? (유닉스 쉘로의 나들이를 시작하며 나들이를 끝낼때는 ?d)
                  :.r <파일명> (현재 파일의 현재 줄 뒤에 다른파일 <파일명>을 삽입)
                  :line#,line# w <파일명> (현재 파일의 해당줄을 )
                  . (가장 최근에 지시한 명령을 반복)
                Posted by 샤키