O Vim ignora aliases

11

Se eu mapear um comando no vim usando algo como

map <f4> :! pdflatex %<cr>

O Vim ignorará meu apelido para pdflatex (algo parecido com apelido pdflatex = 'pdflatex --temp-dir = something'). É possível fazer com que o vim não o ignore?

vonhogen
fonte
É possível que seu shell ou tipo de shell vim não corresponda ao seu shell de login?
DaveParillo

Respostas:

16

O Vim 'ignora' seus aliases porque seu shell não está com um 'humor' para analisá- .bash_profile/.bashrclo (você não especificou onde seus aliases são definidos) porque não é iniciado como um shell de logon / interativo (leia aqui para saber mais sobre o que é lido quando e por que motivo).

Então, você tem várias opções:

  1. Coloque o código que você usa no seu pdflatexalias em um script e chame isso
  2. vimrc:, 'set shell=/bin/bash\ -l'coloque seus aliases em .bash_profile
  3. Chame seu shell como um shell interativo / de login: :! bash -l -i -e 'pdflatex .'
akira
fonte
2
O login / não login não é importante ~/.bashrc- apenas interativo / não interativo.
user1686
meus apelidos estão em .bash_profile .. hmm mudei a pergunta um pouco. Prefiro que funcione no shell atual. Sua segunda solução parecia a mais 'aceitável', no entanto, ela torna a variável% inútil, pois a abertura de um novo shell geralmente inicia na pasta inicial.
vonhogen 29/09/09
Esta é uma resposta incrível e completa. Obrigado!
Abel