web-dev-qa-db-ja.com

「変更を保存」モーダルダイアログでの「保存せずに閉じる」の使用の起源、キーボードアクセラレータの欠如、およびこれらのダイアログの操作方法

Windowsから来た私は、キーボードアクセラレータ(ショートカットキー)として「Y」と「N」が提供される「はい/いいえ/キャンセル」オプションを提供する非常に一般的な「変更の保存」モーダルダイアログに非常に慣れています。

Linuxでは、保存されていないドキュメントを閉じてから、「N」と入力してダイアログを閉じようとすることがよくありますが、これは機能しません。パラダイムが異なるだけでなく(「保存せずに閉じる」と「いいえ」)、アクセラレーターが存在しないように見えます。

私はSublimeTextで試しました:

enter image description here

プラム:

enter image description here

Gedit:

enter image description here

LibreOffice Writer:

enter image description here

これは、Linuxでのこのタイプのダイアログの通常のパラダイムですか?その起源は何ですか? GTKが提供するダイアログですか?

非常に一般的なダイアログの場合、非常に不親切だと思います。代わりに、タブを使用して、どのボタンにフォーカスするかをステップスルーする必要があります。そして、これは使用されるテーマによっては必ずしも明白ではありません。

そして、なぜアクセラレータがないのですか?モーダルダイアログではサポートされていませんか?

私は(少なくともGTKの)一般的なモーダルパラダイムに慣れようとしているので、それについて考える必要はなく、キーボードから完全にアクションをキューに入れるだけです。このサンプルセットでは、「タブ、入力」が保存せずに閉じて閉じる方法のようです。


Sublime TextがWindowsでは期待される「はい/いいえ/キャンセル」ダイアログを使用し、Linuxでは「保存せずに閉じる/キャンセル/保存」ダイアログを使用するのは興味深いと思います(他のアプリケーションと同様)。これは積極的な決断だったのではないかと思います。

2
Zhro

GTK/GNOMEは、Apple macOSとその祖先からヒューマンインターフェイス設計ガイドラインのかなりの部分を借りていると思います。

Macには、ダイアログウィンドウの非常に強力なデザインルールがあったと思います。

  • Enter 常に「デフォルト/安全なことを行う」、つまり「保存」または「名前を付けて保存...」のアクセラレータになります。例では、一種の「普遍的な肯定」です。 [保存]/[名前を付けて保存]ボタンの境界が太いのは、これが当てはまるというヒントです。
  • Esc 常に「停止、結局これは必要ありません」ボタンであり、例の「キャンセル」に相当するものを呼び出します。言い換えれば、「ユニバーサルネガティブ」アクセラレーターです。
  • ..そして、「保存せずに閉じる」は破壊的なオプションであるため(データが失われる)、実際にはよりも選択が難しいはずです。その他。したがって、どちらのユニバーサルアクセラレータも取得できません。

従来のMacintoshヒューマンインターフェイスガイドライン ドキュメント、または少なくともダイアログボックスに関連する部分(フィードバックとダイアログ)を読むことをお勧めします。 )PDFの33ページから始まり、ダイアログボックスの第6章全体、199ページから始まります。)GTKは特定の変更を加えましたが、この古いドキュメントは、UI設計者が持つ可能性のある設計哲学の種類を非常に明確に説明しています。目指して。

GNOMEには独自のヒューマンインターフェイスガイドラインもあります。 特に、アクセラレータ(用語ではアクセスキーとして知られています)を明示的に定義しています。 )は次の場合にのみ表示されます Alt 押し下げられます。

3
telcoM

このダイアログは確かにGtkによって提供されています。

アクセラレータがあります。デフォルトでは表示されませんが、 Alt 下にそれらが表示されます。 Geditでは、 w 「保存せずに閉じる」の場合、 c 「キャンセル」の場合、および s 「名前を付けて保存...」の場合も使用できます Esc キャンセルするには、 Enter 保存する。

4
Stephen Kitt

originsについて古典的なUNIXエディタ「vi」(および「vim」)の例をいくつか挙げます。

Vimでは、「quit」コマンド「q」の後:

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

これは、赤い(!)ボトムラインに表示されます。ここで、q!(名前のない「バッファ」を本当に終了します-まだファイルはありません)、またはw my file(ファイル 'my file'(w! my file上書き))そしてq。または、続行します。モーダルではなく、線が消えるだけです。

(既存のファイルでは、既存ファイルに保存してから終了するのはwqです)

さらに古典的な「vi」(1976(!)はウィキペディアを言います):

No write since last change (:quit! overrides) 

ここでは、q means quitという表示はありません。 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」ファイルまたは「Untitled1」ドキュメントに直接書き込んでいるようです。プルームにはドットがありません!なるほど、「未保存のドキュメント1」と呼ばれているので、もちろん「名前を付けて保存」は「そのまま保存」ではなく「名前を付けて保存...」を意味します。誰が彼のフォルダにそのようなパラドックスを望んでいますか?

私が言いたいのは、あなたは本当に「linux」を呼び出すことはできないnfriendly。誰もが便利なデスクトップ環境 GUIで実行中 Linuxをセットアップしようと懸命に努力しています。

アクションを完全にキーボードからキューに入れます。

うーん、ターミナルでvimを使いたいように聞こえます;)

これで、vimをこれ以上作成できないかどうかを確認しますfriendly。それは本当に赤い背景のエラーラインにあるべきではありません...

0
user370539