Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 更新Mac OS X上的内置vim_Macos_Vim - Fatal编程技术网

Macos 更新Mac OS X上的内置vim

Macos 更新Mac OS X上的内置vim,macos,vim,Macos,Vim,我知道这在Ask Different可能更合适,但当我尝试在那里添加标记时,没有vim标记,只有macvim。所以我想我可能会在这里有更好的观众 在终端中,我执行以下操作 $ vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jan 31 2010 13:33:49) 当我浏览到时,我会看到一条新闻 Vim 7.3已发布 如何更新内置vim?我非常希望做到干净(即没有重复安装,或任何额外下载,没有macports等) 我考虑按照

我知道这在Ask Different可能更合适,但当我尝试在那里添加标记时,没有
vim
标记,只有
macvim
。所以我想我可能会在这里有更好的观众

在终端中,我执行以下操作

$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jan 31 2010 13:33:49)
当我浏览到时,我会看到一条新闻

Vim 7.3已发布

如何更新内置vim?我非常希望做到干净(即没有重复安装,或任何额外下载,没有macports等)

我考虑按照说明使用Mercurial(因为我已经在其他方面使用它了)


但我认为这会造成重复安装。尽管我上面提到了“干净”的要求,“不干净”的解决方案也是受欢迎的,因为可能真的没有其他方法。

如果我理解正确,您想在现有Vim上安装,无论是好是坏:-)这是一个坏主意,而且它不是“干净”的方法。为什么?好吧,OSX希望在它不知道的情况下,/usr/bin中不会有任何变化,所以任何时候覆盖其中的内容都有可能打破一些复杂的相互依赖关系。而且,假设你确实弄坏了什么东西——没有办法“修复”这种损坏。你会感到悲伤和孤独。您可能需要重新安装OS X

第一部分:更好的主意 “干净”的方法是在一个单独的地方安装,并使新的二进制文件在$PATH中具有更高的优先级。以下是我的建议:

$ # 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

瞧!现在,当我们使用vim时,我们将使用新的。但是,为了在出现大量f*备份时恢复到原来的配置,我们可以删除/opt目录

$ 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
看看这有多干净

当您想覆盖/usr/bin中的二进制文件时,我建议不要安装在/usr/local/bin中,因为默认情况下,OS X将/usr/bin的$PATH优先级置于比/usr/local/bin更高的位置,这样做会打开自己的蠕虫程序。。。。所以,这就是你应该做的

第二部分:“正确”答案(但不是一个好主意) 假设你已经下定决心要这么做,你肯定已经走上正轨了。要在当前安装的基础上进行安装,需要设置“prefix”目录。就是这样做的:

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

如果需要,您还可以传递“配置”其他一些选项。执行“/configure--help”以查看它们。不过,我希望您在执行此操作之前有一个备份,以防出现问题……

不要覆盖内置的Vim

相反,请将其从源代码安装到其他位置,或通过默认位置的自制或MacPorts进行安装,然后将此行添加到.bashrc或.profile中:

alias vim='/path/to/your/own/vim'
和/或更改
$PATH
,使其在默认位置之前查看其位置

在我看来,最好的办法是下载最新的MacVim,它附带了一个非常完整的vim可执行文件,并在Terminal.app中使用

alias vim='/Applications/MacVim.app/Contents/MacOS/Vim' # or something like that, YMMV

Romaill回答的一个注意事项是:别名不能与sudo一起使用,因为别名上只检查第一个单词。要更改此选项,请向.profile/.bashrc添加另一个别名:

别名sudo='sudo'


通过此更改,
sudo vim
将按预期运行

像Eric一样,我使用自制,但我使用默认配方。因此:

brew install mercurial
brew install vim

重新启动终端后,自制的vim应为默认值。如果没有,您应该更新
$PATH
,使
/opt/homebrew/bin
位于
/usr/bin
之前。例如,将以下内容添加到您的
.profile

export PATH=/opt/homebrew/bin:$PATH

注意:Homebrew的早期版本确实安装到了
/usr/local
,因此在这种情况下,您必须使用
/usr/local/bin
而不是
/opt/Homebrew/bin

brew安装vim——在约塞米蒂岛上覆盖系统vi
,使用
brew
覆盖系统vi
选项安装vim。这将自动安装具有安装功能的vim

此命令的输出将显示brew安装vim的位置。在该文件夹中,进入
/bin/vim
以实际运行vim。这是从任何文件夹运行vim的命令:

/usr/local/Cellar/vim/7.4.873/bin/vim
然后通过在.bashrc中添加以下行来别名此命令:

alias vim="/usr/local/Cellar/vim/7.4.873/bin/vim"
编辑:Brew标志
--覆盖系统vi
已被弃用。更改为<代码>--带超控系统vi。资料来源:

对我很有帮助。我使用了“自制Vim”解决方案,在我的例子中,它将新版本保存在/usr/local/bin中。在这一点上,帖子建议隐藏系统vim,它对我不起作用,所以我使用了一个别名

$ brew install vim
$ alias vim='/path/to/new/vim
$ which vim
vim: aliased to /path/to/new/vim

我刚刚通过以下方式安装了vim:

brew install vim

现在,新的vim通过
vim
访问,旧的vim(内置vim)通过
vi

访问。一般来说,我认为最好不要弄脏苹果安装的位,使用macports/homebrew/等。或者自己构建并安装在
/usr/local/
中。不会占用很多空间的。隐马尔可夫模型。。。我不知道我是否应该投票表决。。。它回答了这个问题。。。但这是个坏主意,不能解释为什么。。。所以也许我应该投反对票?答案很好,但作为*nix初学者,我很好奇为什么你选择去~安装vim。还有,这是什么。/configure。。。行吗?再次感谢。@AlexMA将源代码放入
~
,即您的主目录,完全是任意的。你可以随意下载到任何你想要的地方。一旦你安装了它,你也可以删除该目录(此时不再需要源代码)。非常感谢你的提示!我确实将您对Python、PERL和Ruby的配置支持调整为
/configure--prefix/opt/local--enable perlinterp=yes--enable pythoninterp=yes--enable rubyinterp=yes--with features=great--with Python config dir=/System/Library/Frameworks/Python.framework/Versions/2.7
“瞧!现在当我们使用vim时,我们将使用旧版本。”我认为这是一个输入错误,你的意思是说“我们将使用新的”@Beau这是不正确的,自制软件确实有vim的公式:对不起,
$ brew install vim
$ alias vim='/path/to/new/vim
$ which vim
vim: aliased to /path/to/new/vim
brew install vim