Es gibt zwar das ein oder andere mehr oder weniger gute vim-Plugin für VHDL, doch die meisten beschränken sich auf einige Mappings, Abkürzungen und Ähnliches. Es gibt jedoch eine sehr schöne Anleitung von Andreas Müller, wie man sein vim wirklich gut zum Coden von VHDL nutzen kann. Darin werden verschiedene Plugins, Mappings … beschrieben.
Dort wird unter Anderem das Taglist-Plugin verwendet. Um es nutzen zu können, muss Exuberant Ctags installiert sein, was man unter Ubuntu einfach per
apt-get install exuberant-ctags
installieren kann.
In der Anleitung steht bereits eine ctags-Konfigurationsdatei zur Verfügung. Sie wird einfach unter ~/.ctags gespeichert. Diese Datei habe ich in dem Abschnitt von VHDL um folgende Zeile erweitert um auch die Port Mappings anzuzeigen:
--regex-vhdl=/^[ \t]*([^ \t:]+)[ \t]*:[ \t]*[a-z0-9_]+[ \t]+port[ \t]*map[ \t]*\(/\1/m,port maps/i
Zusätzlich muss dafür die Definition von g:tlist_vhdl_settings in der .vimrc abgeändert werden (mehr zur .vimrc weiter unten):
let g:tlist_vhdl_settings = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;m:port maps;r:procedures'
Hier die entsprechenden Zeilen der .vimrc für VHDL, die ich (mehr oder weniger) übernommen habe:
" VHDL Stuff if has("autocmd") filetype plugin indent on " filetype dependent settings au Filetype vhdl call FT_vhdl() else set autoindent endif function FT_vhdl() if exists("+omnifunc") setlocal omnifunc=syntaxcomplete#Complete endif setlocal errorformat=ERROR:%.%#\ -\ \"\%f\"\ Line\ %l.\ %m,%EERROR:%m,%C\[%f(%l)\]:\ %m,%C%m,%Z%m let g:vhdl_indent_genportmap=0 " for taglist let g:tlist_vhdl_settings = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;m:port maps;r:procedures' endfunction
Das Errorformat ist bisher kaum getestet. Verbesserungsvorschläge sind daher gern gesehen.
Mehr zum Thema Makefiles und Compilieren (eigentlich Synthetisieren, Mappen,…) gibts hier.
Die anderen Ideen von Andreas habe ich vorerst nicht übernommen, da mir dies im Moment reicht.
Folgende Beiträge könnten Dich auch interessieren:
- Tools zur VHDL Entwicklung in der Linux Konsole
- Vim Plugin – Taglist: Splitscreen mit Übersicht der Funkionen in einer Datei
- Notizen mit dem Hilfesystem von Vim verwalten
- Titel von Screen-Fenstern automatisch von Vim, Bash und zsh setzen
- Vim Plugin – VCSCommand zur Versionsverwaltung mittels SVN und CVS







