Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_call_ vs _execute_ _pathogen#infect() #131

Open
GitSullied opened this issue May 28, 2014 · 2 comments
Open

_call_ vs _execute_ _pathogen#infect() #131

GitSullied opened this issue May 28, 2014 · 2 comments

Comments

@GitSullied
Copy link

My Question

Can you comment on the subtly (that I assume I am not grasping yet) that led you to prefer execute over call as reflected in the README.

You can see some details about my setup under the [scenario][#scenario] heading further down.

Totally Extra Questions / Discussion Topics

I don't expect any response on these questions, but I would really appreciate any discussion (from anyone in the community here).

  1. As I am new to Pathogen can you comment on your first one or two troubleshooting steps when something does not seem to be functioning. I will be digging deeper myself after I post this, but I am hoping you might share: some insight about how pathogen works or an article or maybe the first two or three things you verify when troubleshooting a fresh setup of pathogen. (I don't think Pathogen is at fault here, not by any means.)

Assuming that I have followed your advice for file/folder naming conventions and choose "not to get crazy". As far as I can tell I have setup exactly what you describe as your configuration (if not truly your preferred then the simplest). With the exception of the using call; I am getting expected and reliable behavior as I add packages like vim-scriptease, vim-sensible, and a few others.

Then, I came across a [plugin][vim-ipython] that is not loading like the previous plugins.

  • I installed the plugin from a repo in the same way that I did vim-sensible and vim-scriptease
  • I can source the plugin file and then I get the functionality I am expecting
  • Based on other plugins that are functioning, the plugin folder structure appears to be correct
  • The fact that I can source the plugin manually, but it doesn't autoload seems to indicate either a path issue or a flag / feature that pathogen looks for in each plugin as an indication that "it wants" to be automatically loaded by Pathogen.
  • Obviously, any errors with the [vim-ipython] should be directed to the repo for that plugin; that's not what I'm getting at here. I'm interested in what your first 2/3 steps to troubleshoot / debug when plugins mis-behave.

The Scenario

I notice that the Pathogen README differs from a majority of other instructions on setting up Pathogen. In fact, it appears that early last year, tpope/vim-pathogen/532f0ca7d936f1229b926b73e84012a78c4f9800, the README itself changed from call to what it now prescribes as the approach to invoke pathogen through one's .vimrc file.

I was following this repo's README at first, but my initial attempts to verify that bundles like [vim-scriptease] and [vim-sensible] were in fact functioning did not seem to be working (I was still fumbling around a bit, so I'm not positive, but I can go back through and capture the steps-to-reproduce if you would like me to).

I had already stripped down my vim installation to a blank-slate, starting fresh with compiled VIM installation and Pathogen. Then I changed, in my .vimrc file exectue to call and I was able to verify that the bundles were indeed loading.

Before I changed call to execute, I checked the VIM help documentation and it seemed to me that call would have been the correct choice, or at least more correct in the case that they both will work with some idiosyncrasies.

execute

Executes the string that results from the evaluation of [the expression] as an Ex command. Multiple arguments are concatenated, with a space in between. To avoid the extra space use the "." operator to concatenate strings into one argument. {expr1} is used as the processed command, command line editing keys are not recognized. Cannot be followed by a comment. |

call

Call function {func} with the items in List {arglist} as arguments. {func} can either be a Funcref or the name of a function. a:firstline and a:lastline are set to the cursor line. Returns the return value of the called function. {dict} is for functions with the "dict

VIM per-user configuration

My .vimrc file

call pathogen#infect()
syntax on
filetype plugin indent on

The above file, along with the folder structure described below, reside in my user's home directory (i.e. ~ or $HOME)

  • .vimrc
  • .vim
    • autoload
      • pathogen.vim
      • (pathogen has this directory all to itself)
    • bundle
      • vim-sensible
      • vim-scriptease
      • vim-coffee-script
      • vim-ipython
@tpope
Copy link
Owner

tpope commented May 28, 2014

With .vimrc in $VIMBLACKLIST, pathogen#infect() returns finish, which when given to :execute handily short circuits the rest of the vimrc (occasionally useful when debugging). There should be no other difference.

First step to debugging would be to check :scriptnames for any discrepancies between the two setups.

@jrmlhermitte
Copy link

jrmlhermitte commented Mar 22, 2017

(@tpope not sure where to post this, don't want to start a new issue)
From a fresh start, execute didn't seem to work for me but rather call:

call pathogen#infect()

I'm not sure why (maybe something broke in most recent vim version?)

It seems changing to call works and gives expected behaviour, but I'm ignorant of details. I just thought I would mention as feedback; maybe a mention of this issue should be mentioned in the docs?

thanks for great plugin!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants