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


20

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

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

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

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

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

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

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

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

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

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


Michael이 제안한대로 키 바인딩을 변경할 수 있습니다. superuser.com/a/142573
user12125

이와 같은 크랩은 마침내 레이아웃을 스웨덴어에서 미국으로 영구적으로 전환 한 이유입니다. 나는 재미있는 å, ä 및 ö 문자를 입력하는 것보다 영어 + C + Perl + Bash + Vim을 입력하는 데 더 많은 시간을 할애합니다. 이들은 작성 키를 사용하여 쉽게 생성됩니다.
파이프

답변:


24

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

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

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


Oooh 나는 내일 직장에서 이것을 시도 할 것입니다. 나는 항상 내 중괄호 앞에 공백을 넣습니다. 때때로 너무 일찍 Shift 키에 손가락을 대는 것이 좋습니다.
Sarumanatee

2
@Sarumanatee : Linux에서는 실제로 nbsp 문자를 모두 비활성화 할 수 있습니다. 아마도 우분투의 키보드 관리자도 옵션을 가지고있을 것입니다. 그렇지 않은 경우, /usr/share/X11/xkb/symbols/us전화를 미세 조정 setxkbmap us하거나 원하는 언어를 선택한 후 키보드 맵을 직접 조정할 수 있습니다 (시스템에서 한 줄을 삭제하면 키맵이됩니다 )
unperson325680

@progo 예. 저는 지금 macos를 사용하고 있으며 Karabiner를 사용하여 키보드의 가장 왼쪽 아래가 "fn"이기 때문에 키보드 레이아웃을 미세 조정할 수 있습니다. 당신은 저에게 체크인하도록 영감을 주었으며, 모든 비파괴 공간을 일반 공간으로 변경할 수있는 옵션이 있습니다
Sarumanatee

karabiner 옵션은 nbsp : option + space 및 option + shift + space를 만드는 명령을 표시하므로이 옵션은 @Ilmari Karonen의 제안을 확인합니다. 그것은 밝혀졌지만, 결국에는 vim과 전혀 관련이 없었습니다!
Sarumanatee

Ilmari Karonen이 옳으므로 이것은 설명에 대한 것이 아니라 내 해결 방법을 설명하는 것입니다. 비 공백 공간을 오류 강조 그룹에 연결하는 구문 일치를 추가하여 일반 공간과 눈에 띄게 다릅니다. 소프트 하이픈과 비-하이픈 하이픈도 마찬가지입니다. 코드와 달리 텍스트에서 의도적으로 이들을 모두 사용하기 때문에 두 개의 다른 강조 그룹에 연결됩니다.
bpj

19

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

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

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


오 영리 해요. 자주 발생하지 않기 때문에 추진 장소가 마음에 들지 않으며 디버깅 시간을 보내는 것보다 성가신 일이 아닙니다!
Sarumanatee

13

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

set listchars+=nbsp:‗

실제로 도움이됩니다. 그래도 nbsp 문자를 강조 표시하는 방법을 찾아보고 입력 할 때이를 파악하려고합니다. : o
Sarumanatee

2
@Sarumanatee 줄을 줄에 추가하면 vimrc실제로 입력 할 때 강조 표시합니다.
텀블러 41

1

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

cat xyz.txt | grep abc

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

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


Alt + 스페이스는 Vim과 관련없습니다 . 기본적으로 (사용자 매핑 없음) 대부분의 시스템에서 alt + space는 Esc를 포함하는 일부 이스케이프를 생성하여 Vim에서 삽입 모드를 종료합니다. 그리고 그것은 한판 승부입니다. 깨지지 않는 공간은 시스템의 일부 입력 버스 또는 입력 관리자의 결과이며 Vim / Gvim은이를 보지 못합니다.
grochmal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.