vim-force.com icon indicating copy to clipboard operation
vim-force.com copied to clipboard

Unknown function HTMLIndent

Open anandghegde opened this issue 7 years ago • 12 comments

I get this error when I try to edit a visualforce page

Error detected while processing /Users/ahegde/.yadr/vim/bundle/vim-force.com/indent/visualforce.vim:

E700: Unknown function: HtmlIndent

I have overridden my system vim with homebrew vim

This is the output of vim --version

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 14 2018 08:39:53) macOS version Included patches: 1-1500 Compiled by Homebrew Huge version without GUI. Features included (+) or not (-): +acl +farsi +mouse_sgr -tag_any_white +arabic +file_in_path -mouse_sysmouse -tcl +autocmd +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 +vertsplit +clipboard +jumplist +persistent_undo +virtualedit +cmdline_compl +keymap +postscript +visual +cmdline_hist +lambda +printer +visualextra +cmdline_info +langmap +profile +viminfo +comments +libcall +python +vreplace +conceal +linebreak -python3 +wildignore +cryptv +lispindent +quickfix +wildmenu +cscope +listcmds +reltime +windows +cursorbind +localmap +rightleft +writebackup +cursorshape +lua +ruby -X11 +dialog_con +menu +scrollbind -xfontset +diff +mksession +signs -xim +digraphs +modify_fname +smartindent -xpm -dnd +mouse +startuptime -xsmp -ebcdic -mouseshape +statusline -xterm_clipboard +emacs_tags +mouse_dec -sun_workshop -xterm_save +eval -mouse_gpm +syntax +ex_extra -mouse_jsbterm +tag_binary +extra_search +mouse_netterm +tag_old_static system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/usr/local/share/vim" Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X -DMACOS_X_DARWIN -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 Linking: clang -L. -fstack-protector -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib -L/usr/local/lib -o vim -lncurses -liconv -framework AppKit -L/usr/local/lib -llua -mmacosx-version-min=10.12 -fstack-protector-strong -L/usr/local/lib -L/usr/local/Cellar/perl/5.26.1/lib/perl5/5.26.1/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc -F/usr/local/opt/python/Frameworks -framework Python -lruby.2.5.0 -lobjc

I have edited my ~/.zshrc to set the vim runtime to the homebrew version -

`$ echo $VIMRUNTIME

/usr/local/Cellar/vim/8.0.1500/share/vim/vim80/`

anandghegde avatar Feb 15 '18 11:02 anandghegde

Hello @anandghegde

Looks like something is not quite right with your vim installation or maybe zsh somehow uses runtime from built-in OSX vim. HtmlIndent is a function in runtime/indent/html.vim file. This file is a part of standard vim distribution. So when vim is installed correctly calls to HtmlIndent should work out of the box.

neowit avatar Feb 15 '18 21:02 neowit

Anyway to set the runtime in one of the ~/.zshrc file? My homebrew vim is installed at /usr/local/Cellar/vim/8.0.1500/share/vim/vim80/

anandghegde avatar Feb 16 '18 06:02 anandghegde

Not a zsh user here, so I am not sure. You may have to "google" for a bit.

brew install vim -with-override-system-vim or echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile && source ~/.bash_profile usually do the trick for me when using bash.

neowit avatar Feb 16 '18 07:02 neowit

yes, I reinstalled vim with the --with-override-system-vi flag. Still getting the same error. My /usr/local/bin is ahead in the $PATH, so it is using the latest vim from the homebrew installation.

I want to understand this line - runtime indent/html.vim

Which env. variable is it looking for? Is it $VIMRUNTIME? Do I need to set this in .zshrc or in vundle?

anandghegde avatar Feb 16 '18 08:02 anandghegde

see answers here: https://github.com/vim/vim/blob/master/runtime/doc/repeat.txt#L193 and here: https://github.com/vim/vim/blob/master/runtime/doc/options.txt#L6356

indent/html.vim by default resides in $VIMRUNTIME/indent/html.vim

check what your :echo $VIMRUNTIME returns when you run it from vim.

neowit avatar Feb 16 '18 08:02 neowit

:echo $VIMRUNTIME from inside vim gives me /usr/local/share/vim/vim80 and I see an indent/html.vim file in there.

anandghegde avatar Feb 16 '18 08:02 anandghegde

usually :echo $VIMRUNTIME ends with something like ...some path/runtime. Yours does not end with .../runtime for some reason.

for instance, here is the output of my config (I use MacVim not console vim)

/usr/local/Cellar/macvim/8.0-142/MacVim.app/Contents/Resources/vim/runtime

what happens if you run (inside vim) :source $VIMRUNTIME/indent/html.vim

does it return any error?

If it does not then does this (inside vim) work? :call HtmlIndent()

neowit avatar Feb 16 '18 10:02 neowit

:source $VIMRUNTIME/indent/html.vim doesnt return any error

:call HtmlIndent() returns unknown function.

anandghegde avatar Feb 16 '18 11:02 anandghegde

if you do :edit $VIMRUNTIME/indent/html.vim in vim what does the file header look like? does it say

Last Change: 2017 Jun 13

the file must look exactly the same as this one.

neowit avatar Feb 16 '18 12:02 neowit

Yes, it looks exactly like that.

anandghegde avatar Feb 16 '18 12:02 anandghegde

in this case the issue may be either A. you do not have filetype indent on in your .vimrc what does :filetype return? it should return something like

filetype detection:ON plugin:ON indent:ON

OR B. your vim config and/or other plugins you use somehow disable standard indent/html.vim. html.vim makes various checks at the beginning of the file and depending on the current config may or may not proceed with full initialisation.

neowit avatar Feb 16 '18 14:02 neowit

Thanks a lot for the help in debugging this. It turned out to be because of the vim-polyglot plugin that comes bundled with YADR . I removed that plugin and it seems to be working fine.

anandghegde avatar Feb 17 '18 08:02 anandghegde