Ich bin mir bewusst, dass dies eine seltsame Frage ist und dies möglicherweise nicht das richtige Forum ist, um sie zu posten. Dies ist jedoch seit mehreren Jahren ein Problem.
Lassen Sie uns von Zeit zu Zeit einmal im Monat sagen, dass ich beim Programmieren ein No-Break-Leerzeichen anstelle eines normalen Leerzeichens einführe , bevor ich eine geschweifte Klammer öffne.
Das passiert, sagen wir mal, wenn ich schreibe () {
Dies führt zu mysteriösen Flusen. CSS-Klauseln, die nicht zutreffen. Bis ich mich erinnere, könnte es sein.
Soweit mir bekannt ist, geschieht dies nur in vim, aber da es sich um meinen Haupteditor handelt, ist es in einer anderen Software möglicherweise noch nie passiert. Aber keiner meiner Kollegen in meinen letzten Jobs hatte jemals dieses Problem, obwohl sie das gleiche Tastaturlayout wie ich verwenden. Ich bin der einzige, der vim regelmäßig benutzt, deswegen habe ich es mir überlegt, hier etwas zu posten ...
Das ist mir zumindest in Ubuntu 14.04, 16.04 und Mac OS X passiert.
:set list
verrät es nicht.
Ich verwende ein französisch-kanadisches Tastaturlayout, dh das Klammerzeichen wird durch Drücken von Alt + `erstellt
Ich habe es sehr satt, Probleme zu verursachen, es ist selten genug, dass ich es immer wieder vergesse.
Wenn Sie mir nicht sagen können, warum dies so ist, wäre eine Art Konfiguration, mit der dieses Zeichen auf eine offensichtliche Weise hervorgehoben wird, eine geeignete Antwort und eine echte Hilfe bei diesem Problem.
quelle
Antworten:
Andere haben bereits Workarounds bereitgestellt, aber ich wette, Sie drücken versehentlich die Taste Alt+ , um den Grund dafür zu ermitteln Space.
Ich benutze Xubuntu selbst mit dem finnischen Tastaturlayout mit 105 Tasten. Tippen
{
bedeutet für mich also, AltGr+ zu drücken 7. Ich habe gerade einen Schnelltest in xfce4-terminal (auf der Bash-Befehlszeile) durchgeführt, und das Drücken von AltGr+ Spaceerzeugt tatsächlich ein Leerzeichen (U + 00A0).Ich wette, was passiert, ist, dass Sie die AltTaste drücken, bevor Sie die Klammer drücken. Manchmal geschieht dies, bevor Sie die Leertaste drücken und ein nicht unterbrechendes Leerzeichen erzeugen. Und da es wie ein normaler Raum aussieht , merkt man nicht, dass es passiert ist, bevor etwas auf mysteriöse Weise kaputt geht, was es für Sie schwierig macht, das Geschehen zu bemerken und es daher auch schwierig macht, diese Gewohnheit zu verlernen.
quelle
/usr/share/X11/xkb/symbols/us
), nachdem Sie den Anrufsetxkbmap us
oder eine andere Sprache Ihrer Wahl eingestellt habenSie können einen automatischen Befehl hinzufügen, der beim Speichern bestimmter Dateitypen nicht unterbrechende Leerzeichen durch normale ersetzt, z. indem du so etwas in dein vimrc schreibst:
Sie können es optimieren, indem Sie weitere Dateitypen hinzufügen oder eine Markierung setzen und nach dem Ersetzungsvorgang dorthin zurückkehren. Andernfalls gelangen Sie zum Anfang der letzten Zeile, in der eine Ersetzung vorgenommen wurde.
quelle
Die
'listchars'
Option bietet eine Möglichkeit, um die'list'
Anzeige von nicht unterbrechenden Leerzeichen zu ermöglichen. Es ist nicht standardmäßig festgelegt, daher möchten Sie es wahrscheinlich hinzufügen.quelle
vimrc
sie tatsächlich hervorgehoben, während Sie sie eingeben .ja, das ist wahrscheinlich alt + space, passiert mir oft, wenn ich den Pipe-Operator benutze:
Wenn Sie die Alt-Taste zu lange gedrückt halten, wird ein nicht unterbrechendes Leerzeichen erzeugt, nachdem die Pipe und die Bash versucht haben, den Befehl "grep" zu finden und Ihnen dann mitzuteilen, dass grep nicht gefunden wurde.
Auf Macos gab es einen Trick, um die Tastaturbelegung zu ändern. Jedes Mal, wenn Sie ein nicht unterbrechendes Leerzeichen einfügen, wird es durch ein reguläres ersetzt. Soweit ich mich erinnere, wird die Tastaturbelegung für die gesamte Tastatur geändert, sodass Ihr Problem in allen Anwendungen behoben wird.
quelle