MacVim이 다른 모든 호출에서 다르게 시작하는 이유는 무엇입니까?


13

나는 오늘 MacBook에서 일부 작업을 수행하기 위해 앉았을 때 어떤 시점에서 최근에 .gvimrc설정 과 관련하여 문제가 생겼다는 것을 알았습니다. ). 호기심, 나는 verbose set columns?창이 분명히 180 열 너비 가 아니더라도 "180, ~ / .gvimrc에서 마지막 세트"라고 말 하려고 시도했습니다 . set columns=180창을 예상 너비로 복원했습니다.

RC 파일의 일반적인 디버깅 및이 분화 후, 나는 비정상적인 것을 발견했습니다. 이것이 적용되지 않는 내 열 크기와 관련이 있는지 확실하지 않으며 궁금한 점이 있거나 알아낼 수 없습니다.

내가 실행 mvim -u NONE -c "set columns=100"하면 다음과 같은 창이 나타납니다. mvim 1

정확히 같은 명령을 다시 실행 하면 다음과 같은 결과를 얻습니다. mvim 2

verbose set co?두 경우 모두 "-c 인수에서 마지막으로 설정 됨"으로 표시됩니다. 실행 명령을 반복하면 창 상태가 번갈아 나타납니다.

나는 .viminfo달리기 사이에서 핵무기 를 시도했다 . 효과가 없습니다.

MacVim 스냅 샷 74를 지금 사용하고 있는데,이 작업이 시작될 때 이전 버전을 사용하고 있었기 때문에 버전 관리 만되었는지 확인했습니다. 10.10.3을 사용하고 있으며이 문제는 OS 업데이트 (최근에 한 번만 발생)의 결과로 나타난 MacVim 관련 버그 때문일 수 있습니다. 그러나 아내의 랩톱에 동일한 OS 버전을 실행하는 MacVim을 설치하면 동작이 재현되지 않습니다.

나는 길을 잃었다. 이 행동을 일으키는 원인은 무엇입니까?


편집 : 디버깅을 계속 한 후에 랩톱에 연결된 외부 모니터가있는 경우에만이 방법을 재현하는 것으로 나타났습니다. 이것은 내가 일종의 버그라고 믿게합니다.

답변:


16

몇 시간 동안 MacVim 코드베이스를 분리 한 후 왜 이런 일이 발생하는지 알 수 있습니다.

MacVim이 시작되면 이전에 저장된 창 위치를 읽고 NSUserDefaults해당 위치를 복원하려고합니다. 창은 아직 표시되지 않았으며 원점은 항상 '기본'화면에있는 일부 (OS 선택 가능) 기본값입니다. 창의 이전 위치가 다른 모니터에있는 경우, 창의 위치를 변경 하면 "크기 조정 된"이벤트가 트리거됩니다 (해당 "크기 조정"이벤트가 없기 때문에 10.10.3에서는 새로운 것이거나 버그 일 수 있습니다) 생성됨).

이로 인해 MacVim은 Vim 백엔드의 크기를 조정하려고 시도하지만 크기 조정이 올바르게 구성되는 데 사용되는 상태에 대한 프로세스 실행이 너무 이릅니다. 따라서 MacVim은 Vim 자체가 사실상 기본값으로 크기를 조정하도록 요청하므로, 다음에 MacVim이 Vim 백엔드에서 크기 조정에 대한 응답을받을 때 창이 축소됩니다 (MacVim은 창 크기를 느리게 조정합니다).


편집 : 이 변경 사항은 버그를 수정 생각합니다. 창 크기가 창을 표시 할 때까지 Vim 백엔드로 전파되지 않도록합니다.


1
링크가 끊어졌습니다. 흥미로워 서 수치 스럽습니다. (또한 : "스펠링"이라는 단어 사용을 좋아합니다.) : D
Wildcard

@Wildcard 나는 로컬 브랜치에서 커밋 대신에 만든 PR을 가리 키도록 링크를 업데이트했습니다 (MacVim의 메인 저장소에 커밋 액세스 할 때 삭제했습니다).
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.