함수 rails#buffer 설정을 처리하는 동안 오류가 발생했습니다.
8494 단어 vim-rails
묘사
지난주에 나는vim rails를 포함한 모든 패키지를 업그레이드했다. 지금은 tpope/survious를 사용하여 파일을 호출할 때마다: Gdiff를 사용할 때 다음과 같은 오류 메시지를 볼 수 있다.함수 rails# 버퍼 설정을 처리하는 동안 오류가 발견되었습니다.220 읽기 가능 계산 파일 유형.220 버퍼 이름:
8행:
E716: 사전에 키가 없습니다: path(), "\@!", "/")|||f==“”
E116: 함수 tolower(app.path(), "\@!", "/")||에 유효하지 않은 매개 변수가 있습니다.f==“”
E116: 함수 s의 매개 변수가 잘못되었습니다: gsub(tolower(app.path(), "\@!", "/")|||f==“”
E116: 함수:startswith(tolower(f), s:gsub(tolower(app.path(), "\@!", "/")의 인자가 잘못되었습니다)|f==“”
E15: 잘못된 표현식: s:startswith(tolower(f), s:gsub(tolower(app.path(), "\@!", "/") |f==“”
만약 관련이 있다면 spf13-vimVim 프레임워크
토론 #1
를 사용하면 같은 문제에 부딪혔습니다.OS X 10.10.2와vim-rails
및 vim-fugitive
의 최신 버전을 실행 중입니다.내가 어떤 줄에서:Gblame
와 Enter
를 집행할 때 문제가 생겼다.Vim은 자체 제작 소프트웨어를 통해 설치됩니다.~/P/Rails (master|✔) $ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 6 2014 14:32:04)
Compiled by [email protected]
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
-xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
오류 메시지:Error detected while processing function rails#buffer_setup..<SNR>42_readable_calculate_file_type..<SNR>42_buffer_name:
line 8:
E716: Key not present in Dictionary: path()),'\\ @!','/')) || f == ""
E116: Invalid arguments for function tolower(app.path()),'\\ @!','/')) || f == ""
E116: Invalid arguments for function s:gsub(tolower(app.path()),'\\ @!','/')) || f == ""
E116: Invalid arguments for function s:startswith(tolower(f),s:gsub(tolower(app.path()),'\\ @!','/')) || f == ""
E15: Invalid expression: s:startswith(tolower(f),s:gsub(tolower(app.path()),'\\ @!','/')) || f == ""
Press ENTER or type command to continue
vim-rails
와 vim-fugitive
는 모두 pathogen
를 통해 불러오고 운행HEAD
한다.토론 #2
복제할 수 없습니다.E13EE81882C2E4C1BBA0022914A04E3F7CD6FC5D6는 거의 주범이 틀림없다.이전의 행동은 어리석었기 때문에 나는 바꾸고 싶지 않다.당신은
:echo b:rails_root
를 조사해서 그것이 무엇을 보고했는지 볼 수 있습니까?토론 #셋
:echo b:rails_root
E121: Undefined variable: b:rails_root
E15: Invalid expression: b:rails_root
Press ENTER or type command to continue
토론 #4
제가 설명하고 싶은 건, 그게 도주범 완충구역에 있는 거 맞죠?토론 #5
네,fugitive
버퍼에 있습니다.토론 #6
그래서 여기는 곤혹스러운 부분이다.rails#buffer_setup()
단락이 없으면b:rails_root
.function! rails#buffer_setup() abort
if !exists('b:rails_root')
return ''
endif
let self = rails#buffer()
let b:rails_cached_file_type = self.calculate_file_type()
그렇게 지도 모른다, 아마, 아마...:echomsg b:rails_root
다음에 던져 보세요endif
.토론 #7
잘 설치되어 있는 것 같습니다.반환:fugitive:///Users/Sleepwalker/Projects/Rails/.git
이것은 정확하다.변경된 코드는 다음과 같습니다.그게 이유야.내가 언급한commit은 그것을 더욱 엄격하게 거절했지만, 그 전에도 rails는 그랬다.윌은 기본적으로 이미 붕괴되었다.나는 너의 설정 중에 어떤 설정이 있는지 알아맞혀 보겠다.
토론 #8
저는 0부터 시작(토론 #9
했습니다.vim -u NONE -N
과vim-rails
만 추가했습니다. - 문제가 여전히 존재합니다.나는 그것을 사용하는 방식으로vim(모든 플러그인 불러오기+vimrc)를 시작했고 vim-fugitive
만 삭제했다. 문제가 사라졌다.나는 vim-rails
에서 git bisect
를 했는데, 문제는 당신이 언급한 동일한 제출 - e13ee81에서 나온 것입니다.또 무슨 건의가 있습니까?vim-rails
나는 상호작용과 같은 함수 편집 검사토론 #10
를 사용해서 1이나 0을 되돌려 주는지 확인하고 싶다.RailsDetect()
문제는 항상 1로 되돌아오는 것이다. 토론 #11
비Rails 프로젝트에도 존재하기 때문이다.b:rails_root
오, 22조.너는 그 부분을 잘라내면 토론 #12
의 경로를 단련할 수 있다.findfile
네, 더 많은 지도가 필요할 것 같습니다. 왜냐하면vimscript로 쓴 적이 없기 때문입니다.function! rails#buffer_setup() abort
if !exists('b:rails_root')
return ''
endif
echomsg b:rails_root
let self = rails#buffer()
let b:rails_cached_file_type = self.calculate_file_type()
토론 #13
는 비어 있지 않으며file
문장은 시종 실행됩니다.나는 if
를 사용했다. 내가 본 상황을 보면 가능한 것 같지만 다른 물건을 망가뜨리거나 잘못했을 수도 있다.filereadable
파일은 토론 #14
의 위치여야 합니다.만약 그것이 존재하지 않는다면, 그것은 비어 있을 것이다.낡은 상자 안에 무엇이 있습니까?config/environment.rb
그것은 공백이 아니라 항상 존재한다.내 말은, 그것은 항상 경로를 되돌려줍니다. 이것은 무효입니다. let file = findfile('config/environment.rb', escape(fn, ', ').';')
if !empty(file)
let b:rails_root = fnamemodify(file, ':p:h:h')
return 1
endif
let file = findfile('config/environment.rb', escape(fn, ', ').';')
echomsg file
결과토론 #15
fugitive:///Users/Sleepwalker/.dotfiles/.git/config/environment.rb
는 왜 경로의 접두사로 사용해야 합니까?이것은 토론 #16
의 기준을 깨뜨린 것 같은데, 아니면 내가 틀렸는가?fugitive://
버퍼 경로를 사용하고 있습니다.나는 그것이 중단되기를 바란다. findfile()
이것은 빈 문자열을 되돌려준다는 것을 의미한다.토론 #17
란?findfile()
fn
는 항상git해시를 포함한다.~/.dotfiles (master|✚1) $ pwd
/Users/Sleepwalker/.dotfiles
또는토론 #18
버퍼 경로가 존재하지 않을 때fn
토론 #19
findfile()
fugitive://
가 중단되고 있는 것 같습니다(예정된 작업). 이것은 제가 바라는 바입니다.적절한 제출을 연 후 시도fugitive:///Users/Sleepwalker/.dotfiles/.git//22d734bedac7aa8137111bc7a6fa08da30d6f46e
내가 같은 일을 할 때, 나는 아무것도 얻을 수 없다.설마 아니겠지?토론 #20
실제로토론 #21
이전에 값을 보고했기 때문에 다음을 시도해 보십시오.알겠습니다.
fugitive:///Users/Sleepwalker/Projects/XORCipher/.git//a361fe17b85544f9c73e5f7a218b02eaf5e7ae5e
똑똑히 보기 위해서, 다음은 완전한 함수이다echo findfile('config/environment.rb', 'fugitive:///Users/Sleepwalker/.dotfiles/.git//22d734bedac7aa8137111bc7a6fa08da30d6f46e;')
fnamemodify(fn, ':h')
나는 네가 지금 사용하고 있는 것이 OS X의 기본 Vim이라는 것을 안다.더 많은 증거는 그것이 더 이상 나빠질 수 없을 정도로 나쁘다는 것을 보여 준다.하나의 해결 방안을 추진했다.토론 #22
야!잘 받았어!neovim을 사용한 지 한참 되었지만,vim dispatch와 고장이 나서,vim로 돌아왔습니다.그러나 나는 직접 설치한vim을 삭제했을 뿐만 아니라 실제로는 내가 사용하는 것이 OS X 기본vim인 줄 몰랐다.나는 자제vim에 문제가 없다.물론 시스템vim가 고장 났어요.그런데 이제 의외로 고쳤어요:) 고마워요!Reference
이 문제에 관하여(함수 rails#buffer 설정을 처리하는 동안 오류가 발생했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-rails/issues/384텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)