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?


É 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 .'

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.