2009-08-06 8 views
4

Ich bin ein VIM-Anfänger, und ich habe ein seltsames Problem. Ich habe angefangen, vim in einem Terminal-Emulator zu verwenden, aber heute bin ich zu gVim umgezogen. Dann habe ich festgestellt, dass ich im Einfügemodus kein Komma schreiben kann! Ich habe versucht, :map ,, :imap , beide sagte keine Zuordnung gefunden. THen ich versuchte :nomap , und :inomap , beide ohne Glück. Beim Schreiben der Befehle kann ich das Komma schreiben, aber nicht im Einfügemodus. Was kann das Problem sein?VIM-Komma fehlt im Einfügemodus


Einige Details: Ich bin mit einem frisch installierten Ubuntu 9.04-System mit einer Englisch-Tastatur, aber eine ungarische Layout. Ich kann ein Komma in vim schreiben, wenn ich in die "Befehlszeile" von vim schreibe, nach dem Drücken von: im Befehlsmodus.

+0

Haben Sie eine 'vimrc' Datei? Dies ist '~/.vimrc' in UNIX oder' C: \ Dokumente und Einstellungen \ (Benutzername) \ _vimrc' in Windows. Diese Datei konfiguriert möglicherweise falsche Tastatureinträge für den GUI-Modus. Haben Sie ein ungewöhnliches Tastaturlayout? –

+0

Ja, ich habe einen vimrc. Es sind keine Mappings drin (und ': map 'würde es drucken, oder?). Und ja, ich habe ein ungewöhnliches Tastaturlayout, es ist eine ungarische Tastatur. Trotzdem kann ich das Komma in die "Befehlszeile" schreiben (nach dem Treffer :). –

Antwort

2

Ok, ich es lösen geführt. Zuvor habe ich mkvimrc verwendet, um meine .vimrc zu generieren. Jetzt habe ich alles gelöscht und manuell erstellt. Nicht sicher, was es verursacht hat, aber jetzt funktioniert es wie erwartet. Moral: Sei nicht faul, schreibe deinen Vimrc selbst. :)

+0

Ich hatte ein ähnliches Problem und es sieht aus, dass es durch aktivierte cindent in der Konfiguration verursacht wurde. – rsc

+0

Der 'remove cindent' Kommentar unten löste das Problem für mich. –

2

Was passiert, wenn Sie im Einfügemodus STRG-V gefolgt von einem Komma eingeben? Hast du ein Komma?

Auch, da Sie nur dieses Problem in gvim und nicht vim haben, versuchen Sie, xev ausführen und eingeben, um zu sehen, ob die Ereignisse seltsam aussehen. (Sie müssen möglicherweise apt-get install x11-utils für xev) Die Ereignisse, die ich wie folgt aussehen erhalten:

KeyPress event, serial 30, synthetic NO, window 0x4000001, 
    root 0x236, subw 0x0, time 788140933, (138,120), root:(144,139), 
    state 0x10, keycode 59 (keysym 0x2c, comma), same_screen YES, 
    XLookupString gives 1 bytes: (2c) "," 
    XmbLookupString gives 1 bytes: (2c) "," 
    XFilterEvent returns: False 

KeyRelease event, serial 30, synthetic NO, window 0x4000001, 
    root 0x236, subw 0x0, time 788141013, (138,120), root:(144,139), 
    state 0x10, keycode 59 (keysym 0x2c, comma), same_screen YES, 
    XLookupString gives 1 bytes: (2c) "," 
    XFilterEvent returns: False 
+0

Auf diesem System existiert das Problem auch mit vim (Ich begann, vim auf meinem alten arch linux zu lernen, den ich vor kurzem zu ubuntu geändert habe, und fing an, gvim zu benutzen). Das ist meine xev-Ausgabe: http://pastie.org/574928 Es sieht OK aus. Der visuelle Blockmodus und das Drücken von Komma funktionieren ebenfalls nicht. –

+0

CTRL-V im Einfügemodus führt eine wörtliche Einfügung des nächsten eingegebenen Zeichens durch. CTRL-V wechselt nur dann in den Visual-Block-Modus, wenn Sie im normalen Modus (nicht im Einfüge-Modus) waren. –

10

Entfernen Sie die 'cindent' Zeile aus Ihrer .vimrc Datei. hat für mich gearbeitet!

+0

Das hat es für mich gelöst. –

1

Haben Sie so etwas in Ihrem .vimrc set cinkeys=0{,0},:,0#,!,!^F? Ich laufe auf dieses Problem und löste es durch Entfernen der Rogue Ausrufezeichen set cinkeys=0{,0},:,0#,!^F

Verwandte Themen