Coder Social home page Coder Social logo

Comments (9)

JonnyRa avatar JonnyRa commented on June 2, 2024

Also just had a check and I see the same problem in a different project/folder/vim instance, although both projects are haskell and using the same .vimrc and Tag generation (https://github.com/elaforge/fast-tags)

Please let me know if I can help in anyway. I tried to relate the error message to the code but line 23 of the plugin isn't a function and neither is 425 (the function name?)

I noticed that perl is mentioned in one of the readme's as a dependency for the tag stuff. It's on the path/installed and at the following version

This is perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux-gnu-thread-multi
(with 60 registered patches, see perl -V for more detail)

from fzf.vim.

JonnyRa avatar JonnyRa commented on June 2, 2024

Done a bit more digging and the function in question seems to be

   function 452(id, code, ...) dict                                                                                                                                                                                  
        Last set from ~/.fzf/plugin/fzf.vim line 886                                                                                                                                                                 
1      if s:getpos() == self.ppos " {'window': 'enew'}                                                                                                                                                               
2        for [opt, val] in items(self.winopts)                                                                                                                                                                       
3          execute 'let' opt '=' val                                                                                                                                                                                 
4        endfor                                                                                                                                                                                                      
5        call self.switch_back(1)                                                                                                                                                                                    
6      else                                                                                                                                                                                                          
7        if bufnr('') == self.buf                                                                                                                                                                                    
8          " We use close instead of bd! since Vim does not close the split when                                                                                                                                     
9          " there's no other listed buffer (nvim +'set nobuflisted')                                                                                                                                                
10         close                                                                                                                                                                                                     
11       endif                                                                                                                                                                                                       
12       silent! execute 'tabnext' self.ppos.tab                                                                                                                                                                     
13       silent! execute self.ppos.win.'wincmd w'                                                                                                                                                                    
14     endif                                                                                                                                                                                                         
15                                                                                                                                                                                                                   
16     if bufexists(self.buf)                                                                                                                                                                                        
17       execute 'bd!' self.buf                                                                                                                                                                                      
18     endif                                                                                                                                                                                                         
19                                                                                                                                                                                                                   
20     if &lines == self.lines && &columns == self.columns && s:getpos() == self.ppos                                                                                                                                
21       execute self.winrest                                                                                                                                                                                        
22     endif                                                                                                                                                                                                         
23                                                                                                                                                                                                                   
24     let lines = s:collect(self.temps)                                                                                                                                                                             
25     if !s:exit_handler(a:code, self.command, 1)                                                                                                                                                                   
26       return                                                                                                                                                                                                      
27     endif                                                                                                                                                                                                         
28                                                                                                                                                                                                                   
29     call s:pushd(self.dict)                                                                                                                                                                                       
30     call s:callback(self.dict, lines)                                                                                                                                                                             
31     call self.switch_back(s:getpos() == self.ppos)                                                                                                                                                                
32                                                                                                                                                                                                                   
33     if &buftype == 'terminal'                                                                                                                                                                                     
34       call feedkeys(&filetype == 'fzf' ? "\<Plug>(fzf-insert)" : "\<Plug>(fzf-normal)")                                                                                                                           
35     endif                                                                                                                                                                                                         
   endfunction   

Line 23 doesn't fit with that really, it's a blank line in there but there is a call to bufnr in there. However calling bufnr via the commandline seems to work fine.

I'm wondering if it's something to do with this

2        for [opt, val] in items(self.winopts)                                                                                                                                                                       
3          execute 'let' opt '=' val                                                                                                                                                                                 
4        endfor                                                                                                                                                                                                      

since the error message mentions let.

Having said that I've tried searching for that code in your repo and it doesn't seem to show up - I was looking for one of the error message fragments "We use close instead of bd" and couldn't find it.
Also there are only 162 lines in the github version of fzf.vim whereas bizarrely looking at that file/line number on my local disk does show that function and the file has 1098 lines!! So somewhat baffled.

In that file it looks like we're in fzf.on_exit which is nested within execute_term, 23 lines down from the top of execute_term is the execute 'let' call so seems likely the error is from there. Again searching your repo for execute_term only yields a mention in a commit message from 2017, not any actual code b0baf75

I'm on a pretty old vim at this point which I just noticed has -perl in it's version info:

VIM - Vi IMproved 8.1 (2018 May 18, compiled Dec 11 2018 16:36:20)
Included patches: 1-567
Compiled by ...
Huge version with GTK2 GUI.  Features included (+) or not (-):
+acl               +extra_search      +mouse_netterm     +tag_old_static
+arabic            +farsi             +mouse_sgr         -tag_any_white
+autocmd           +file_in_path      -mouse_sysmouse    -tcl
+autochdir         +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
+balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
+browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +timers
+byte_offset       -hangul_input      +num64             +title
+channel           +iconv             +packages          +toolbar
+cindent           +insert_expand     +path_extra        +user_commands
+clientserver      +job               -perl              +vartabs
+clipboard         +jumplist          +persistent_undo   +vertsplit
+cmdline_compl     +keymap            +postscript        +virtualedit
+cmdline_hist      +lambda            +printer           +visual
+cmdline_info      +langmap           +profile           +visualextra
+comments          +libcall           -python            +viminfo
+conceal           +linebreak         -python3           +vreplace
+cryptv            +lispindent        +quickfix          +wildignore
+cscope            +listcmds          +reltime           +wildmenu
+cursorbind        +localmap          +rightleft         +windows
+cursorshape       -lua               -ruby              +writebackup
+dialog_con_gui    +menu              +scrollbind        +X11
+diff              +mksession         +signs             -xfontset
+digraphs          +modify_fname      +smartindent       +xim
+dnd               +mouse             +startuptime       -xpm
-ebcdic            +mouseshape        +statusline        +xsmp_interact
+emacs_tags        +mouse_dec         -sun_workshop      +xterm_clipboard
+eval              -mouse_gpm         +syntax            -xterm_save
+ex_extra          -mouse_jsbterm     +tag_binary        

Is this relevant?

from fzf.vim.

JonnyRa avatar JonnyRa commented on June 2, 2024

Have just built myself a new version of vim and the plugin now works again 🎉

from fzf.vim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.