2010-06-13 5 views
3

Vim 스크립트 및 rc 파일 개발을위한 TDD 환경 설정에 관심이 있습니다. 간단한 예를 들어, tab 키를 누를 때 vim에 8 칸 공백을 넣고 싶다고 가정 해 봅시다. 의 .vimrc 샌드 박스 파일 프로그래밍 방식으로 vim 명령을 실행 하시겠습니까?

  • i를 누릅니다
  • 눌러 탭
  • esc 키를 눌러
  • 눌러 사용

    • 시작 VIM : 나는 다음 한 스크립트를 설정하는 것 w test_out을
    • test_out에 ''

    이 포함되어 있다고 가정합니다.이 설정은 vim에서 기본 구성으로 실패합니다. 그러나 일단 내 .vimrc 파일에 set expandtab을 추가하면 테스트가 통과됩니다.

    어떻게 이러한 명령을 프로그래밍 방식으로 발행합니까? vim -c <commands>은 가깝지만 ex 모드 명령에서만 작동하는 것처럼 보입니다. 어떤 제안? 이 질문은 철저히 Google 증거가되는 것 같습니다.

  • 답변

    4

    vim -S <script in> 및 귀하의 편의를 위해 vim -w <script out>을 시도해보십시오.

    이러한 옵션에 대한 자세한 내용은 -s-w 인수에 대한 VIM 설명서를 참조하십시오.

    +0

    감사합니다. 필요한 것 같습니다. –

    1

    vim을 사용하고 있습니까? 작업에 잘못된 도구를 사용하고 있지 않다면 sed가 더 적절할 수 있습니다.

    하지만, 어쨌든 정력에 그것을 할 수해야하는 경우 ^I 실제로 인 경우, 그냥 ex

    #!/bin/sh 
    # insert a tab as the first character of test_out 
    ex test_out <<EOF 
    s/^/^I/ 
    wq 
    EOF 
    
    if [ `od -c test_out | awk 'NR == 1 {print $2}'` != '\t' ] ; then 
        echo "assertion failed"; exit 1; 
    fi 
    

    를 호출합니다. 이것은 매우 이상한 접근이지만.

    +0

    예, 아이디어는 vim 플러그인 등에서 TDD를하는 것입니다. 나는 외부 쉘 스크립트에서 TDD를 할 수 있고 Vim에서 그것으로 매핑 할 수 있다고 생각한다. 그러나 그것은 내가 원하는 바가 아니다. 대체로 다른 사람들의 .vimrc 파일과 플러그인 디렉토리에서 무엇이 해제되는지 더 잘 이해하고 싶습니다. –

    관련 문제