Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.editoren > #446 > unrolled thread
| Started by | Andreas Kohlbach <ank@spamfence.net> |
|---|---|
| First post | 2023-11-16 18:08 -0500 |
| Last post | 2023-11-17 04:45 +0100 |
| Articles | 7 — 2 participants |
Back to article view | Back to de.comp.editoren
[VI] Extralange Zeilen einfärben Andreas Kohlbach <ank@spamfence.net> - 2023-11-16 18:08 -0500
Re: [VI] Extralange Zeilen einfärben Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2023-11-17 02:44 +0100
Re: [VI] Extralange Zeilen einfärben Andreas Kohlbach <ank@spamfence.net> - 2023-11-16 21:35 -0500
Re: [VI] Extralange Zeilen einfärben Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2023-11-17 04:03 +0100
Re: [VI] Extralange Zeilen einfärben Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2023-11-17 04:19 +0100
Re: [VI] Extralange Zeilen einfärben Andreas Kohlbach <ank@spamfence.net> - 2023-11-17 18:53 -0500
Re: [VI] Extralange Zeilen einfärben Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2023-11-17 04:45 +0100
| From | Andreas Kohlbach <ank@spamfence.net> |
|---|---|
| Date | 2023-11-16 18:08 -0500 |
| Subject | [VI] Extralange Zeilen einfärben |
| Message-ID | <87v8a1qosx.fsf@usenet.ankman.de> |
VIM erlaubt per Default das Einfärben von maximal 3000 Zeichen pro Zeile. Ich habe Dateien, die länger sind. Laut Suchergebnissen soll synmaxcol das regeln. Ich kann aber keine funktionierende Syntax finden, die ich in meine vimrc stecken könnte. set fdm=marker:synmaxcol=10000 set synmaxcol=10000 und anderes funktioniert nicht, was ich ergoogeln konnte. -- Andreas
[toc] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2023-11-17 02:44 +0100 |
| Message-ID | <uj6gie$2gc5e$1@dont-email.me> |
| In reply to | #446 |
On 17.11.2023 00:08, Andreas Kohlbach wrote: > VIM erlaubt per Default das Einfärben von maximal 3000 Zeichen pro Zeile. > > Ich habe Dateien, die länger sind. > > [...] Oha, mir war eine Grenze hier noch gar nicht bekannt. Das liegt aber daran, dass ich mir die Dateien - wo sinnvoll und möglich - einfach umformatiere, um die Daten auch handhabbarer zu machen. Hast du diese Möglichkeit bei deinen Daten? Für HTML (wo ich lange Zeilen am häufigsten antreffe) breche ich z.B. regelmäßig an den HTML-Tags um; mittels :%s/></>^V^M</g (wobei ^V für <Ctrl-V> und ^M für <Enter> steht). Um welches Datenformat geht es in deinem Fall? Janis
[toc] | [prev] | [next] | [standalone]
| From | Andreas Kohlbach <ank@spamfence.net> |
|---|---|
| Date | 2023-11-16 21:35 -0500 |
| Message-ID | <87msvdqf7x.fsf@usenet.ankman.de> |
| In reply to | #447 |
On Fri, 17 Nov 2023 02:44:45 +0100, Janis Papanagnou wrote: > > On 17.11.2023 00:08, Andreas Kohlbach wrote: >> VIM erlaubt per Default das Einfärben von maximal 3000 Zeichen pro Zeile. >> >> Ich habe Dateien, die länger sind. >> >> [...] > > Oha, mir war eine Grenze hier noch gar nicht bekannt. Das liegt > aber daran, dass ich mir die Dateien - wo sinnvoll und möglich - > einfach umformatiere, um die Daten auch handhabbarer zu machen. > Hast du diese Möglichkeit bei deinen Daten? Ist ein Perl-Skript mit einer zum Teil sehr langen Angabe von Parametern. Ich könnte wohl einfach irgendwo umbrechen lassen. Perl sollte das (?) nicht stören. > Für HTML (wo ich lange Zeilen am häufigsten antreffe) breche ich > z.B. regelmäßig an den HTML-Tags um; mittels :%s/></>^V^M</g > (wobei ^V für <Ctrl-V> und ^M für <Enter> steht). > > Um welches Datenformat geht es in deinem Fall? Perl script text executable Ich dachte halt, dass die 3000er Grenze vielleicht geschaffen wurde, als die Hardware noch unter 1 GB RAM und 1-Kern Prozessoren hatte. Heutige Hardware (meine ist 10 Jahre alt, sollte aber immer noch als "modern" gelten) sollte auch bei 10000 Zeichen keinen zu großen Schluckauf haben. -- Andreas
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2023-11-17 04:03 +0100 |
| Message-ID | <uj6l5l$2ko3h$1@dont-email.me> |
| In reply to | #448 |
On 17.11.2023 03:35, Andreas Kohlbach wrote:
> On Fri, 17 Nov 2023 02:44:45 +0100, Janis Papanagnou wrote:
>> On 17.11.2023 00:08, Andreas Kohlbach wrote:
>>> VIM erlaubt per Default das Einfärben von maximal 3000 Zeichen pro Zeile.
>>>
>>> Ich habe Dateien, die länger sind.
[...]
> Ich dachte halt, dass die 3000er Grenze vielleicht geschaffen wurde, als
> die Hardware noch unter 1 GB RAM und 1-Kern Prozessoren hatte. Heutige
> Hardware (meine ist 10 Jahre alt, sollte aber immer noch als "modern"
> gelten) sollte auch bei 10000 Zeichen keinen zu großen Schluckauf haben.
Selbst bei "alten" Systemen sind diese Größenordnungen nicht wirklich
ein Problem.
Meine Vermutung war gewesen, dass es vielleicht ein "buffering" Problem
ist; oft werden da statische Größen verwendet, die als sinnvoll und
ausreichend angesehen werden. Ist ja meistens auch so; das Coloring ist
ja ein Feature für die interaktive Orientierung in den Daten, und wenn
man Zeilenlängen in den 1000ern hat, dann ist nicht mehr viel los mit
der Orientierung. - Das wäre jedenfalls meine Vermutung und Erklärung
für solch ein Limit.
Ich habe mal kurz (und zum ersten Mal) in den Sourcecode reingeschaut.
Eine verdächtige Codesequenz mit einer Konstante im 3000er Bereich ist:
{"synmaxcol", "smc", P_NUM|P_VI_DEF|P_RBUF,
#ifdef FEAT_SYN_HL
(char_u *)&p_smc, PV_SMC, NULL, NULL,
{(char_u *)3000L, (char_u *)0L}
#else
(char_u *)NULL, PV_NONE, NULL, NULL,
{(char_u *)0L, (char_u *)0L}
#endif
Das ("synmaxcol") deckt sich mit deiner oben geäußerten Vermutung!
Von der Namensgebung her ist das wohl die Synhronisations-Kontextlänge
für die syntaktischen Prüfungen? (Ich spekuliere hier aber nur.) Wenn
das aber stimmt, dass dies die Ursache ist, und da es eine statische
hart-codierte Größe ist, wirst du das nur durch Neucompilieren des Vim
ändern können.
Janis
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2023-11-17 04:19 +0100 |
| Message-ID | <uj6m3f$2krt4$1@dont-email.me> |
| In reply to | #449 |
On 17.11.2023 04:03, Janis Papanagnou wrote:
>
> Das ("synmaxcol") deckt sich mit deiner oben geäußerten Vermutung!
>
Sorry, ich habe oben dummgeschwätzt :-)
Der Code, den ich zitierte, der zeigt ja die einstellbaren Optionen!
Daher habe ich mal die Option geändert (hier mit der Kurzform 'smc')
:set smc=50000
und sofort war der gesamte Text korrekt gehilighted.
Ich verwende hier Vim version 7.3 - Hoffe, das klappt auch bei dir!
Janis
[toc] | [prev] | [next] | [standalone]
| From | Andreas Kohlbach <ank@spamfence.net> |
|---|---|
| Date | 2023-11-17 18:53 -0500 |
| Message-ID | <878r6wq6mp.fsf@usenet.ankman.de> |
| In reply to | #450 |
On Fri, 17 Nov 2023 04:19:10 +0100, Janis Papanagnou wrote:
>
> On 17.11.2023 04:03, Janis Papanagnou wrote:
>>
>> Das ("synmaxcol") deckt sich mit deiner oben geäußerten Vermutung!
>>
>
> Sorry, ich habe oben dummgeschwätzt :-)
Das mit dem Puffer als Problem hatte ich gestern auch irgendwo gelesen.
> Der Code, den ich zitierte, der zeigt ja die einstellbaren Optionen!
> Daher habe ich mal die Option geändert (hier mit der Kurzform 'smc')
> :set smc=50000
> und sofort war der gesamte Text korrekt gehilighted.
Habe ich nun in der vimrc. Funktioniert. Ich sehe bei der Zeile mit den
rund 8000 Zeichen kein Problem beim Laden.
> Ich verwende hier Vim version 7.3 - Hoffe, das klappt auch bei dir!
Yup. Danke! :-)
--
Andreas
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2023-11-17 04:45 +0100 |
| Message-ID | <uj6nlb$2l3d8$1@dont-email.me> |
| In reply to | #446 |
On 17.11.2023 00:08, Andreas Kohlbach wrote: > VIM erlaubt per Default das Einfärben von maximal 3000 Zeichen pro Zeile. > > Ich habe Dateien, die länger sind. > > Laut Suchergebnissen soll synmaxcol das regeln. Ich kann aber keine > funktionierende Syntax finden, die ich in meine vimrc stecken könnte. > > set fdm=marker:synmaxcol=10000 > set synmaxcol=10000 > > und anderes funktioniert nicht, was ich ergoogeln konnte. > Was bei mir mit Vim 7.3 funktioniert ist: 1. In einer Editier-Sitzung die Eingabe von :set smc=10000 2. In meinem $HOME/.vimrc File der Eintrag set smc=10000 3. In den Modelines der editierten Datei # vim: smc=10000 Janis
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.editoren
csiph-web