Syntax-Highlighting vi einstellen

Hallo,

um Dateien zu editieren oder anzuschauen, benutze ich den vi Version 6.3.23 auf einem SuSE 9.2 - System.

Da ich derzeit einige Dateien editieren muss, deren Auskommentierungszeichen ein „;“ (Strichpunkt) ist und mir keine Syntax-Highlighting angezeigt wird, wenn ich :syn on eingebe, würde ich gerne eine Regel schreiben, die mir - wie bei den normalen .conf-Dateien die Zeilen in blau darstellt, die ansonsten in .conf-Dateien eine „#“ (Raute) zur Auskommentierung benutzen.

Dazu habe ich einfach mal die Datei /usr/share/vim/vim63/syntax/conf.vim kopiert in testconf.vim.

Dort habe ich dann statt der „#“ einen „;“ eingetragen, so dass die Datei testconf.vim nun so aussieht:

" Vim syntax file
" Language: generic configure file
" Maintainer: Bram Moolenaar 
" Last Change: 2001 Apr 25

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version = 508 || !exists("did\_conf\_syntax\_inits")
 if version 
 else
 command -nargs=+ HiLink hi def link 
 endif

 HiLink confComment Comment
 HiLink confTodo Todo
 HiLink confString String

 delcommand HiLink
endif

let b:current\_syntax = "conf"

" vim: ts=8 sw=2

Ich habe in den folgenden beiden Zeilen

syn match confComment "^#.\*" contains=confTodo
syn match confComment "\#.\*"ms=s+1 contains=confTodo

das „#“ durch einen „;“ ersetzt:

syn match confComment "^;.\*" contains=confTodo
syn match confComment "\;.\*"ms=s+1 contains=confTodo

Wenn ich jetzt eine Datei namens xy.conf aufrufe, deren auskommentierte Zeilen mit einem „;“ beginnen und gebe dann den Befehl :set syntax=testconf ein, dann werden mir die Zeilen mit dem „;“ nicht blau dargestellt.

Wo liegt da der Fehler?

Grüsse
schuelsche

Hallo,

Hi,

um Dateien zu editieren oder anzuschauen, benutze ich den vi
Version 6.3.23 auf einem SuSE 9.2 - System.

Oh, da koennen wir es kurz und schmerzlos machen: der vi kann kein syntax highlighting.

Im weiteren nehme ich an, dass Du vim verwendest.

Da ich derzeit einige Dateien editieren muss, deren
Auskommentierungszeichen ein „;“ (Strichpunkt) ist und mir
keine Syntax-Highlighting angezeigt wird, wenn ich :syn on
eingebe, würde ich gerne eine Regel schreiben, die mir - wie
bei den normalen .conf-Dateien die Zeilen in blau darstellt,
die ansonsten in .conf-Dateien eine „#“ (Raute) zur
Auskommentierung benutzen.

Boah, Du schreibst aber lange Saetze… Was sind das denn fuer Dateien? ; als Kommentar ist nun nicht _so_ ungewoehnlich, vielleicht gibt’s da ja schon was.

Dazu habe ich einfach mal die Datei
/usr/share/vim/vim63/syntax/conf.vim kopiert in testconf.vim.

Wohin kopiert? Im gleichen Verzeichnis? Nutzereigene syntax files gehoeren eigentlich ins ~/.vim/syntax des jeweiligen Nutzers. Unabhaengig davon sucht er aber in beiden Verzeichnissen.

> syn match confComment "^;.\*" contains=confTodo  
> syn match confComment "\s;.\*"ms=s+1 contains=confTodo

Aeh… diese Zeilen, …

> syn match confComment "^#.\*" contains=confTodo  
> syn match confComment "\#.\*"ms=s+1 contains=confTodo

… diese Zeilen und …

> syn match confComment "^;.\*" contains=confTodo  
> syn match confComment "\;.\*"ms=s+1 contains=confTodo

… diese Zeilen sehen irgendwie schon anders aus. Wo ist denn das \s abgeblieben? Das macht natuerlich nicht den fundamentalen Unterschied, dass es nicht funktionieren sollte.

Wenn ich jetzt eine Datei namens xy.conf aufrufe, deren
auskommentierte Zeilen mit einem „;“ beginnen und gebe dann
den Befehl :set syntax=testconf ein, dann werden mir die
Zeilen mit dem „;“ nicht blau dargestellt.

Wo liegt da der Fehler?

Weiss ich ehrlich gesagt nicht, bei mir funktioniert das so perfekt. Was passiert bei

 :syn on
 :set ft=testconf

Gibt es ueberhaupt Syntax items, nachdem Du

 :set syntax=testconf

gemacht hast? Gibt

 :syn

ohne alles welche aus? Was passiert, wenn Du einfach

 :source /path/to/file/testconf.vim

machst? Hast Du

 :help new-filetype

gelesen?

HTH,
Gruss vom Frank.

Hallo,

Oh, da koennen wir es kurz und schmerzlos machen: der vi kann
kein syntax highlighting.

äh, ja… sorry.

Boah, Du schreibst aber lange Saetze…

Nachher fehlt irgendwas elementares… :wink:

Was sind das denn
fuer Dateien? ; als Kommentar ist nun nicht _so_
ungewoehnlich, vielleicht gibt’s da ja schon was.

Das sind die Konfigurationsdateien vom asterisk, z.B. sip.conf. Und da die normalen *.conf-Dateien offensichtlich eine # zur Auskommentierung benutzen, funktioniert das mit dem Syntaxhighlighting hier wohl nicht.

Dazu habe ich einfach mal die Datei
/usr/share/vim/vim63/syntax/conf.vim kopiert in testconf.vim.

Wohin kopiert? Im gleichen Verzeichnis?

Ja.

Nutzereigene syntax
files gehoeren eigentlich ins ~/.vim/syntax des jeweiligen
Nutzers.

Mag sein. Da bei mir aber in ~/ kein Verzeichnis .vim existiert, sondern nur eine Datei namens .viminfo, habe ich das halt direkt im gleichen Verzeichnis kopiert.

Unabhaengig davon sucht er aber in beiden
Verzeichnissen.

Glück gehabt.

… diese Zeilen sehen irgendwie schon anders aus. Wo ist
denn das \s abgeblieben?

Ist wieder drin.
Und noch was habe ich geändert, die vorletzte Zeile:

let b:current\_syntax = "testconf"

Was passiert bei

:syn on

Nichts. Keine Fehlerausgabe, kein Highlighting, nichts.

:set ft=testconf

Das funktioniert :smile:)

Gibt es ueberhaupt Syntax items,
nachdem Du

:set syntax=testconf

gemacht hast?

Was sind Syntax items?
Wenn ich das eingegeben habe, passiert überhaupt nichts. Keine Fehlerausgabe, kein Highlighting, nichts.

Gibt

:syn

ohne alles welche aus?

Nichts wird ausgegeben.

Was passiert,
wenn Du einfach

:source /path/to/file/testconf.vim

machst?

Nichts.

Hast Du

:help new-filetype

gelesen?

Nein. Werde ich aber nachholen. Irgendwie ist mir das vim-Tutorial immer zu heftig gewesen…

Wollte das Problem schnell lösen und dachte, es sei durch einfaches Editieren getan…

Grüsse
schuelsche

Das sind die Konfigurationsdateien vom asterisk, z.B.
sip.conf.

Prinzipiell finde ich ja schon gut, dass Du den schweren Weg gehst, aber… http://www.google.de/search?q=asterisk+vim+syntax

Da bei mir aber in ~/ kein Verzeichnis .vim existiert,

Du darfst das auch selbst anlegen.

sondern nur eine Datei namens .viminfo,

Wie, keine ~/.vimrc? Wie lebst Du denn?

:set ft=testconf

Das funktioniert :smile:)

Na prima.

Was sind Syntax items?

 :help :syntax

Die regulaeren Ausdruecke, mit denen das highlighting konfiguriert wird.

Gibt

:syn

ohne alles welche aus?

Nichts wird ausgegeben.

Wenn das highlighting an ist? Dann solltest Du da eigentlich eine Liste mit allen items kriegen.

Was passiert, wenn Du einfach

:source
/path/to/file/testconf.vim

machst?

Nichts.

Hm, scheint kaputt zu sein.

Irgendwie ist mir das vim-Tutorial immer zu heftig gewesen…

Was, vimtutor? Das erklaert ja nur die grundlegenden Dinge, damit das Ding nicht nur piept. Lies mal, fang am besten bei

 :help usr\_toc

an, das lohnt sich echt. Ansonsten koenntest Du ja gleich den anderen editor nehmen.

Gruss vom Frank.

Hallo,

Prinzipiell finde ich ja schon gut, dass Du den schweren Weg
gehst, aber…
http://www.google.de/search?q=asterisk+vim+syntax

Wow - super :smile: Wäre ich nicht drauf gekommen, dort nach vi-Einstellungen zu suchen…

Da bei mir aber in ~/ kein Verzeichnis .vim existiert,

Du darfst das auch selbst anlegen.

Naja… es wird ja nicht immer auf alles dann zugegriffen, was ich anlege :wink: Aber in diesem Fall würde es wohl so sein…

sondern nur eine Datei namens .viminfo,

Wie, keine ~/.vimrc? Wie lebst Du denn?

Mit einem SuSE-Standardsystem :smile:

Lies mal, fang am besten bei

:help usr_toc

an, das lohnt sich echt.

… sobald ich Zeit habe :wink:

Ansonsten
koenntest Du ja gleich den anderen editor nehmen.

Nö, das klappt ja mit dem vi ansonsten ganz gut. Auch wenn ich gerne mal endlich die Zeit hätte, mich da richtig einzuarbeiten.

Danke für die Tipps,
Grüsse
schuelsche