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просто жестко связать его с другим именем