Je suis conscient que c'est une question étrange, et ce n'est peut-être même pas le bon forum pour la poster. Mais cela pose problème depuis plusieurs années.
De temps en temps, disons une fois par mois, lorsque je programme, j'introduis un espace No-Break au lieu d'un espace régulier, avant d'ouvrir une accolade.
Cela arrive, disons quand j'écris () {
Cela conduit à de mystérieux insectes pelucheux. Clauses CSS qui ne s'appliquent pas. Jusqu'à ce que je me souvienne que ce pourrait être ça.
Pour autant que je sache, cela ne se produit que dans vim, mais comme c'est mon éditeur principal, cela ne s'est peut-être jamais produit dans d'autres logiciels. Mais aucun de mes collègues de travail dans mes derniers emplois n'a jamais eu ce problème, même s'ils utilisent la même disposition de clavier que moi. Je suis le seul à utiliser vim régulièrement, c'est pourquoi j'ai pensé à poster ici ...
Cela m'est arrivé au moins dans Ubuntu 14.04, 16.04 et Mac OS X.
:set list
ne le révèle pas.
J'utilise une disposition de clavier franco-canadienne, ce qui signifie que le caractère d'accolade se fait en appuyant sur alt + `
Je suis très fatigué de ce qui cause des problèmes, c'est assez rare que j'oublie toujours.
Si vous ne pouvez pas me dire pourquoi cela continue, une sorte de configuration pour mettre en évidence ce personnage d'une manière évidente serait une réponse appropriée et aiderait vraiment à résoudre ce problème.
la source
Réponses:
D'autres ont déjà fourni des solutions de contournement, mais quant à la raison pour laquelle cela se produit, je parie que vous appuyez accidentellement sur Alt+ Space.
J'utilise Xubuntu avec la disposition du clavier finlandais à 105 touches, donc pour moi, taper
{
signifie appuyer sur AltGr+ 7. Je viens de faire un test rapide dans xfce4-terminal (sur la ligne de commande bash), et appuyer sur AltGr+ Spaceproduit en effet un espace sans coupure (U + 00A0).Je parie que ce qui se passe, c'est que vous appuyez sur la Alttouche en prévision de taper l'accolade, et parfois cela se produit avant d'appuyer sur la barre d'espace, produisant un espace insécable. Et comme il semble identique à un espace normal, vous ne réalisez pas qu'il s'est produit avant que quelque chose ne se brise mystérieusement, ce qui rend difficile pour vous de le remarquer et donc aussi difficile de désapprendre cette habitude.
la source
/usr/share/X11/xkb/symbols/us
) après avoir peaufiné l'appelsetxkbmap us
ou la langue de votreVous pouvez ajouter une autocommande qui remplace les espaces insécables par des espaces réguliers lors de l'enregistrement de types de fichiers particuliers, par exemple. en mettant quelque chose comme ça dans votre vimrc:
Vous pouvez le modifier en ajoutant plus de types de fichiers ou en définissant une marque et en y retournant après l'opération de remplacement, sinon vous serez propulsé au début de la dernière ligne où un remplacement a été effectué.
la source
L'
'listchars'
option permet d''list'
afficher des espaces insécables. Il n'est pas défini par défaut, vous souhaiterez probablement l'ajouter.la source
vimrc
elle les mettra en surbrillance lorsque vous les taperez .oui, c'est probablement alt + espace, ça m'arrive beaucoup quand j'utilise l'opérateur de pipe:
si vous maintenez la touche alt trop longue, cela créera un espace insécable après que le pipe et bash essaieront de trouver une commande "grep" puis vous diront que grep n'a pas été trouvé.
sur macos, il y avait une astuce pour changer le clavier, donc chaque fois que vous insérez un espace insécable, il sera converti / remplacé par un régulier. pour autant que je m'en souvienne, le clavier est modifié pour l'ensemble du clavier, il résout donc votre problème dans toutes les applications.
la source