"변경 사항 저장" 모달 대화 상자의 "저장하지 않고 닫기" 사용의 유래, 누락된 키보드 가속기 및 이러한 대화 상자와 상호 작용하는 방법

"변경 사항 저장" 모달 대화 상자의 "저장하지 않고 닫기" 사용의 유래, 누락된 키보드 가속기 및 이러한 대화 상자와 상호 작용하는 방법

Windows에서 왔기 때문에 저는 "예/아니요/취소" 옵션과 "Y" 및 "N"을 키보드 가속기(단축 키)로 제공하는 매우 일반적인 "변경 사항 저장" 모달 대화 상자에 매우 익숙합니다.

Linux에서는 저장되지 않은 문서를 닫은 다음 "N"을 입력하여 대화 상자를 닫으려고 하는 경우가 많습니다. 하지만 작동하지 않습니다. 모드가 다를 뿐만 아니라("저장하지 않고 닫기"와 "아니요") 가속기가 전혀 없는 것 같습니다.

나는 Sublime Text에서 이것을 시도했습니다.

여기에 이미지 설명을 입력하세요.

자두보솜:

여기에 이미지 설명을 입력하세요.

편집하다:

여기에 이미지 설명을 입력하세요.

LibreOffice 작성자:

여기에 이미지 설명을 입력하세요.

이것이 Linux에서 이러한 유형의 대화에 대한 일반적인 패러다임입니까? 그 기원은 무엇입니까? GTK에서 제공하는 대화 상자인가요?

매우 일반적인 대화 상자의 경우 매우 비우호적이라는 것을 알았습니다. 어느 버튼에 포커스가 있는지 살펴보려면 탭을 사용해야 합니다. 사용된 테마에 따라 이것이 항상 명확한 것은 아닙니다.

왜 가속기가 없나요? 모달 대화 상자에서는 지원되지 않나요?

나는 그것에 대해 생각할 필요 없이 키보드를 통해 내 작업 전체를 대기열에 넣을 수 있도록 일반적인 모달 패러다임(적어도 GTK의 경우)에 익숙해지려고 노력하고 있습니다. 이 예제 세트의 경우 "탭, 엔터"로 저장하지 않고 닫고 닫는 방식인 것 같습니다.


Sublime Text가 Windows에서는 예상되는 Yes/No/Cancel 대화 상자를 사용하고 Linux에서는 저장/취소/저장 없이 닫기 대화 상자를 사용한다는 점이 흥미롭습니다(다른 앱과 마찬가지로). 나는 이것이 반드시 긍정적인 결정이었는지 의심스럽다.

답변1

이 대화 상자는 실제로 Gtk에서 제공됩니다.

가속기는 기본적으로 표시되지 않지만 Alt누르고 있으면 표시됩니다. Gedit에서는 각각 w"저장하지 않고 닫기", c"취소" 및 s"다른 이름으로 저장..."에 사용됩니다. Esc취소 및 저장을 사용할 수도 있습니다 Enter.

답변2

나는 GTK/GNOME이 Apple macOS와 그 조상들로부터 꽤 많은 휴먼 인터페이스 디자인 지침을 차용했다고 믿습니다.

내 생각에 Mac의 대화창에는 매우 엄격한 디자인 규칙이 있습니다.

  • Enter이는 항상 "기본/안전한 작업 수행"("저장" 또는 "다른 이름으로 저장")에 대한 가속기입니다. 귀하의 예에서는 "보편적 예"와 약간 비슷합니다. 저장/다른 이름으로 저장 버튼의 테두리가 두꺼워지면 이것이 사실임을 나타냅니다.
  • Esc이는 항상 "중지, 결국에는 이것을 원하지 않습니다" 버튼입니다. 귀하의 예에서는 "취소"에 해당하는 버튼입니다. 즉, "유니버설 네거티브(Universal Negative)" 가속기입니다.
  • ..그리고 "저장하지 않고 닫기"는 파괴적인 옵션(데이터 손실을 초래함)이므로 실제로는~해야 한다다른 것보다 선택하기가 더 어렵습니다. 따라서 단일 범용 가속기를 얻을 수 없습니다.

당신은 읽고 싶을 수도 있습니다클래식 매킨토시 휴먼 인터페이스 가이드문서 또는 최소한 대화 상자와 관련된 부분(피드백과 대화PDF는 33페이지부터 시작하고 6장 전체 대화 상자는 199페이지부터 시작됩니다. ) GTK가 약간의 수정을 거쳤음에도 불구하고 이 오래된 문서는 UI 디자이너가 추구할 수 있는 디자인 철학을 매우 명확하게 설명합니다.

그놈에는 자체 휴먼 인터페이스 지침도 있습니다.특히, 가속기(라고 불리는)를 명확하게 정의합니다.액세스 키Alt용어상) 누르고 있을 때만 나타납니다.

답변3

~에 대한기원나는 고전적인 UNIX 편집기 "vi"(및 "vim")의 몇 가지 예를 제시했습니다.

vim에서 "quit" 명령 "q" 다음에:

   E37: No write since last change (add ! to override)

이는 빨간색(!) 하단 라인에 표시됩니다. 이제 q!(이름 없는 "버퍼"를 실제로 종료 - 아직 파일이 없음) 또는 w my file("내 파일" 파일로 쓰기( w! my file덮어쓰기)) 원하는지 결정해야 합니다 q. 아니면 계속하세요. 모달이 아니고 단지 사라지는 줄일 뿐입니다.

(기존 파일의 경우 wq다음 위치에 저장됩니다.기존의파일을 만든 후 종료)

보다 고전적인 "vi"(1976년(!) Wikipedia에 따르면):

No write since last change (:quit! overrides) 

q는 여기에 표시되지 않습니다방법사직하다. 에서 찾을 수 있습니다 man ex.

quit abbr: q
         Causes ex to terminate.  No automatic write of the editor buffer
         to a file is performed.  However, ex issues a warning message [...]

아니면 vim에서h[elp] quit

:q[uit]      Quit the current window.  Quit Vim if this is the last
             window.  This fails when changes have been made [...]

Control-C는 다음을 제공합니다(vim에서 다시):

Type  :qa!  and press <Enter> to abandon all changes and exit Vim

이 글을 처음 읽는다면 잘못된 형태의 모욕처럼 느껴질 것입니다."qa"라고 입력해 이 바보야. 실제로 의미하는 바는 세미콜론은 명령 모드를 나타내고, qa는 모든 파일/창 종료를 나타내며, "!"는 강제 종료를 의미합니다.

편집자를 떠나는 것은 결코 쉽지 않으며 심지어 가능하지도 않습니다. 귀하의 예도 이를 증명합니다.

Alt첫 번째 답변( 표시된 키)이 주요 문제를 해결하게 되어 기쁩니다 .

"save (as)(...)" 버튼 자체도 매우 일관성이 없습니다. sublime과 libreoffice는 "New" 파일이나 "Untitled 1" 문서에 직접 쓰는 것처럼 보입니다. Pluma에는 물방울 무늬가 없습니다! 아, 알겠습니다. "저장되지 않은 문서 1"이라고 합니다. 따라서 "다른 이름으로 저장"은 "다른 이름으로 저장"이 아니라 "다른 이름으로 저장..."을 의미합니다. 누가 그의 폴더에 그런 역설을 원하겠습니까?

나는 말하고 싶다: 당신은 정말로 그것을 "리눅스"라고 부를 수 없다해로운. 모두가 유용한 것을 만들려고 노력하고 있습니다.데스크탑 환경GUI에서실행 대상리눅스.

키보드에서 내 작업 전체를 대기열에 넣습니다.

흠, 터미널에서 vim을 사용하는 것이 좋을 것 같습니다 ;)

이제 vim을 더 많이 만들 수 있는지 살펴 보겠습니다.친숙한. 빨간색 배경 오류 줄에 있어서는 안 됩니다...

관련 정보