如何从终端运行 mvim (MacVim)?

Posted

技术标签:

【中文标题】如何从终端运行 mvim (MacVim)?【英文标题】:How to run mvim (MacVim) from Terminal? 【发布时间】:2011-01-04 14:18:27 【问题描述】:

我安装了 MacVim,我正在尝试将它设置为 Git 的编辑器(版本控制),但我无法从命令行运行 'mvim',因为它无法识别。如何设置 mvim 以便从终端运行它?

【问题讨论】:

从命令行尝试vim 免责声明:这适用于 Linux,所以我想它在 Mac 上是相似的。尝试查看路径(使用“echo $PATH”)并将该文件夹添加到 MacVim 可执行文件中,如果它不存在的话(使用“export PATH=$PATH:path/to/folder”)。注意$ 标志,它们很重要! 【参考方案1】:

对于 Mac .app 捆绑包,您应该通过 cask 安装它们(如果可用),因为使用符号链接可能会导致问题。如果您brew linkapps,您甚至可能会收到以下警告:

不幸的是 brew linkapps 不能很好地处理例如聚光灯使用 别名或符号链接和 Homebrew 公式都不能构建“正确”.app 可以重新定位的捆绑包。相反,请考虑使用brew cask 和 使用.apps 将公式迁移到木桶。

对于 MacVim,您可以安装:

brew cask install macvim

然后您应该能够像启动任何其他 macOS 应用程序一样启动 MacVim,包括从终端会话中启动 mvimopen -a MacVim

更新:关于brewbrew cask 的一点说明。简而言之,brew 在 unix 级别处理软件,而brew caskbrew 的功能扩展到 macOS 域以提供附加功能,例如处理 macOS 应用程序包的位置。请记住,brew 也在 Linux 上实现,因此进行此划分是有意义的。还有其他资源可以更详细的解释区别,比如What is the difference between brew and brew cask? ,这里就不多说了。

【讨论】:

我们能否澄清一下使用 cask install 与不使用 cask install 之间的区别?很难说当 cask 和 not cask install 命令都起作用时有什么区别...... 我添加了一个简短的简介,但我不知道所有细节,所以我没有详细说明。【参考方案2】:

这对我有用:

λ brew link --overwrite macvim
Linking /usr/local/Cellar/macvim/8.0-146_1... 12 symlinks created

【讨论】:

【参考方案3】:

假设 MacVim 安装在 Application 文件夹中。

不要将 MacVim 路径添加到您的环境,而是通过在终端中键入以下内容来创建一个链接:

sudo ln -s /Applications/MacVim.app/Contents/bin/mvim /usr/local/bin/mvim

然后,打开一个新的终端窗口/选项卡并输入mvim

【讨论】:

【参考方案4】:

如果您已经安装了 macVim:/Applications/MacVim.app/Contents/MacOS/Vim -g 将为您提供 macVim GUI。

只需添加一个别名。

我使用gvim,因为这是我在 linux 上用于 gnome-vim 的。

alias gvim='/Applications/MacVim.app/Contents/MacOS/Vim -g'

【讨论】:

同时使用alias vim=/Applications/MacVim.app/Contents/MacOS/Vim 是个好主意。然后,您无需通过 MacPorts 或 Homebrew 安装 MacVim 即可在终端中更新 Vim,您只需从 GitHub 发布页面安装发布包即可。 注意:如果自制软件拒绝安装 macvim 也很有用,因为无论出于何种原因你都停留在 macOS 的“这个旧版本”上。 :) 感谢您的提示,@tekHedd。我将继续使用 macOS 的“这个旧版本”,因为我有 32 位版本的昂贵软件,我不想替换并且已经转换为订阅模式,所以我保留了“旧”操作系统所以我可以在合理的范围内运行我“永久”支付的“旧”软件。 YMMV。【参考方案5】:

如果你走 brew 路线,最好的安装方式是:

brew install macvim --with-override-system-vim

这将在 /usr/local/bin 中提供 mvim、vim、vi、view 等(所有符号链接到 Cellar 中的副本)。这也消除了创建任何别名的需要,并将您的 vi、vim 等更改为都使用与 MacVim 相同的 Vim 发行版。

【讨论】:

虽然--override-system-vim 确实为我创建了一些符号链接,但它未能覆盖/usr/bin/vim/usr/bin/vi,所以我仍然不得不在我的.profile 中手动alias 这些。 Dave,这听起来像是 PATH 的问题,/usr/local/bin 需要在您的 PATH 中排在第一位。这个指向 brew 的答案应该是第一个答案,因为它可以为您提供所需的一切。 fyi 运行 brew doctor 应该会通知您 brew 的任何 PATH 或配置问题。 太棒了!感谢您发布此信息。我添加了 --override-system-vim 甚至没有意识到它会有多大用处。 这对我不起作用,不确定这个论点是否仍然有效??【参考方案6】:

如果您安装了homeBrew,您只需这样做:

brew install macvim
brew linkapps

然后在终端输入mvim 来运行MacVim。

【讨论】:

这就是全新安装的方法,我想他是在问如何在已经安装的情况下创建别名。 警告:brew linkapps 已被弃用,最终将被删除!【参考方案7】:

我在这里添加巴德公园的评论,因为这对我来说是真正的答案:

由于 mvim 只是一个 shell 脚本,您可以直接从 GitHub 上的 MacVim 源下载它:http://raw.github.com/b4winckler/macvim/master/src/MacVim/mvim

【讨论】:

/usr/local/bin 在我的 PATH 中,但 bin 文件夹不存在。我无法直接在 /usr/local 中工作(可能是权限问题),因此我在 Documents 文件夹中创建了一个 bin 目录。在那里我创建了一个 mvim 文件,我将 Bard Park 链接的内容复制到该文件中。我将带有 mvim 脚本的 bin 文件夹拖到 /usr/local。我被要求输入密码,然后允许将 mvim 脚本放置在我想要的位置。但是脚本还没有运行。我输入: sudo chmod 755 mvim 给脚本执行权限。现在,当我在命令行中输入 mvim 文件名时,MacVim 就会启动。 为了把bin文件夹拖到/usr/local,我先输入:open。从 /usr/local 中的命令行。这样做会打开该文件位置的查找器 GUI。【参考方案8】:

这就是我所做的:

在构建 Macvim 之后,我将 mvim 复制到了我的 $PATH 目标之一(在这种情况下,我选择了 /usr/local/bin)

cp -v [MacVim_source_folder]/src/MacVim/mvim /usr/local/bin

然后,当您调用 mvim 时,它现在可以识别了,但是有一件烦人的事情。它会打开可视的 MacVim 窗口,而不是终端中的那个。为此,您必须调用

mvim -v

为了确保每次调用 mvim 时不必记住添加“-v”,您可以创建别名:

别名 mvim='mvim -v'

但是,此别名只会在终端的本次会话中持续存在。要在每次打开终端窗口时执行此别名,您必须将其包含在您的 .profile 中 .profile 应该在您的主目录中。如果不是,请创建它。

cd ~
mvim -v .profile

在其中包含别名命令并保存。

就是这样。

【讨论】:

试过这个,但它对我不起作用。 VIM_APP_DIR=~/Downloads/MacVim-snapshot-64/MacVim.app $ mvim -v x.x 抱歉,找不到 MacVim.app。尝试将 VIM_APP_DIR 环境变量设置为包含 MacVim.app 的目录。 这在你从源代码构建 MacVim 时有效,github.com/macvim-dev/macvim/blob/master/README_mac.txt,谢谢@douglas ln -s it 可能比 cp it 更好。 使用此-v 标志更改字体不起作用。 -v 启用 vi 模式。可以想象在这种模式下,除了设置自定义字体之外,其他的东西都不起作用。【参考方案9】:

我不认为我会在路径中添加任何内容,是的

brew install macvim

mvim -v

然后应该在终端打开macvim,你也可以继续给那个起别名

alias vim='mvim -v'

【讨论】:

今天任何使用自制软件阅读本文的人都必须在安装 macvim 后运行 brew linkapps 如果您从源代码或下载安装以及其他答案中所示,则“-v”选项有效。 brew linkapps --system 如果你想在 /Applications 文件夹中使用它。 如果运行 brew linkapps 没有帮助,还运行 brew doctor 并注意与 macvim 相关的警告消息 - 如果建议您可能需要运行 brew link --overwrite macvim 由于某种原因使用这个 -v 标志更改字体不起作用。【参考方案10】:

另外,如果你想使用MacVim(或GVim)作为$VISUAL$EDITOR,你应该知道默认情况下MacVim会从父进程fork一个新进程,导致MacVim返回值达不到父进程。这可能会混淆其他应用程序,但 Git 似乎会检查临时提交消息文件的状态,从而绕过了此限制。一般来说,export VISUAL='mvim -f' 是一个很好的做法,以确保 MacVim 在调用时会not fork 一个新进程,这应该会在你的 shell 环境中为你提供你想要的东西。

【讨论】:

【参考方案11】:

我强烈建议通过MacPorts (sudo port install MacVim) 安装 MacVim。

安装后,MacPorts 会自动更新您的配置文件以将 /opt/local/bin 包含在您的路径中,因此在安装 MacVim 期间将 mvim 安装为 /opt/local/bin/mvim 时,您会发现它已准备好立即使用。

当您安装 MacVim 端口时,MacVim.app 包也会安装在 /Applications/MacPorts 中。

走 MacPorts 路线的好处是您还可以安装 git (sudo port install git-core) 和许多其他端口。强烈推荐。

【讨论】:

谢谢,我会试一试。我使用 UI 安装程序安装了 MacVim 和 Git。但它看起来像 Macports 是要走的路。 除非绝对需要,否则不要使用 mac 端口版本。它安装所有依赖库,忽略 darwin 本地库。这可以即用路径中的 5.8 替换您的 perl 5.10 等。改为检查 homebrew (brew) 系统。 @SlavaNadvorny 在写这篇文章时可能是真的。我目前有一个带有 MacVim、scipy、haskell、多个版本的 erlang、python 和 perl 的开发环境,所有这些都可以在 macports 上正常运行。 brew 是不可能的(此时这是写的)。我确实喜欢 brew 的非 sudo 安装,并希望它能在这种情况下工作。 使用自制软件也很好用 brew install macvim.【参考方案12】:

.bz2 文件的根目录中应该有一个名为 mvim 的脚本。将它复制到你的 $PATH 中( /usr/local/bin 会很好),你应该被排序。

【讨论】:

在哪里可以找到 bz2 文件? 一年前你下载 MacVim 时得到的就是这个。现在它是一个.tbz 文件,但脚本仍然存在。 您可以在根目录中使用 find 来定位该文件。 sudo find . -name mvim 我的在 /Applications/MacVim-snapshot-64/mvim。 由于 mvim 只是一个 shell 脚本,你可以直接从 GitHub 的 MacVim 源下载它:raw.github.com/b4winckler/macvim/master/src/MacVim/mvim 根据 :help mvim 我必须将 /Applications/MacVim.app/Contents/bin 添加到我的路径中,然后它工作正常。

以上是关于如何从终端运行 mvim (MacVim)?的主要内容,如果未能解决你的问题,请参考以下文章

安装macvim

安装macvim

MacVim内的mvim帮助

MAC VIM 自定义主题

MacVim - 如何正确设置 vimdiff 以使用 SourceTree?

Mac High Sierra 上的 vim ruby​​ 不匹配