2009-07-09 2 views
3

Ich versuche, eine einfache Vim-Funktion zu schreiben, die den Namen einer Datei als Argument übernimmt und den Inhalt dieser Datei in das aktuelle Dokument liest (bezogen auf this question).Wie verwende ich eigentlich den Wert eines Arguments für eine Vim-Funktion?

Hier ist meine erste Stich an es:

fun! Tpl(tplfile) 
    r c:\tpl\a:tplfile 
endfun 

Das gibt mir die folgende Fehlermeldung:

E484: Can't open file c:\tpl\a:tplfile

Wie kann ich die Funktion tatsächlich den Wert des tplfile Argument benutzen?

Antwort

6

Ersetzen Sie die Zeile mit:

exe 'r c:\tpl\' . a:tplfile 

Die a: tplfile ist ein String-Variable, so dass es in einem Befehl zu schließen, müssen Sie die gesamte Menge in einen String kombinieren (mit den '.' Betreibern verwenden exe den Befehl

:help exe 

über einen entsprechenden Hinweis (und eine schamlose Werbung) laufen zu lassen), und dann, wenn Sie versuchen, Vorlagen hinzufügen (wie von der Post angedeutet Sie verknüpfen), meine file templates Plugin hat ein Befehl AddTemplate, um eine Vorlage für die Datei hinzuzufügen m Ihr Verzeichnis vimfiles/templates an der aktuellen Cursorposition. Allerdings ist die Dokumentation derzeit eher schlecht, also wenn Sie sich entscheiden, es zu benutzen und irgendwelche Schwierigkeiten haben, zögern Sie nicht, mir eine E-Mail an die Adresse auf meiner Website.

+0

Perfekt, danke! –

Verwandte Themen