mvim
- это универсальный стартовый (bash) скрипт для MacVim
. Он работает на основе своего собственного имени, например, если его имя начинается с m
или g
запустит версию GUI, в противном случае версию консоли.
Вы можете увидеть это в источнике mvim
:
case "$name" in m*|g*|rm*|rg*) gui=true ;; esac
Любое другое имя запустит консольную версию. Итак, достаточно создать жесткую ссылку с оригинальным mvim
. Например, если ваш mvim
находится в /usr/local/bin/mvim
то
sudo ln /usr/local/bin/mvim /usr/local/bin/tvim
создаст tvim
а команда tvim
запустит консольную версию MacVim
. Конечно, вы также можете создать ссылку на vim
как
sudo ln /usr/local/bin/mvim /usr/local/bin/vim
просто убедитесь, что /usr/local/bin
находится перед /usr/bin
в вашем $PATH
.
Теперь к вашему вопросу:
Затенение команд с помощью псевдонимов не является лучшей практикой. Во всяком случае, это работает. Так что ваши
alias vim="/usr/local/Cellar/macvim/8.0-119_1/MacVim.app/Contents/MacOS/Vim"
запустит vim MacVim. Команда which
не отображает псевдонимы. Вы можете проверить это самостоятельно, набрав прямо в терминале:
alias bubu=/bin/date
в which bubu
ничего не будет показано, но если вы запустите команду bubu
вы получите дату.
Вы можете проверить, какая команда будет выполняться, используя type
. Например
type bubu
#bubu is alias /bin/date
так же
type vim
#will show the /usr/local/Cellar/macvim/8.0-119_1/MacVim.app/Contents/MacOS/Vim
Кроме того, вы можете проверить текущие переменные непосредственно из вашего запущенного vim
, просто используйте :set runtimepath
или :set helpfile
покажет для файла по умолчанию /usr/bin/vim
что-то вроде:
... /usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after
но для вашего MacVim (в режиме консоли) будет отображаться как:
... /usr/local/Cellar/macvim/8.0-119_1/MacVim.app/Contents/Resources/vim/vimfiles
Итак, наконец:
- Ваш псевдоним, вероятно, работает, только тот,
which
не показывает это
- Вы можете использовать предоставленный
mvim
просто жестко связать его с другим именем