VIP

VIP (VHDL Interface Plug-in) is a script for VIM text editor which provides some facilities to copy paste entities, components and instances of components.

For example you can copy the component :

1 component mux is   -- place the cursor on this line and enter the command :Viy
2      port (
3        INPUT  : in  std_logic_vector (15 downto 0);
4        SEL    : in  std_logic;
5        OUTPUT : out std_logic
6      );
7   end component mux;

and paste it as an instance :

1 mux_0 : mux   -- place the cursor here and enter the command :Vii
2      port map (
3         INPUT   => s_INPUT,
4         SEL     => s_SEL,
5         OUTPUT  => s_OUTPUT
6     );

VIP can :

copy an entity and paste it as
an entity a component an instance
copy a component and paste it as
an entity a component an instance
copy a instance and paste it as
an instance (with auto-incrementation of the suffix number)

VIP tries to respect your indentation as much as possible (spaces, tabs, spaces + tabs). It can work with many different styles of writing entities, components and instances, but not all of them. See documentation.

For sources : VIP at Gitorious

For download : vim.org / scripts / VIP