유용한 vi명령어
삽입 I: 줄의 제일 앞에서 입력 A: 줄의 제일 끝에서 입력
콤보command 4w: 4단어 skip후 이동 4b: 4단어 skip후 이동 4j,h,k,l: 커서이동시 지정한 수만큼 건너뛰므로 이동을 좀 더 빨리 할 수 있다.
줄의 결합(J) 2줄이 있고, 2째줄을 1째줄 끝에 붙이고 싶다면, 1째줄에서 J를 입력하면 된다.
커서이동 0: 줄의 처음 ^: 줄의 처음(글자가 시작되는 처음) $: 줄의 끝 w: 단어단위 이동 e: w와 같으나 단어의 끝으로 이동 b: w의 반대방향으로 이동 H, M, L: 커서를 화면 상,중,하로 이동
검색(/후 검색할 단어입력) n: 뒤로 검색 N: 앞으로 검색
매크로 ab aa aaaa: aa를 입력하면 aaaa로 자동변환
치환 s/pattern/replace: 현재줄의 첫번째 matching pattern치환 s/pattern/replace/g: 현재줄의 모든 matching pattern치환 %s/pattern/replace/g: 모든 줄의 치환 line,lines/pattern/replace: 해당 범위의 치환
저장 w>> file: 지정한 파일에 추가
윈도 split vi내에서 위아래로 윈도가 분활되면서 2개의 파일을 동시에 open/편집할 수 있다. ex-mode(:프롬프트상태)에서 'sp 파일이름' 윈도우가 전환은 Ctrl+ww
기타 1. d의 경우 command모드로 계속 남아 있으나 c는 삭제후 insert모드로 변환한다. cc, c$, cw등은 유용하게 사용될 수 있다. 2. .은 마지막 명령을 되풀이한다.
visual모드 윈도의 텍스트 에디터와 같이 선택부분이 반전되면서 복사,삭제등을 할 수 있다. v로 visual모드로 집입하여 커서키를 사용해 원하는 부분을 선택한다. 복사는 y, 삭제/잘라내기는 d로 할 수 있다.
vi설정(vim설정) 자신의 홈디렉토리에 .vimrc를 생성하고 다음과 같이 할 수 있다.
set ai set ts=4 set nu
각각 auto-indent, tab stop, numbering
윈도에서 작업중 vi에 붙여넣기시 계단현상발생 방지 :set paste
위치기억(UltraEdit의 ALT-F2, F2와 동일한 기능) m{a-z}: 현재위치를 {a-z}로 북마크함 `{a-z}: 기억해둔 {a-z}로 이동. 보통 한개만 등록했다면 그냥 ``를 사용하면 된다.
레코딩 설정파일의 주석추가/삭제시 유용하게 사용할 수 있다.(이미 vi에 매크로기능이 있지만, 레코딩이 UltraEdit의 매크로기능과 유사하다.) q{a-z}: {a-z}로 레코딩 시작. {a-z}만 가능한게 아니고 실제 {0-9a-zA-Z"}를 적기 번거로워 이렇게 표시만 한 것이다. q: 레코딩 종료 @{a-z}: 레코딩 내용 적용(@@를 하면 바로 이전의 레코딩내용을 적용, N@@은 N으로 지정한 숫자만큼 적용)
ctags사용 쉘에서 ctags -R하여 모든 소스에 대해 인덱스 생성 vi를 실행하고 검색할 단어를 :ta tag로 지정하든지, 단어가 있는 곳에 커서를 둔다. 해당함수(오브젝트)가 정의된 곳으로 가기: Ctrl + ] 되돌아가기: Ctrl + t
여러 파일 편집 vi a.c b.c c.c와 같이 여러 파일을 지정한다. args: 파일목록 표시 n: 다음파일 편집(vi시작지 지정하지 않는 파일은 'n 파일이름'이로 지정하면 된다.) rew: 이전 파일 편집(vim에선 prev를 사용해도 된다) *현재 편집중인 파일을 저장해야 다음 파일을 수정할 수 있음에 주의 (불편한 편집이 아닐 수 없다.)
여러줄을 주석으로 처리할때 10줄을 주석기호 #을 사용하여 주석처리하려면 다음과 같이 하면 된다. 우선, 첫째줄에 #를 붙이고, 두째줄로 넘어와 9.를 입력하면 된다. .(period)는 마지막에 수행한 명령어를 반복하는 명령이다.
|