Saturday, December 18, 2010

Re: Make vim recognize my bashrc aliases

On Sat, Dec 18, 2010 at 04:41:06PM EST, Roger wrote:

> csupport plugin is awesome!
>
> I have one issue with VIM, trying to make it recognize my bashrc aliases.
>
> ie:
> :!indent ./foo.c
>
> >From what I've read, the cause is Bash starting in non-interactive mode.

> So I've modified $HOME/.vimrc:
> shell=bash
> shellcmdflags=-ic

> Also note, I must specify "-ic", as not even "-i\ -c" will work from within
> VIM.
>
> Is this the proper solution?

Not sure, but this what I did:

1. in .bash_profile I added:

export BASH_ENV="~/.bash_ni"

cf. 'man bash' for details..

2. Then, I created the following ~/.bash_ni file

# ~/.bash_ni: get bash to load aliases & functions for non-interactive
# shells - e.g. when issuing `:!cmd' commands from Vim
#set -x
#---------------------------------------------------------------------
# functions
#---------------------------------------------------------------------
if [ -d /etc/bash_functions ]; then
cd /etc/bash_functions
for i in $(ls); do
. $i
done
cd -
fi

if [ -d /home/gavron/.bash_functions ]; then
cd /home/gavron/.bash_functions
for i in $(ls); do
. $i
done
cd -
fi
#------------- -------------------------------------------------------
# source aliases
#---------------------------------------------------------------------
shopt -s expand_aliases

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

I tend to use bash functions rather than aliases because they are a lot
more powerful and flexible, hence the functions-related code above. If
you don't use functions you can skip that part.

cj

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: