2013-04-18 3 views
8

Vim은 존재하지 않는 파일의 이름을 줄 때 새로운 파일을 만듭니다. 이것은 내가 때때로 잘못된 파일 이름을주고 파일을 열고 의도적으로 닫지 않기 때문에 나에게 바람직하지 않습니다.Vim이 새 파일을 만들거나 열지 못하게하는 방법은 무엇입니까?

Vim이 새 파일을 열지 못하도록하는 방법이 있습니까? 내가 vi file1을 수행 할 때 예를 들어,이 File doesn't exist 말을해야하고 (예를 들어 :w 또는 :x, :wq의 동등한) 옵션을 쓰기를 사용하는 경우에만 파일을 저장합니다

답변

4

이 기능을 .bashrc (또는 이와 동등한 버전)에 추가 할 수 있습니다. vim을 호출하기 전에 명령 줄 인수가 있는지 확인합니다. 정말로 새로운 파일을 만들고 싶다면 --new을 전달하여 검사를 무시할 수 있습니다.

vim() { 
    local args=("[email protected]") 
    local new=0 

    # Check for `--new'. 
    for ((i = 0; i < ${#args[@]}; ++i)); do 
     if [[ ${args[$i]} = --new ]]; then 
      new=1 
      unset args[$i] # Don't pass `--new' to vim. 
     fi 
    done 

    if ! ((new)); then 
     for file in "${args[@]}"; do 
      [[ $file = -* ]] && continue # Ignore options. 

      if ! [[ -e $file ]]; then 
       printf '%s: cannot access %s: No such file or directory\n' "$FUNCNAME" "$file" >&2 
       return 1 
      fi 
     done 
    fi 

    # Use `command' to invoke the vim binary rather than this function. 
    command "$FUNCNAME" "${args[@]}" 
} 
5

(개방 vi 창없이) bash 터미널에 머물 .

대신 :q으로 종료하면 파일이 생성되지 않습니다.

+3

감사합니다. 그러나 빈 파일을 보는 것의 추가 키 누름 (': q') + 놀라움을 피하고 싶습니다. 나는 터미널에 머물고 싶다. – user13107

+1

'vim notexistencefile'은'notexistencefile'을 생성하지 않고 동일한 명명 된 버퍼를 생성합니다. ': q',': q!','ZQ'는이 경우 파일 쓰기 작업없이 Vim을 종료합니다. –

관련 문제