Zdaję sobie sprawę, że to dziwne pytanie i może to nawet nie być odpowiednie forum do opublikowania go. Ale to był problem od kilku lat.
Od czasu do czasu, powiedzmy raz w miesiącu, kiedy programuję, wprowadzam spację No-Break zamiast zwykłej spacji, zanim otworzę nawias klamrowy.
Tak się dzieje, powiedzmy, kiedy piszę () {
Prowadzi to do tajemniczych robaków. Klauzule CSS, które nie mają zastosowania. Dopóki nie zapamiętam, to może być to.
O ile mi wiadomo, dzieje się tak tylko w vimie, ale ponieważ jest to mój główny edytor, może nigdy nie zdarzyć się w innym oprogramowaniu. Ale żaden z moich współpracowników w moich ostatnich pracach nigdy nie miał tego problemu, mimo że używają tego samego układu klawiatury co ja. Jednak jestem jedynym, który regularnie korzysta z vima, dlatego postanowiłem tutaj pisać ...
Zdarzyło mi się to przynajmniej w Ubuntu 14.04, 16.04 i Mac OS X.
:set list
nie ujawnia tego.
Używam francuskiego układu klawiatury Canadien, co oznacza, że znak nawiasu klamrowego jest wykonywany przez naciśnięcie Alt + `
Jestem bardzo zmęczony tym, że powodują problemy, dość rzadko zapominam o tym.
Jeśli nie możesz mi powiedzieć, dlaczego tak się dzieje, to jakaś konfiguracja podkreślająca tę postać w jakiś oczywisty sposób byłaby odpowiednią odpowiedzią i naprawdę pomogłaby w rozwiązaniu tego problemu.
źródło
Odpowiedzi:
Inni już udostępnili obejścia, ale jeśli tak się dzieje, założę się, że przypadkowo naciskasz Alt+ Space.
Sam używam Xubuntu z 105-klawiszowym układem fińskiej klawiatury, więc dla mnie pisanie
{
oznacza naciśnięcie AltGr+ 7. Właśnie zrobiłem szybki test na xfce4-terminalu (w linii poleceń bash), a naciśnięcie AltGr+ Spacerzeczywiście tworzy przestrzeń bez przerw (U + 00A0).Założę się, że to, co się dzieje, polega na tym, że naciskasz Altklawisz w oczekiwaniu na wpisanie nawiasu klamrowego, a czasami dzieje się to zanim faktycznie naciśniesz spację, tworząc niełamliwe miejsce. A ponieważ wygląda identycznie jak normalna przestrzeń, nie zdajesz sobie sprawy, że stało się to, zanim coś tajemniczo się zepsuło, co utrudnia zauważenie, że tak się dzieje, a tym samym trudne jest oduczenie tego nawyku.
źródło
/usr/share/X11/xkb/symbols/us
) po dostrajanie połączeniasetxkbmap us
lub cokolwiek językiem preferencjamiMożesz dodać komendę automatyczną, która zastępuje niełamliwe spacje zwykłymi po zapisaniu określonych typów plików, np. umieszczając coś takiego w swoim vimrc:
Możesz go ulepszyć, dodając więcej typów plików lub ustawiając znak i powracając do niego po operacji zamiany, w przeciwnym razie zostaniesz przeniesiony na początek ostatniego wiersza, w którym dokonano zamiany.
źródło
Ta
'listchars'
opcja umożliwia'list'
wyświetlanie nienaruszających się spacji. Nie jest domyślnie ustawiony, więc prawdopodobnie chcesz go dodać.źródło
vimrc
, w rzeczywistości podświetli je podczas pisania.tak, to prawdopodobnie alt + spacja, często mi się zdarza, gdy używam operatora potoku:
jeśli przytrzymasz klawisz Alt zbyt długo, utworzy on nieprzerwaną spację po potoku, a bash spróbuje znaleźć polecenie „grep”, a następnie powie, że grep nie został znaleziony.
na komputerach Mac istniała sztuczka polegająca na zmianie mapy klawiszy, więc za każdym razem, gdy wstawisz niełamliwe miejsce, zostanie ono przekonwertowane / zastąpione zwykłym. o ile pamiętam, mapa klawiszy została zmieniona dla całej klawiatury, więc naprawia twój problem we wszystkich aplikacjach.
źródło