중괄호를 열기 전에 실수로 휴식 공간을 만들지 않으려면 어떻게해야합니까? 전에 일반 공간

나는 이것이 이상한 질문이라는 것을 알고 있으며, 이것이 게시하기에 적합한 포럼이 아닐 수도 있습니다. 그러나 이것은 몇 년 동안 문제가되어 왔습니다.

때때로, 한 달에 한 번, 프로그램 할 때 중괄호를 열기 전에 일반 공간 대신 휴식 공간을 소개합니다 .

내가 글을 쓸 때 말하자 () {

이것은 신비한 보풀 버그로 이어집니다. 적용되지 않는 CSS 조항. 내가 이것을 기억할 때까지

내가 아는 한, 이것은 vim에서만 발생하지만 내 주요 편집기이기 때문에 다른 소프트웨어에서는 결코 발생하지 않았을 것입니다. 그러나 저와 같은 키보드 레이아웃을 사용하더라도 마지막 직장에서 내 동료 중 누구도 그 문제를 경험하지 못했습니다. 나는 정기적으로 vim을 사용하는 유일한 사람이므로 여기에 게시하는 이유는 …

이것은 적어도 우분투 14.04, 16.04 및 mac os x에서 나에게 발생했습니다.

:set list 그것을 공개하지 않습니다.

프랑스어-캐나디언 키보드 레이아웃을 사용하고 있습니다. 중괄호 문자는 alt +`

나는 이것이 문제를 일으키는 것에 지쳐서 너무 자주 잊어 버린다.

왜 이런 일이 계속 발생하는지 알 수 없다면, 어떤 종류의 명백한 방식으로 해당 문자를 강조 표시하는 일종의 구성이 적절한 대답이며 실제로이 문제에 도움이 될 것입니다.



답변

다른 사람들은 이미 해결 방법을 제공했지만 그 이유는 실수로 Alt+를 누르는 것 Space입니다.

105 키 핀란드어 키보드 레이아웃과 함께 Xubuntu를 사용하고 있으므로 입력 {하면 AltGr+를 누르는 것을 의미 7합니다. 방금 xfce4 터미널 (bash 명령 줄에서)에서 빠른 테스트를 수행했으며 AltGr+를 누르면 Space중단 없음 공간 (U + 00A0)이 생성됩니다.

나는 Alt중괄호를 입력 할 것으로 예상 하여 키를 누르고 있다는 사실에 베팅 하고 때로는 스페이스 바를 누르기 전에 발생하여 비 끊김없는 공간을 생성합니다. 그리고 그것이 일반적인 공간과 똑같아 보이기 때문에 , 당신은 그것이 불가사의하게 부서지기 전에 일어난 것을 깨닫지 못합니다.


답변

예를 들어, 특정 파일 형식을 저장할 때 비 공백 공백을 일반 공백으로 바꾸는 자동 명령을 추가 할 수 있습니다. vimrc에 다음과 같은 것을 넣으십시오.

augroup RemoveSpaces
  autocmd!
  autocmd BufWritePre *.css silent! :%s/\%u00A0/ /g
augroup end

더 많은 파일 형식을 추가하거나 마크를 설정하고 교체 작업 후에 다시 표시하여 파일을 조정할 수 있습니다. 그렇지 않으면 교체가 이루어진 마지막 줄의 시작 부분으로 이동합니다.


답변

'listchars'옵션은 'list'공백이 아닌 공간 을 표시 하는 수단을 제공 합니다. 기본적으로 설정되어 있지 않으므로 추가하고 싶을 것입니다.

set listchars+=nbsp:‗

답변

예, 아마도 alt + space 일 것입니다. 파이프 연산자를 사용할 때 나에게 많은 일이 발생합니다.

cat xyz.txt | grep abc

Alt 키를 너무 오래 누르고 있으면 파이프 이후에 끊기 공간이 생기고 bash는 “grep”명령을 찾은 다음 grep을 찾을 수 없다는 메시지를 표시합니다.

macos에서는 키 맵을 변경하는 트릭이 있었으므로 비 공백 공간을 삽입 할 때마다 정기적으로 변환 / 교체됩니다. 내가 기억하는 한, 키 맵은 전체 키보드에 대해 변경되므로 모든 응용 프로그램의 문제를 해결합니다.