Hi Andre! On Do, 09 Dez 2010, Andre Tann wrote:
Christian Brabandt, Donnerstag 09 Dezember 2010: # echo $TERM rxvt-unicode
Das stimmt insoweit auch, ich lasse vim derzeit in einem urxvt laufen. Aber im xterm siehts genauso aus.
Hm. Ich mußte mich bisher weder mit termcap noch mit terminfo näher beschäftigen. Bei mir funktionierte immer alles. Ich würde auf eine veraltete oder kaputte TERMINFO-Database tippen aber hier muß ich extrem im Nebel stochern.
für xterm bzw. urxvt sollte xterm-color bzw. rxvt-unicode gesetzt sein, IIRC. Das könnte für solche Effekte sorgen. Zur Not, kannst Du auch in der .vimrc set term=ansi oder set term=builtin_xterm ausprobieren.
Hmja, also...
set term=ansi und set term=builtin_xterm führen dazu, daß a) die komsichen Effekte nicht mehr auftreten, und daß b) der Vim auch keine Farben mehr darstellt zB für die verschiedenen Zitatebenen.
für term=builtin_xterm bzw. builtin_ansi sollte vim aber Farben anzeigen. Ich kann es hier gerade nur im putty testen und dort muß ich explizit hinterher :syntax on machen.
Kannst Du mir das erklären, was da vor sich geht? Ich verstehe das so, daß Vim irgendwelche Steuerzeichen benutzt, die das Terminal nicht kapiert (oder umgekehrt). Daher wird das Bild nicht richtig gezeichnet. Und daher funktioniert auch strg+rechts nicht.
Hier kenne ich mich auch nicht so genau aus¹. xterm kennt IIRC 2 Modi, wie Modifier keys mitgegeben werden, als 8bit sequence (CSI mode) oder 7 bit mode. Normal ist 7bit mode, und da werden Tasten wie Links, Rechts als Tastenkombination von ESC+mehrere andere Tasten angegeben. Das muß aber von Vim unterscheiden vom manuellen Drücken von ESC durch den Benutzer. Daher gibt es die Einstellungen 'timeoutlen' und 'ttimeoutlen'. Und daher kommt es einem manchmal so vor, als hängt Vim, wenn es ein ESC sieht, dabei wartet es, ob noch zusätzliche Tasten kommen. Äh, ich schweife ab. Also in Abhängigkeit von diesen Modi passen halt die Mappings von <C-Right> oder auch nicht. Will sagen, Vim erhält eine Key sequence, kann das aber nicht <C-Right> zuordnen, weil die Terminfo Datenbank sagt, <C-Right> ist eine völlig andere Tastenkombination. Im Zweifel einfach mal neu mappen (aber mit den fest verdrahten Escape Sequenzen), hier mal für mein putty: :nmap ^[[C W Das ^[ ist ein Zeichen und nicht zwei und erhält man durch drücken von Ctrl-V vor dem Drücken von <C-Right>. Also Ctrl-V drücken und hinterher Ctrl-Rechts. (Dadurch erhält man die Raw-Keys, die im Programm ankommen). Am besten das noch in ein: :if &term=~"xterm" "C-Rechts für xterm :nmap ^[[C W endif packen, damit dieses Mapping auch nur für Terminals gelten, die sich als xterm ausgeben. Dann müßte das auch funktionieren. Wer Lust hat, kann sich Details zum - meiner Meinung nach grausamen terminfo bzw. termcap Interface - hier² noch nachlesen.
Aber was hat das mit den Farben zu tun?
Nun, die müssen ja auch vom Terminal dargestellt werden. Es gibt ein Terminfo Settings dafür. Vim fragt normalerweise das Terminal (mindestens xterm, ich weiß nicht, welche anderen Terminalemulatoren das unterstüzten) nach der Anzahl der unterstützen Farben und setzt den Wert dann intern richtig. Man kann das natürlich auch von Hand setzen. :set t_CO=256 setzt das fest auf 256 Farben. Ich habe schon lange kein Terminal mehr gesehen, dass heutzutage weniger als 88 Farben unterstützt. Daher habe ich das in meiner .vimrc fest verdrahtet ;)
Und was wäre ein Schritt zu einer Lösung, die sowohl Farben zeigt, als auch ein korrektes Bild?
terminfo Datenbank aktualisieren, oder set term=builtin_xterm benutzen und dann zur Not die Ctrl+Rechts und Links tasten entsprechend mappen. Oder mal im Wiki bzw. der FAQ stöbern³.
# rpm -qa vim vim-7.2-23.1.x86_6
Oha, das ist alt.
Wieso? Das ist der Vim, der standardmäßig bei der 11.3 mitgeliefert wird.
eine 7.2? Wieviele Patches hat denn das Ding? 7.2 ist schon recht betagt, so Mitte 2008. Seitdem haben sich gut 450 Patches angesammelt und Mitte des Jahres gab es 7.3 mit vielen interessanten Neuerungen, für dass sich mittlerweile auch so gut 80 Patches angesammelt haben.
Danke+Gruß!
dito. ¹) Die glorreichen Details kann man hier nachlesen: http://invisible-island.net/xterm/ctlseqs/ctlseqs.html ²) :h terminal-info Zum Glück, mußte ich noch nicht die Details lesen und beachten. Hier funktioniert das meiste. Aber ich beschränke mich auch nur auf die Standard tasten, Ctrl+Rechts brauche ich nicht, ich habe ja 'W'. Es lohnt sich eh, die Standard vi-keys zu nutzen und auf die Maus zu verzichten. Dann muß man seine Hände nicht mehr so oft wegnehmen von den Tasten. ³) eine kurze Suche förderte folgende Einträge zutage: http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim http://vim.wikia.com/wiki/Get_Alt_key_to_work_in_terminal http://vim.wikia.com/wiki/256_colors_in_vim http://vimhelp.appspot.com/vim_faq.txt.html#faq-32.10 http://vimhelp.appspot.com/vim_faq.txt.html#faq-20.5 http://vimhelp.appspot.com/vim_faq.txt.html#faq-20.4 Mit freundlichen Grüßen Christian, heute mal ausführlich antwortend... -- Das Leben ist bezaubernd, man muß es nur durch die richtige Brille sehen. Frauen inspirieren uns zu großen Dingen - und hinden uns dann, sie auszuführen. -- Alexandre Dumas d.J. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org