단계적 변경 사항을 구분하면 "E21: 변경할 수 없습니다.'modifiable'이 닫힌 상태입니다: fileencoding = UTF-8"

5160 단어 vim-fugitive

묘사

문제.


모델이 열려 있고python 스크립트# vim: set fileencoding=UTF-8 :를 사용할 때 Diffing staged changes는 "E21: 변경할 수 없습니다.'modifiable'는 닫힌 상태입니다: fileencoding = UTF-8"라고 표시합니다.

어떻게 번식합니까

  • set modeline .
  • 빈 저장소를 만듭니다.
  • python 스크립트를 제출합니다. 파일 맨 위에 다음과 같은 줄이 있습니다.
  • 
        #!/usr/bin/env python
        # vim: set fileencoding=UTF-8 :
    
  • 파일을 더 많이 변경합니다.
  • :Gst-로 무대를 꾸몄다.
  • dd에 대한 단계적 변화.
  • 캡처


    Screen Shot 2013-03-26 at 17 54 12

    Vim 버전 정보

    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar 26 2013 12:50:46)
    MacOS X (unix) version
    Included patches: 1-875
    Compiled by [email protected]
    Huge version without GUI.  Features included (+) or not (-):
    +arabic          +file_in_path    +mouse_sgr       +tag_binary
    +autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
    -balloon_eval    +float           +mouse_urxvt     -tag_any_white
    -browse          +folding         +mouse_xterm     -tcl
    ++builtin_terms  -footer          +multi_byte      +terminfo
    +byte_offset     +fork()          +multi_lang      +termresponse
    +cindent         -gettext         -mzscheme        +textobjects
    -clientserver    -hangul_input    +netbeans_intg   +title
    +clipboard       +iconv           +path_extra      -toolbar
    +cmdline_compl   +insert_expand   -perl            +user_commands
    +cmdline_hist    +jumplist        +persistent_undo +vertsplit
    +cmdline_info    +keymap          +postscript      +virtualedit
    +comments        +langmap         +printer         +visual
    +conceal         +libcall         +profile         +visualextra
    +cryptv          +linebreak       +python          +viminfo
    +cscope          +lispindent      -python3         +vreplace
    +cursorbind      +listcmds        +quickfix        +wildignore
    +cursorshape     +localmap        +reltime         +wildmenu
    +dialog_con      -lua             +rightleft       +windows
    +diff            +menu            +ruby            +writebackup
    +digraphs        +mksession       +scrollbind      -X11
    -dnd             +modify_fname    +signs           -xfontset
    -ebcdic          +mouse           +smartindent     -xim
    +emacs_tags      -mouseshape      -sniff           -xsmp
    +eval            +mouse_dec       +startuptime     -xterm_clipboard
    +ex_extra        -mouse_gpm       +statusline      -xterm_save
    +extra_search    -mouse_jsbterm   -sun_workshop
    +farsi           +mouse_netterm   +syntax
       system vimrc file: "$VIM/vimrc"
         user vimrc file: "$HOME/.vimrc"
          user exrc file: "$HOME/.exrc"
      fall-back for $VIM: "/usr/local/share/vim"
    Compilation: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H   -F/usr/local/Frameworks -DMACOS_X_UNIX -no-cpp-precomp  -Os -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.8 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
    Linking: /usr/bin/clang   -L.    -L/usr/local/lib -F/usr/local/Frameworks -o vim        -lm  -lncurses -liconv -framework Cocoa    -framework Python   -lruby -lobjc
    

    토론 #1

    이 모형선으로 무엇을 실현하고 싶습니까?내가 문제를 재현할 때, 파일을 열 때마다 수정된 표지판을 받는다.파괴된 설정을 보완하려고 시도하는 것 같아.

    토론 #2

    ascii 문자가 아닌python 스크립트는 모델라인이 필요합니다.보이다http://www.python.org/dev/peps/pep-0263/더 많은 정보를 알고 싶습니다.

    토론 #셋

    Vim 형식을 특별히 사용해야 하는 이유는 무엇입니까?Vim은 파일을 읽기 전에 자동 감지 기능이 있기 때문에 보통 스스로 하는 것이 좋다.

    토론 #4

    나의 모든 항목은 이렇게 썼는데 아마도 그것이 합리적이라는 것을 지지할 것이다.물론 우리는 Emacs 형식을 사용할 수 있다. 단지 농담일 뿐이다.

    토론 #5

    Vim 파일:
    'modifiable' 'ma'   boolean (default on)
                local to buffer
                {not in Vi}     *E21*
        When off the buffer contents cannot be changed.  The 'fileformat' and
        'fileencoding' options also can't be changed.
        Can be reset with the |-M| command line argument.
    

    토론 #6

    저도 이런 상황을 겪었습니다. 제 질문은:
    E21: Cannot make changes, 'modifiable' is off: ff=unix
    

    토론 #7

    나도 이 점을 겪었다.
    나는 ff=unix 파일 밑에 있는 모델라인에서 .vimrc을 사용하는데 이것은 윈도우즈와 리눅스 사이에 틈이 없는 작업을 하는 데 필수적이라고 생각한다.
    설령 내가 틀렸다 하더라도, 나는 이 줄을 삭제할 수 있다. 이 줄은git 로그에 계속 존재하기 때문에, 이 문제는 도주범들 사이에서 계속 존재할 것이다.

    토론 #8

    해결 방안을 찾을 수 있는 사람이 있다면 다행이지만 모델에 이 옵션을 설정할 이유가 있다고 생각하지 않습니다.크로스플랫폼vimrc에 있어서 이것은 당연히 필수적인 것이 아니다.

    토론 #9

    네.빠른 답변 감사합니다.심사숙고한 끝에 나는 너의 견해에 동의할 수 있을 것이라고 생각한다.그러나 이것은 상당히 짜증나는 문제이기 때문에 만약 누군가가 발견/해결 방법을 알게 된다면 나는 매우 기쁠 것이다!

    토론 #10

    내가 생각할 수 있는 유일한 해결 방법은 이 잘못을 묵묵히 포착하고 억제하는 것이다. 왜냐하면 그것은 무해하기 때문이다.모델을 실행한 후에 nomodifiable를 설정할 수 있는 방법이 있다면, 이 오류를 방지할 수도 있습니다.모델라인에'fenc'를 설정하는 것에 동의합니다. 플러그인은 사용자가 할 수 있는 모든 해커 행위에 적응하기 위해 뒤로 구부려서는 안 됩니다. 그러나 이것은 충분히 흔히 볼 수 있는 방법이기 때문에 변통 조치를 취할 필요가 있습니다.

    좋은 웹페이지 즐겨찾기