O mvim é o script de início universal (bash) para o MacVim . Ele funciona com base em seu próprio nome, por exemplo, se o nome começar com m ou g iniciará a versão da GUI, caso contrário, a versão do console.
Você pode ver isso na mvim source:
case "$name" in m*|g*|rm*|rg*) gui=true ;; esac
Qualquer outro nome iniciará a versão do console . Portanto, basta criar um link físico com o% original mvim . Por exemplo, se o seu mvim estiver no /usr/local/bin/mvim , então
sudo ln /usr/local/bin/mvim /usr/local/bin/tvim
criará o comando tvim e o tvim iniciará a versão do console do MacVim . Claro, você também pode criar o link para vim like
sudo ln /usr/local/bin/mvim /usr/local/bin/vim
apenas deve garantir que /usr/local/bin seja antes de /usr/bin no seu $PATH .
Agora, a sua pergunta:
O sombreamento de comandos com aliases não é a melhor prática. De qualquer forma, funciona. Então, seu
alias vim="/usr/local/Cellar/macvim/8.0-119_1/MacVim.app/Contents/MacOS/Vim"
irá iniciar o vim do MacVim. O comando which não mostra aliases. Você pode testar você mesmo, digite diretamente no terminal:
alias bubu=/bin/date
o which bubu não mostrará nada, mas se você executar o comando bubu , receberá a data.
Você pode verificar qual comando será executado usando o type . Por exemplo,
type bubu
#bubu is alias /bin/date
similarmente
type vim
#will show the /usr/local/Cellar/macvim/8.0-119_1/MacVim.app/Contents/MacOS/Vim
Além disso, você pode verificar as variáveis atuais diretamente de sua execução vim , basta usar o :set runtimepath ou :set helpfile será exibido para o padrão /usr/bin/vim algo como:
... /usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after
mas para o seu MacVim (no modo de console) mostrará como:
... /usr/local/Cellar/macvim/8.0-119_1/MacVim.app/Contents/Resources/vim/vimfiles
Então, finalmente:
- seu alias provavelmente funciona, apenas o
whichnão mostra - você pode usar o
mvimfornecido apenas para vinculá-lo a outro nome