함수 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-railsvim-fugitive의 최신 버전을 실행 중입니다.내가 어떤 줄에서:GblameEnter를 집행할 때 문제가 생겼다.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-railsvim-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 -Nvim-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가 고장 났어요.그런데 이제 의외로 고쳤어요:) 고마워요!

좋은 웹페이지 즐겨찾기