Update built-in vim on Mac OS X

后端 未结 8 803
后悔当初
后悔当初 2020-12-12 08:50

I know this might be more appropriate at Ask Different, but as I tried adding tags there, there was no vim tag, only macvim. So I figured I might g

相关标签:
8条回答
  • 2020-12-12 09:02

    If I understand things correctly, you want to install over your existing Vim, for better or worse :-) This is a bad idea and it is not the "clean" way to do it. Why? Well, OS X expects that nothing will ever change in /usr/bin unbeknownst to it, so any time you overwrite stuff in there you risk breaking some intricate interdependency. And, Let's say you do break something -- there's no way to "undo" that damage. You will be sad and alone. You may have to reinstall OS X.

    Part 1: A better idea

    The "clean" way is to install in a separate place, and make the new binary higher priority in the $PATH. Here is how I recommend doing that:

    $ # Create the directories you need
    $ sudo mkdir -p /opt/local/bin
    $ # Download, compile, and install the latest Vim
    $ cd ~
    $ hg clone https://bitbucket.org/vim-mirror/vim or git clone https://github.com/vim/vim.git
    $ 
    $ cd vim
    $ ./configure --prefix=/opt/local
    $ make
    $ sudo make install
    $ # Add the binary to your path, ahead of /usr/bin
    $ echo 'PATH=/opt/local/bin:$PATH' >> ~/.bash_profile
    $ # Reload bash_profile so the changes take effect in this window
    $ source ~/.bash_profile
    

    Voila! Now when we use vim we will be using the new one. But, to get back to our old configuration in the event of huge f*ckups, we can just delete the /opt directory.

    $ which vim
    /opt/local/bin/vim
    $ vim --version | head -n 2
    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 27 2011 20:55:46)
    MacOS X (unix) version
    

    See how clean this is.

    I recommend not to install in /usr/local/bin when you want to override binaries in /usr/bin, because by default OS X puts /usr/bin higher priority in $PATH than /usr/local/bin, and screwing with that opens its own can of worms.... So, that's what you SHOULD do.

    Part 2: The "correct" answer (but a bad idea)

    Assuming you're set on doing that, you are definitely on track. To install on top of your current installation, you need to set the "prefix" directory. That's done like this:

    hg clone https://bitbucket.org/vim-mirror/vim or git clone https://github.com/vim/vim.git
    cd vim
    ./configure --prefix=/usr
    make
    sudo make install
    

    You can pass "configure" a few other options too, if you want. Do "./configure --help" to see them. I hope you've got a backup before you do it, though, in case something goes wrong....

    0 讨论(0)
  • 2020-12-12 09:11

    Don't overwrite the built-in Vim.

    Instead, install it from source in a different location or via Homebrew or MacPorts in their default location then add this line to your .bashrc or .profile:

    alias vim='/path/to/your/own/vim'
    

    and/or change your $PATH so that it looks into its location before the default location.

    The best thing to do, in my opinion, is to simply download the latest MacVim which comes with a very complete vim executable and use it in Terminal.app like so.

    alias vim='/Applications/MacVim.app/Contents/MacOS/Vim' # or something like that, YMMV
    
    0 讨论(0)
  • 2020-12-12 09:13

    brew install vim --override-system-vi

    0 讨论(0)
  • 2020-12-12 09:13

    This blog post was helpful for me. I used the "Homebrew built Vim" solution, which in my case saved the new version in /usr/local/bin. At this point, the post suggested hiding the system vim, which didn't work for me, so I used an alias instead.

    $ brew install vim
    $ alias vim='/path/to/new/vim
    $ which vim
    vim: aliased to /path/to/new/vim
    
    0 讨论(0)
  • 2020-12-12 09:20

    On Yosemite, install vim using brew and the override-system-vi option. This will automatically install vim with the features of the 'huge' vim install.

    brew install vim --with-override-system-vi
    

    The output of this command will show you where brew installed vim. In that folder, go down into /bin/vim to actually run vim. This is your command to run vim from any folder:

    /usr/local/Cellar/vim/7.4.873/bin/vim
    

    Then alias this command by adding the following line in your .bashrc:

    alias vim="/usr/local/Cellar/vim/7.4.873/bin/vim"
    

    EDIT: Brew flag --override-system-vi has been deprecated. Changed for --with-override-system-vi. Source: https://github.com/Shougo/neocomplete.vim/issues/401

    0 讨论(0)
  • 2020-12-12 09:20

    I just installed vim by:

    brew install vim
    

    now the new vim is accessed by vim and the old vim (built-in vim) by vi

    0 讨论(0)
提交回复
热议问题