Discussion:
[vim] U+00AD
(zu alt für eine Antwort)
Georg Pfeiffer
2013-05-30 18:02:33 UTC
Permalink
Wie erreiche ich es, daß [G]Vim mir ein weiches Trennzeichen (U+00AD) als
ein irgendwie andersgefärbten Bindestrich (oder so) darstellt? Bislang sieht
er aus wie ein Leerzeichen und sorgt manchmal für Verwirrung.

:set list und listchars kenne ich, haben mir aber nicht weitergeholfen.
gp
Holger Marzen
2013-05-30 18:18:06 UTC
Permalink
Post by Georg Pfeiffer
Wie erreiche ich es, daß [G]Vim mir ein weiches Trennzeichen (U+00AD) als
ein irgendwie andersgefärbten Bindestrich (oder so) darstellt? Bislang sieht
er aus wie ein Leerzeichen und sorgt manchmal für Verwirrung.
:set list und listchars kenne ich, haben mir aber nicht weitergeholfen.
gp
Das würde mir auch sehr helfen. Derzeit behelfe ich mir mit ­ auf
HTML-Seiten.

Wie gibst Du das weiche Trennzeichen ein?
Georg Pfeiffer
2013-05-30 23:13:50 UTC
Permalink
Post by Holger Marzen
Das würde mir auch sehr helfen. Derzeit behelfe ich mir mit ­ auf
HTML-Seiten.
Das will ich gerade vermeiden, denn es zerstört die Lesbarkeit und
Kontrollierbarkeit des Textes.
Post by Holger Marzen
Wie gibst Du das weiche Trennzeichen ein?
Ich lasse über meinen Text ein Perl-Skript laufen, daß mit TeX::Hyphen
(theoretisch) alle Trennstellen findet und das weiche Trennzeichen utf8-
kodiert einfügt.

Am liebsten hätte ich zwei Ansichten, eine, wo die weichen Trennzeichen
verschwinden und eine, wo sie – farblich hervorgehoben – als Bindestrich
angezeigt werden. So ein Supereditor müßte das doch können. Kann Emacs das?
Das wäre ein echtes Argument für den Wechsel, wenn sich bei vim nix findet.

Georg
Holger Marzen
2013-06-06 05:48:29 UTC
Permalink
Post by Georg Pfeiffer
Post by Holger Marzen
Das würde mir auch sehr helfen. Derzeit behelfe ich mir mit ­ auf
HTML-Seiten.
Das will ich gerade vermeiden, denn es zerstört die Lesbarkeit und
Kontrollierbarkeit des Textes.
Post by Holger Marzen
Wie gibst Du das weiche Trennzeichen ein?
Ich lasse über meinen Text ein Perl-Skript laufen, daß mit TeX::Hyphen
(theoretisch) alle Trennstellen findet und das weiche Trennzeichen utf8-
kodiert einfügt.
Würdest Du mir dieses Script zumailen? Das wäre sehr nützlich für mich.
Dennis Preiser
2013-05-31 06:06:51 UTC
Permalink
Post by Holger Marzen
Post by Georg Pfeiffer
Wie erreiche ich es, daß [G]Vim mir ein weiches Trennzeichen (U+00AD) als
ein irgendwie andersgefärbten Bindestrich (oder so) darstellt? Bislang sieht
er aus wie ein Leerzeichen und sorgt manchmal für Verwirrung.
Folgendes funktioniert halbwegs brauchbar:

set conceallevel=1
syntax match Entity "­" conceal cchar=¬
^
Wobei das hier ------| das soft hyphen ist.

Dadurch wird das soft hyphen erstens durch ¬ ersetzt und zweitens wie "Entity"
dargestellt (highlight).

Abhängig von 'concealcursor' wird diese Ersetzung auch in der aktuellen Zeile
durchgeführt oder eben nicht.
Post by Holger Marzen
Wie gibst Du das weiche Trennzeichen ein?
Im insert mode:

CTRL-k - -

also CTRL-k Bindestrich Bindestrich.

Dennis
Dennis Preiser
2013-05-31 06:34:39 UTC
Permalink
Post by Dennis Preiser
set conceallevel=1
syntax match Entity "­" conceal cchar=¬
Was ich noch vergessen hatte:

Mit ":set conceallevel=3" kann man die soft hyphen ganz ausblenden und mit
":set conceallevel=1" blendet man das ganze wieder ein. Das Verhalten der
aktuellen Zeile hängt hierbei auch von 'concealcursor' ab.

Dennis
Holger Marzen
2013-05-31 14:37:27 UTC
Permalink
Post by Dennis Preiser
Post by Georg Pfeiffer
Wie erreiche ich es, daß [G]Vim mir ein weiches Trennzeichen (U+00AD) als
ein irgendwie andersgefärbten Bindestrich (oder so) darstellt? Bislang sieht
er aus wie ein Leerzeichen und sorgt manchmal für Verwirrung.
set conceallevel=1
syntax match Entity "­" conceal cchar=¬
^
Funktioniert bei mir leider nicht (Vim Version 7.3.429).
Dennis Preiser
2013-05-31 15:01:00 UTC
Permalink
Post by Holger Marzen
Post by Dennis Preiser
Post by Georg Pfeiffer
Wie erreiche ich es, daß [G]Vim mir ein weiches Trennzeichen (U+00AD) als
ein irgendwie andersgefärbten Bindestrich (oder so) darstellt? Bislang sieht
er aus wie ein Leerzeichen und sorgt manchmal für Verwirrung.
set conceallevel=1
syntax match Entity "­" conceal cchar=¬
^
Funktioniert bei mir leider nicht (Vim Version 7.3.429).
Für einige Dateitypen (z.B. *.html) existieren syntaxfiles. Dort wird
ggf. ein "syntax reset" gemacht. Wenn das der Fall ist, kannst Du nach
dem Laden der Datei:

:syntax match Entity "­" conceal cchar=¬

eingeben. Danach müsste es in diesem Fall funktionieren. Das kann man
sich auf eine Tastenkombination legen.

Wenn es dann auch nicht geht, ist eventuell der Vim ohne 'conceal'
gebaut. Kann man mit ":version" prüfen (+conceal bzw. -conceal).

Dennis
Holger Marzen
2013-05-31 15:18:03 UTC
Permalink
Post by Dennis Preiser
Post by Holger Marzen
Post by Dennis Preiser
Post by Georg Pfeiffer
Wie erreiche ich es, daß [G]Vim mir ein weiches Trennzeichen (U+00AD) als
ein irgendwie andersgefärbten Bindestrich (oder so) darstellt? Bislang sieht
er aus wie ein Leerzeichen und sorgt manchmal für Verwirrung.
set conceallevel=1
syntax match Entity "­" conceal cchar=¬
^
Funktioniert bei mir leider nicht (Vim Version 7.3.429).
Für einige Dateitypen (z.B. *.html) existieren syntaxfiles. Dort wird
ggf. ein "syntax reset" gemacht. Wenn das der Fall ist, kannst Du nach
:syntax match Entity "­" conceal cchar=¬
Hilft trotzdem nichts. Um auszuschließen, dass es am Terminal-Emulator
liegt, hab ich auch gvim aufgerufen. Er zeigt immer nur Leerzeichen an,
obwohl softhyphens da stehen.
Post by Dennis Preiser
eingeben. Danach müsste es in diesem Fall funktionieren. Das kann man
sich auf eine Tastenkombination legen.
Wenn es dann auch nicht geht, ist eventuell der Vim ohne 'conceal'
gebaut. Kann man mit ":version" prüfen (+conceal bzw. -conceal).
+conceal hat er.

So zickig kenne ich vim gar nicht.
Dennis Preiser
2013-05-31 15:21:06 UTC
Permalink
Post by Holger Marzen
Post by Dennis Preiser
:syntax match Entity "­" conceal cchar=¬
Hilft trotzdem nichts. Um auszuschließen, dass es am Terminal-Emulator
liegt, hab ich auch gvim aufgerufen. Er zeigt immer nur Leerzeichen an,
obwohl softhyphens da stehen.
Was zeigt Dein Vim an, wenn Du den Cursor auf so ein Leerzeichen setzt
und dann ga drückst?

Dennis
Holger Marzen
2013-05-31 15:32:40 UTC
Permalink
Post by Dennis Preiser
:syntax match Entity "­" conceal cchar=¬
Ich hab jetzt mal alle Zeichen von Hand eingegeben statt zu pasten. Nun
geht es. Danke.
Holger Marzen
2013-05-31 17:10:17 UTC
Permalink
Post by Holger Marzen
Post by Dennis Preiser
:syntax match Entity "­" conceal cchar=¬
Ich hab jetzt mal alle Zeichen von Hand eingegeben statt zu pasten. Nun
geht es. Danke.
In der .vimrc geht es nicht, wird wohl von den Syntaxfiles überladen. Ob
es eine andere Möglichkeit gibt als alle System-Syntaxfiles anzupassen?
Dennis Preiser
2013-05-31 17:36:18 UTC
Permalink
Post by Holger Marzen
In der .vimrc geht es nicht, wird wohl von den Syntaxfiles überladen. Ob
es eine andere Möglichkeit gibt als alle System-Syntaxfiles anzupassen?
Man kann sowas in der .vimrc bzw. .gvimrc definieren (hier beispielhaft
für html-Dateien):

autocmd FileType html setlocal conceallevel=1
autocmd FileType html syntax match Entity "­" conceal cchar=¬

Dennis
Holger Marzen
2013-05-31 19:17:20 UTC
Permalink
Post by Dennis Preiser
Post by Holger Marzen
In der .vimrc geht es nicht, wird wohl von den Syntaxfiles überladen. Ob
es eine andere Möglichkeit gibt als alle System-Syntaxfiles anzupassen?
Man kann sowas in der .vimrc bzw. .gvimrc definieren (hier beispielhaft
autocmd FileType html setlocal conceallevel=1
autocmd FileType html syntax match Entity "­" conceal cchar=¬
Danke. Der conceallevel wird nicht überladen. Folgendes gefällt mir:

"-- Weiche Trennzeichen verstecken und in der
" Bearbeitungszeile anzeigen
set conceallevel=3
autocmd FileType php syntax match Entity "­" conceal cchar=~
autocmd FileType html syntax match Entity "­" conceal cchar=~
Dennis Preiser
2013-05-31 20:15:28 UTC
Permalink
Post by Holger Marzen
"-- Weiche Trennzeichen verstecken und in der
" Bearbeitungszeile anzeigen
set conceallevel=3
autocmd FileType php syntax match Entity "­" conceal cchar=~
autocmd FileType html syntax match Entity "­" conceal cchar=~
Man kann sich zusätzlich noch eine Funktion definieren, welche den Level
umschaltet und diese auf einen Shortcut legen (hier auf TAB):

nmap <silent> <Tab> :call ToggleCL()<CR>
function! ToggleCL()
if &conceallevel == 3
set conceallevel=1
else
set conceallevel=3
endif
endfunction

Damit kann man im normal mode mittels TAB zwischen der Anzeige der soft
hyphens als ~ und deren Ausblenden umschalten.

Dennis
Dennis Preiser
2013-05-31 20:17:09 UTC
Permalink
Post by Holger Marzen
"-- Weiche Trennzeichen verstecken und in der
" Bearbeitungszeile anzeigen
set conceallevel=3
autocmd FileType php syntax match Entity "­" conceal cchar=~
autocmd FileType html syntax match Entity "­" conceal cchar=~
Man kann sich zusätzlich noch eine Funktion definieren, welche den Level
umschaltet und diese auf einen Shortcut legen (hier auf TAB):

nmap <silent> <Tab> :call ToggleCL()<CR>
function! ToggleCL()
if &conceallevel == 3
set conceallevel=1
else
set conceallevel=3
endif
endfunction

Damit kann man im normal mode mittels TAB zwischen der Anzeige der soft
hyphens als ~ und deren Ausblenden umschalten.

Dennis
Georg Pfeiffer
2013-06-01 01:20:47 UTC
Permalink
Post by Dennis Preiser
Kann Emacs das? Das wäre ein echtes Argument für den Wechsel, wenn sich
bei vim nix findet.
autocmd FileType html setlocal conceallevel=1
autocmd FileType html syntax match Entity "­" conceal cchar=¬
nmap <silent> <Tab> :call ToggleCL()<CR>...
Na, das nenne ich eine gelungene Provokation! :D
Georg
Holger Marzen
2013-06-01 07:49:32 UTC
Permalink
Post by Dennis Preiser
Post by Holger Marzen
"-- Weiche Trennzeichen verstecken und in der
" Bearbeitungszeile anzeigen
set conceallevel=3
autocmd FileType php syntax match Entity "­" conceal cchar=~
autocmd FileType html syntax match Entity "­" conceal cchar=~
Man kann sich zusätzlich noch eine Funktion definieren, welche den Level
nmap <silent> <Tab> :call ToggleCL()<CR>
function! ToggleCL()
if &conceallevel == 3
set conceallevel=1
else
set conceallevel=3
endif
endfunction
Damit kann man im normal mode mittels TAB zwischen der Anzeige der soft
hyphens als ~ und deren Ausblenden umschalten.
Sehr komfortabel.

[X] Gefällt mir
Loading...