-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtrouble.texi
1869 lines (1680 loc) · 106 KB
/
trouble.texi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
@c =============================================================
@c = 元 翻 訳: 久野靖@大塚.筑波大学
@c = 加筆修正: 大木敦雄@大塚.筑波大学 = 1998/11/25
@c = 20.4改訂: 大木敦雄@大塚.筑波大学 = 1999/09/12
@c = 20.6改訂: 大木敦雄@大塚.筑波大学 = 2000/03/03
@c =============================================================
@c This is part of the Emacs manual.
@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex
@c @chapter Dealing with Common Problems
@chapter よくある問題への対処 @emph{(2004/03/29)}
@c If you type an Emacs command you did not intend, the results are often
@c mysterious. This chapter tells what you can do to cancel your mistake or
@c recover from a mysterious situation. Emacs bugs and system crashes are
@c also considered.
意図してないEmacsコマンドを打つと、
その結果はわけのわからないものになりがちです。
本章では、まちがいを取り消したり、
わけのわからない状況から復帰する手段について説明します。
また、Emacsのバグやシステムクラッシュについても説明します。
@end iftex
@node Quitting, Command Arguments, Customization, Top
@c @section Quitting and Aborting
@c @cindex quitting
@section 中断とアボート @emph{(2004/03/29)}
@cindex 中断
@table @kbd
@item C-g
@c @itemx C-@key{BREAK} @r{(MS-DOS only)}
@itemx C-@key{BREAK} @r{(MS-DOS のみ)}
Quit: cancel running or partially typed command.
中断する。
動作中のコマンドや打鍵途中のコマンドを取り消す。
@item C-]
@c Abort innermost recursive editing level and cancel the command which
@c invoked it (@code{abort-recursive-edit}).
アボートする。
いちばん内側の再帰編集レベルを強制的に終了し、
その再帰編集レベルを起動したコマンドを取り消す
(@code{abort-recursive-edit})。
@item @key{ESC} @key{ESC} @key{ESC}
@c Either quit or abort, whichever makes sense (@code{keyboard-escape-quit}).
中断かアボートのいずれか意味のあるほうを実行する
(@code{keyboard-escape-quit})。
@item M-x top-level
@c Abort all recursive editing levels that are currently executing.
現在実行中のすべての再帰編集レベルを強制的に終了する。
@item C-x u
@c Cancel a previously made change in the buffer contents (@code{undo}).
バッファの内容に対して行った直前の変更を取り消す(@code{undo})。
@end table
@c There are two ways of canceling commands which are not finished
@c executing: @dfn{quitting} with @kbd{C-g}, and @dfn{aborting} with
@c @kbd{C-]} or @kbd{M-x top-level}. Quitting cancels a partially typed
@c command or one which is already running. Aborting exits a recursive
@c editing level and cancels the command that invoked the recursive edit.
@c (@xref{Recursive Edit}.)
実行を完了していないコマンドを取り消すには、2つの方法があります。
1つは@kbd{C-g}で@dfn{中断}すること、
もう1つは@kbd{C-]}や@kbd{M-x top-level}で
@dfn{アボート}することです。
中断とは、打鍵途中のコマンドや動作中のコマンドを取り消すことをいいます。
アボートとは、再帰編集レベルから抜け出し、かつ、
その再帰編集レベルを起動したコマンドを取り消すことをいいます
(@pxref{Recursive Edit})。
@c @cindex quitting
@cindex 中断
@kindex C-g
@c Quitting with @kbd{C-g} is used for getting rid of a partially typed
@c command, or a numeric argument that you don't want. It also stops a
@c running command in the middle in a relatively safe way, so you can use
@c it if you accidentally give a command which takes a long time. In
@c particular, it is safe to quit out of killing; either your text will
@c @emph{all} still be in the buffer, or it will @emph{all} be in the kill
@c ring (or maybe both). Quitting an incremental search does special
@c things documented under searching; in general, it may take two
@c successive @kbd{C-g} characters to get out of a search
@c (@pxref{Incremental Search}).
@kbd{C-g}での中断は、打鍵途中のコマンドや
不要な数引数を打ってしまったときにとりやめるのに使います。
また、実行途中のコマンドを比較的安全な方法で止めますから、
長時間かかるコマンドをうっかり始めてしまったときにも使えます。
特に、キル操作を中断しても安全です。
テキストは、まだ@emph{すべて}バッファ内にあるか、
または、@emph{すべて}キルリングに入っている
(あるいは、その両方に入っている)からです。
なお、インクリメンタルサーチを中断する場合には、
文字列探索のところで説明してあるように、特別な動作を行います。
一般には、サーチから抜け出すには@kbd{C-g}を2回連打する必要があります
(@pxref{Incremental Search})。
@c On MS-DOS, the character @kbd{C-@key{BREAK}} serves as a quit character
@c like @kbd{C-g}. The reason is that it is not feasible, on MS-DOS, to
@c recognize @kbd{C-g} while a command is running, between interactions
@c with the user. By contrast, it @emph{is} feasible to recognize
@c @kbd{C-@key{BREAK}} at all times. @xref{MS-DOS Input}.
MS-DOSでは、@kbd{C-@key{BREAK}}は@kbd{C-g}と同様に中断として働きます。
MS-DOSでは、コマンドの実行中にユーザーとのやりとりを行う状態にないときには、
@kbd{C-g}を検出できないからです。
これに対して、@kbd{C-@key{BREAK}}はつねに認識@emph{でき}ます。
@xref{MS-DOS Input}。
@findex keyboard-quit
@c @kbd{C-g} works by setting the variable @code{quit-flag} to @code{t}
@c the instant @kbd{C-g} is typed; Emacs Lisp checks this variable
@c frequently and quits if it is non-@code{nil}. @kbd{C-g} is only
@c actually executed as a command if you type it while Emacs is waiting for
@c input. In that case, the command it runs is @code{keyboard-quit}.
@kbd{C-g}はつぎのように動作します。
@kbd{C-g}が打鍵されると変数@code{quit-flag}に@code{t}が設定されます。
Emacs Lispはこの変数を頻繁に調べ、値が@code{nil}以外だと中断処理を行います。
@kbd{C-g}が実際にコマンドとして実行されるのは、
Emacsが入力待ち状態にあるときに@kbd{C-g}を打った場合だけです。この場合,
@code{keyboard-quit} が実行されます.
@c If you quit with @kbd{C-g} a second time before the first @kbd{C-g} is
@c recognized, you activate the ``emergency escape'' feature and return to
@c the shell. @xref{Emergency Escape}.
最初の@kbd{C-g}が認識されないうちに2つめの@kbd{C-g}を打って中断すると、
『緊急脱出』機能を発動したことになりシェルに戻ります。
@xref{Emergency Escape}。
@c @cindex NFS and quitting
@cindex NFSと中断
@c There may be times when you cannot quit. When Emacs is waiting for
@c the operating system to do something, quitting is impossible unless
@c special pains are taken for the particular system call within Emacs
@c where the waiting occurs. We have done this for the system calls that
@c users are likely to want to quit from, but it's possible you will find
@c another. In one very common case---waiting for file input or output
@c using NFS---Emacs itself knows how to quit, but many NFS implementations
@c simply do not allow user programs to stop waiting for NFS when the NFS
@c server is hung.
中断できない場合もありえます。
Emacsがオペレーティングシステムに何かを頼んで待っているときには、
待ち状態を起こしたシステムコールを使ったEmacs側で特別な手当てをしない限り
中断できません。
Emacsでは、ユーザーが中断しそうなシステムコールには
手当てを施してありますが、手当てしていない場所を叩く可能性はあります。
よくあるのは、NFS経由の入出力を待っているときです。
Emacs側ではこれを中断する方法はわかっているのですが、
多くのNFSの実装では、NFSサーバーが固まったときにユーザープログラムが
NFSの待ちを中断することを許していないのです。
@c @cindex aborting recursive edit
@cindex 再帰編集をアボートする
@findex abort-recursive-edit
@kindex C-]
@c Aborting with @kbd{C-]} (@code{abort-recursive-edit}) is used to get
@c out of a recursive editing level and cancel the command which invoked
@c it. Quitting with @kbd{C-g} does not do this, and could not do this,
@c because it is used to cancel a partially typed command @emph{within} the
@c recursive editing level. Both operations are useful. For example, if
@c you are in a recursive edit and type @kbd{C-u 8} to enter a numeric
@c argument, you can cancel that argument with @kbd{C-g} and remain in the
@c recursive edit.
@kbd{C-]}によるアボート(@code{abort-recursive-edit})は、
再帰編集レベルから脱出し、かつ、その再帰編集レベルを
起動したコマンドを取り消すのに使います。
@kbd{C-g}による中断はこのような目的には使えませんし、
このようなことはできません。
というのは、@kbd{C-g}は、ある再帰編集レベルの@emph{中で}
打ちかけたコマンドを取り消すのに使うからです。
どちらの操作も必要なものです。
たとえば、再帰編集中に数引数を入力しようとして@kbd{C-u 8}と打鍵した場合、
@kbd{C-g}で数引数を取り消しても再帰編集に留まったままです。
@findex keyboard-escape-quit
@kindex ESC ESC ESC
@c The command @kbd{@key{ESC} @key{ESC} @key{ESC}}
@c (@code{keyboard-escape-quit}) can either quit or abort. This key was
@c defined because @key{ESC} is used to ``get out'' in many PC programs.
@c It can cancel a prefix argument, clear a selected region, or get out of
@c a Query Replace, like @kbd{C-g}. It can get out of the minibuffer or a
@c recursive edit, like @kbd{C-]}. It can also get out of splitting the
@c frame into multiple windows, like @kbd{C-x 1}. One thing it cannot do,
@c however, is stop a command that is running. That's because it executes
@c as an ordinary command, and Emacs doesn't notice it until it is ready
@c for a command.
コマンド@kbd{@key{ESC} @key{ESC} @key{ESC}}
(@code{keyboard-escape-quit})は、中断かアボートのいずれかを行います。
このキーを使うのは、多くのPCのソフトで@key{ESC}が
『抜け出す』の意味に使われているからです。
@kbd{C-g}と同様に、数引数を取り消したり、
選択したリージョンをクリアしたり、問い合わせ型置換操作から抜け出します。
@kbd{C-]}と同様に、ミニバッファや再帰編集から抜け出します。
また、@kbd{C-x 1}のように、フレームを複数ウィンドウに分割しているのを
やめることもできます。
しかしながら、実行中のコマンドを止めることはできません。
なぜなら、このコマンドは普通のコマンドとして実行されるので、
Emacsがコマンドを読み込む状態にならないとこのコマンドを認識しないからです。
@findex top-level
@c The command @kbd{M-x top-level} is equivalent to ``enough'' @kbd{C-]}
@c commands to get you out of all the levels of recursive edits that you
@c are in. @kbd{C-]} gets you out one level at a time, but @kbd{M-x
@c top-level} goes out all levels at once. Both @kbd{C-]} and @kbd{M-x
@c top-level} are like all other commands, and unlike @kbd{C-g}, in that
@c they take effect only when Emacs is ready for a command. @kbd{C-]} is
@c an ordinary key and has its meaning only because of its binding in the
@c keymap. @xref{Recursive Edit}.
コマンド@kbd{M-x top-level}は、現在入っているすべての再帰編集レベルから
抜け出すのに『十分な』数の@kbd{C-]}と同等です。
@kbd{C-]}は一度に1レベルだけ抜け出すのに対し、
@kbd{M-x top-level}はすべてのレベルを一気に抜け出します。
@kbd{C-]}も@kbd{M-x top-level}も他のコマンドと同様の普通のコマンドですから、
@kbd{C-g}とは違って、Emacsがコマンドを受け付ける状態のときだけ動作します。
@kbd{C-]}は普通のキーであり、キーマップにそのバインディングがあるので
そのように動作するのです。
@xref{Recursive Edit}。
@c @kbd{C-x u} (@code{undo}) is not strictly speaking a way of canceling
@c a command, but you can think of it as canceling a command that already
@c finished executing. @xref{Undo}, for more information
@c about the undo facility.
@kbd{C-x u}(@code{undo})は、正確にいえばコマンドを
取り消すわけではありませんが、
動作を完了してしまったコマンドを取り消すものと考えることができます。
詳しくは @xref{Undo} を参照してください。
@node Lossage, Bugs, Quitting, Top
@c @section Dealing with Emacs Trouble
@section Emacsのトラブルに対する対処 @emph{(2004/03/29)}
@c This section describes various conditions in which Emacs fails to work
@c normally, and how to recognize them and correct them. For a list of
@c additional problems you might encounter, see @ref{Bugs and problems, ,
@c Bugs and problems, efaq, GNU Emacs FAQ}, and the file @file{etc/PROBLEMS}
@c in the Emacs distribution. Type @kbd{C-h F} to read the FAQ; type
@c @kbd{C-h P} to read the @file{PROBLEMS} file.
本節では、Emacsが正常に動作し損なうさまざまな条件と、それらの見分け方、
直し方について説明します。発生しうる問題についてはEmacsに付属している @ref{Bugs and problems, ,
Bugs and problems, efaq, GNU Emacs FAQ} やファイル @file{etc/PROBLEMS} を参照し
てください.FAQは@kbd{C-h F},@file{PROBLEMS}ファイルは@kbd{C-h P} で読むことが
できます.
@menu
* DEL Does Not Delete:: What to do if @key{DEL} doesn't delete.
* Stuck Recursive:: `[...]' in mode line around the parentheses.
* Screen Garbled:: Garbage on the screen.
* Text Garbled:: Garbage in the text.
* Unasked-for Search:: Spontaneous entry to incremental search.
* Memory Full:: How to cope when you run out of memory.
* After a Crash:: Recovering editing in an Emacs session that crashed.
* Emergency Escape:: Emergency escape---
What to do if Emacs stops responding.
* Total Frustration:: When you are at your wits' end.
@end menu
@node DEL Does Not Delete
@c @subsection If @key{DEL} Fails to Delete
@subsection @key{DEL}で削除できない @emph{(2004/03/29)}
@cindex @key{DEL} vs @key{BACKSPACE}
@cindex @key{BACKSPACE} vs @key{DEL}
@cindex usual erasure key
@c Every keyboard has a large key, a little ways above the @key{RET} or
@c @key{ENTER} key, which you normally use outside Emacs to erase the
@c last character that you typed. We call this key @dfn{the usual
@c erasure key}. In Emacs, it is supposed to be equivalent to @key{DEL},
@c and when Emacs is properly configured for your terminal, it translates
@c that key into the character @key{DEL}.
大抵のキーボードにはEmacs外で最後に入力した文字を消すためのキーとして@key{RET}
や @key{ENTER} キーの上あたりにあるキーがあります.このキーを本書では @dfn{通常
削除キー}(the usual erasure key) と呼びます.端末上のEmacsはそのキーを@key{DEL}
キーと同じものとみなし,@key{DEL}に変換します.
@c When Emacs starts up using a window system, it determines
@c automatically which key should be @key{DEL}. In some unusual cases
@c Emacs gets the wrong information from the system. If the usual
@c erasure key deletes forwards instead of backwards, that is probably
@c what happened---Emacs ought to be treating the @key{DELETE} key as
@c @key{DEL}, but it isn't.
Emacs が起動する時にウィンドウシステムを利用していると,自動的に@key{DEL}として
扱うべきキーを決定します.しかし,ある環境ではシステムから誤った情報を受け取って
しまいます.通常削除キーが後ではなく前の文字を消すようであれば,@key{DELETE} キー
を @key{DEL} として扱うように設定しなければなりません.
@c With a window system, if the usual erasure key is labeled
@c @key{BACKSPACE} and there is a @key{DELETE} key elsewhere, but the
@c @key{DELETE} key deletes backward instead of forward, that too
@c suggests Emacs got the wrong information---but in the opposite sense.
@c It ought to be treating the @key{BACKSPACE} key as @key{DEL}, and
@c treating @key{DELETE} differently, but it isn't.
ウィンドウシステムでは通常削除キーは@key{BACKSPACE}と印字されており,他に
@key{DELETE}キーもあります.しかし,@key{DELETE}キーは前ではなく後の文字を削除し
ます.もし逆の動作になっているようであれば,Emacsが判断を誤っています.
@key{BACKSPACE} キーを @key{DEL}キーとして扱うようにしなければなりません.
@c On a text-only terminal, if you find the usual erasure key prompts
@c for a Help command, like @kbd{Control-h}, instead of deleting a
@c character, it means that key is actually sending the @key{BS}
@c character. Emacs ought to be treating @key{BS} as @key{DEL}, but it
@c isn't.
テキスト端末で,通常削除キーが文字を削除するかわりに,@kbd{Control-h}のようにヘ
ルプを表示するようであれば,そのキーは実際には@key{BS}を送っていることになります.
つまり,Emacsは@key{BS}を@key{DEL}として扱うべきなのです.
@c In all of those cases, the immediate remedy is the same: use the
@c command @kbd{M-x normal-erase-is-backspace-mode}. This toggles
@c between the two modes that Emacs supports for handling @key{DEL}, so
@c if Emacs starts in the wrong mode, it should switch to the right mode.
@c On a text-only terminal, if you want to ask for help when @key{BS} is
@c treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also work, if it
@c sends character code 127.
こういった場合,当面の問題は同じです.そのため,@kbd{M-x
normal-erase-is-backspace-mode} が利用できます.このコマンドは2つのモードを切り
替えることができます.もしEmacsが誤ったモードで起動していれば,@key{DEL}を扱うモー
ドにすることで,正しいモードに切り替えることができます.テキスト端末で,@key{BS}
が @key{DEL} として扱われているかどうかを確認したければ, @key{F1} (@kbd{C-?} も
動作するかもしれません)を利用して,127 になっていることを確認します.
sends character code 127.
@findex normal-erase-is-backspace-mode
@c To fix the problem automatically for every Emacs session, you can
@c put one of the following lines into your @file{.emacs} file
@c (@pxref{Init File}). For the first case above, where @key{DELETE}
@c deletes forwards instead of backwards, use this line to make
@c @key{DELETE} act as @key{DEL} (resulting in behavior compatible
@c with Emacs 20 and previous versions):
Emacsを起動時に自動的に問題を修正するためには,以下の行を @file{.emacs}ファイル
(@pxref{Init File}) に追加します.最初の例では@key{DELETE}が後ではなく前の文字を
消す場合に@key{DELETE} を @key{DEL} として扱うようにします (Emacs20以前と同じ動
作になります).
@lisp
(normal-erase-is-backspace-mode 0)
@end lisp
@noindent
@c For the other two cases, where @key{BACKSPACE} ought to act as
@c @key{DEL}, use this line:
他の2例では,@key{BACKSPACE}を@key{DEL}として扱うべきなため,以下を利用します.
@lisp
(normal-erase-is-backspace-mode 1)
@end lisp
@vindex normal-erase-is-backspace
@c Another way to fix the problem for every Emacs session is to
@c customize the variable @code{normal-erase-is-backspace}: the value
@c @code{t} specifies the mode where @key{BS} or @key{BACKSPACE} is
@c @key{DEL}, and @code{nil} specifies the other mode. @xref{Easy
@c Customization}.
Emacsを起動時に問題を修正する他の方法として,変数
@code{normal-erase-is-backspace} をカスタマイズする方法があります.@code{t} であ
れば,@key{BS} や @key{BACKSPACE} を @key{DEL}とみなし, @code{nil} であれば逆に
なります.@xref{Easy Customization}.
@c With a window system, it can also happen that the usual erasure key
@c is labeled @key{BACKSPACE}, there is a @key{DELETE} key elsewhere, and
@c both keys delete forward. This probably means that someone has
@c redefined your @key{BACKSPACE} key as a @key{DELETE} key. With X,
@c this is typically done with a command to the @code{xmodmap} program
@c when you start the server or log in. The most likely motive for this
@c customization was to support old versions of Emacs, so we recommend
@c you simply remove it now.
ウィンドウシステムでは@key{BACKSPACE}と印字されたキーが通常削除キーであり,他に
@key{DELETE} キーも存在し,両方ともが前の文字を削除するということも起こります.
これがおそらく誰(何)かが @key{BACKSPACE} キーを @key{DELETE} としちぇ再定義した
ためです.Xウィンドウシステムではサーバを起動したりログインしたりすると,
@code{xmodmap} によってなされます.この現象を引き起こしているのは古いバージョン
のEmacsをサポートすることです.だから,古いバージョンは削除することをお勧めしま
す.
@node Stuck Recursive
@c @subsection Recursive Editing Levels
@subsection 再帰編集レベル
@c Recursive editing levels are important and useful features of Emacs, but
@c they can seem like malfunctions to the user who does not understand them.
再帰編集レベルはEmacsの重要で有用な機能ですが、
それについて理解していない人にとっては、誤動作に見える可能性があります。
@c If the mode line has square brackets @samp{[@dots{}]} around the parentheses
@c that contain the names of the major and minor modes, you have entered a
@c recursive editing level. If you did not do this on purpose, or if you
@c don't understand what that means, you should just get out of the recursive
@c editing level. To do so, type @kbd{M-x top-level}. This is called getting
@c back to top level. @xref{Recursive Edit}.
モード行のメジャー/マイナモード名を囲む丸括弧の周囲に中括弧
@samp{[@dots{}]}が表示されているときは、再帰編集レベルに入っています。
意図してそうしたのでなかったり、
再帰編集レベルの意味を理解していないのであれば、
再帰編集レベルから抜け出すべきです。
それには@kbd{M-x top-level}と打ちます。
これをトップレベルへの抜け出しと呼びます。
@xref{Recursive Edit}。
@node Screen Garbled
@c @subsection Garbage on the Screen
@subsection 画面上のゴミ @emph{(2004/03/29)}
@c If the data on the screen looks wrong, the first thing to do is see
@c whether the text is really wrong. Type @kbd{C-l} to redisplay the
@c entire screen. If the screen appears correct after this, the problem
@c was entirely in the previous screen update. (Otherwise, see the following
@c section.)
画面上のデータがまちがっているように見えたら、まず最初にすべきことは、
テキストが本当にまちがっているのかどうか調べることです。
@kbd{C-l}と打って画面全体を再描画します。
これで画面が正しそうになるのなら、問題は画面更新にあったのです。
(そうでない場合は、後の章を参照してください)。
@c Display updating problems often result from an incorrect termcap entry
@c for the terminal you are using. The file @file{etc/TERMS} in the Emacs
@c distribution gives the fixes for known problems of this sort.
@c @file{INSTALL} contains general advice for these problems in one of its
@c sections. Very likely there is simply insufficient padding for certain
@c display operations. To investigate the possibility that you have this sort
@c of problem, try Emacs on another terminal made by a different manufacturer.
@c If problems happen frequently on one kind of terminal but not another kind,
@c it is likely to be a bad termcap entry, though it could also be due to a
@c bug in Emacs that appears for terminals that have or that lack specific
@c features.
画面更新の問題は、
使っている端末に対応するtermcapの定義がまちがっている場合が多いです。
Emacsの配布に含まれるファイル@file{etc/TERMS}には、
この種の問題で既知のものに対する修正が入っています。
ファイル@file{INSTALL}には、
この種の問題に対する一般的なアドバイスの節があります。
いちばんありがちなのは、
ある種の画面操作に対するパディング
@footnote{【訳注】端末にとっては無意味で無害な文字を、
(動作が完了するまでの)時間稼ぎのために送出すること。}
が不足している場合です。
この種の問題があるかどうか調べるには、
他のメーカ製の別の端末でEmacsを動かしてみてください。
ある機種の端末では頻繁に問題が起きるのに別の機種の端末では問題がないなら、
termcapの定義がまちがっている可能性があります。
しかし、ある種の機能を有するか欠如している端末で現れる
Emacsのバグである可能性もあります。
@node Text Garbled
@c @subsection Garbage in the Text
@subsection テキスト内のゴミ
@c If @kbd{C-l} shows that the text is wrong, try undoing the changes to it
@c using @kbd{C-x u} until it gets back to a state you consider correct. Also
@c try @kbd{C-h l} to find out what command you typed to produce the observed
@c results.
@kbd{C-l}を実行してもテキストが変ならば、
正しいと思われる状態になるまで、
@kbd{C-x u}を使って変更をもとに戻してみてください。
また、どのコマンドで変になったのか調べるために、
@kbd{C-h l}を試してみてください。
@c If a large portion of text appears to be missing at the beginning or
@c end of the buffer, check for the word @samp{Narrow} in the mode line.
@c If it appears, the text you don't see is probably still present, but
@c temporarily off-limits. To make it accessible again, type @kbd{C-x n
@c w}. @xref{Narrowing}.
バッファの先頭や末尾で大量のテキストが失われているようなら、
モード行に単語@samp{Narrow}が表示されていないか確認してください。
もしそうなら、おそらくテキストは失われているのではなく、
一時的に見えなくなっているのでしょう。
見えるようにするには、@kbd{C-x n w}と打ってください。
@xref{Narrowing}。
@node Unasked-for Search
@c @subsection Spontaneous Entry to Incremental Search
@subsection 自発的なインクリメンタルサーチの開始
@c If Emacs spontaneously displays @samp{I-search:} at the bottom of the
@c screen, it means that the terminal is sending @kbd{C-s} and @kbd{C-q}
@c according to the poorly designed xon/xoff ``flow control'' protocol.
Emacsが画面の最下行に自発的に@samp{I-search:}と表示するようなら、
劣悪なxon/xoffの『フロー制御プロトコル』に従って
端末が@kbd{C-s}と@kbd{C-q}を送っているためでしょう。
@c If this happens to you, your best recourse is to put the terminal in a
@c mode where it will not use flow control, or give it so much padding that
@c it will never send a @kbd{C-s}. (One way to increase the amount of
@c padding is to set the variable @code{baud-rate} to a larger value. Its
@c value is the terminal output speed, measured in the conventional units
@c of baud.)
もしこの状態が起きたら、もっともよいのは端末をフロー制御なしに設定するか、
または、パディングを十分に増やして端末がけっして@kbd{C-s}を
送らないようにすることです。
(パディングを増やす1つの方法は、
より大きい値を変数@code{baud-rate}に設定すること。
この値はボーという単位で表した端末の出力速度。)
@c @cindex flow control
@cindex フロー制御
@cindex xon-xoff
@findex enable-flow-control
@c If you don't succeed in turning off flow control, the next best thing
@c is to tell Emacs to cope with it. To do this, call the function
@c @code{enable-flow-control}.
フロー制御を止められない場合の次善の策は、
Emacsにフロー制御を処理させることです。
それには、関数@code{enable-flow-control}を呼び出してください。
@findex enable-flow-control-on
@c Typically there are particular terminal types with which you must use
@c flow control. You can conveniently ask for flow control on those
@c terminal types only, using @code{enable-flow-control-on}. For example,
@c if you find you must use flow control on VT-100 and H19 terminals, put
@c the following in your @file{.emacs} file:
典型的な場合、
ある種の端末タイプに限ってフロー制御を使う必要があります。
@code{enable-flow-control-on}を使って、
そのような種類の端末に限ってフロー制御を行うようにできます。
たとえば、VT-100端末とH19端末にはフロー制御を行う必要があるのなら、
ファイル@file{.emacs}につぎのものを入れます。
@example
(enable-flow-control-on "vt100" "h19")
@end example
@c When flow control is enabled, you must type @kbd{C-\} to get the
@c effect of a @kbd{C-s}, and type @kbd{C-^} to get the effect of a
@c @kbd{C-q}. (These aliases work by means of keyboard translations; see
@c @ref{Keyboard Translations}.)
フロー制御を使っている場合には、@kbd{C-s}のかわりに@kbd{C-\}、
@kbd{C-q}のかわりに@kbd{C-^}を使う必要があります。
(これらの割り当てはキーボード変換によって行われる。
@pxref{Keyboard Translations}。)
@node Memory Full
@c @subsection Running out of Memory
@c @cindex memory full
@c @cindex out of memory
@subsection メモリ不足 @emph{(2004/03/29)}
@cindex メモリ不足
@c If you get the error message @samp{Virtual memory exceeded}, save your
@c modified buffers with @kbd{C-x s}. This method of saving them has the
@c smallest need for additional memory. Emacs keeps a reserve of memory
@c which it makes available when this error happens; that should be enough
@c to enable @kbd{C-x s} to complete its work.
@samp{Virtual memory exceeded}というエラーメッセージが出たら、
変更したバッファを@kbd{C-x s}で保存してください。
この方法で保存する場合、必要なメモリは最小限ですみます。
Emacsは上記のエラーが起きたときでも使える予備のメモリを確保していますから、
@kbd{C-x s}を完了するのには十分なはずです。
@c Once you have saved your modified buffers, you can exit this Emacs job
@c and start another, or you can use @kbd{M-x kill-some-buffers} to free
@c space in the current Emacs job. If you kill buffers containing a
@c substantial amount of text, you can safely go on editing. Emacs refills
@c its memory reserve automatically when it sees sufficient free space
@c available, in case you run out of memory another time.
変更済みのバッファを保存したら、
Emacsを終了して別のEmacsを起動してもよいですし、
@kbd{M-x kill-some-buffer}を使って
現在動いているEmacsのメモリを解放してもよいです。
大量のテキストが入っているバッファを消せば、
安全に編集を続行できます。
空きメモリが十分な量になると予備のメモリを自動的に確保し直し、
再度メモリ不足になったときに備えます。
@c Do not use @kbd{M-x buffer-menu} to save or kill buffers when you run
@c out of memory, because the buffer menu needs a fair amount of memory
@c itself, and the reserve supply may not be enough.
メモリ不足になったときには、@kbd{M-x buffer-menu}を使って
バッファを保存したり消したりしないでください。
このコマンドはけっこうメモリを必要とするので、
確保した予備のメモリだけでは十分でない可能性があるからです。
@node After a Crash
@c @subsection Recovery After a Crash
@subsection クラッシュからの回復
@c If Emacs or the computer crashes, you can recover the files you were
@c editing at the time of the crash from their auto-save files. To do
@c this, start Emacs again and type the command @kbd{M-x recover-session}.
Emacsやコンピュータがクラッシュしても、
クラッシュ時に編集していたファイルは自動保存ファイルから回復できます。
それには、Emacsを再度起動してから、コマンド@kbd{M-x recover-session}を
入力してください。
@c This command initially displays a buffer which lists interrupted
@c session files, each with its date. You must choose which session to
@c recover from. Typically the one you want is the most recent one. Move
@c point to the one you choose, and type @kbd{C-c C-c}.
このコマンドは、まず、中断されたセッションファイルの一覧を日付とともに
バッファに表示します。
その中からどのセッションを回復するか選んでください。
通常は、最新のセッションを選べばよいでしょう。
望みのセッションの行にポイントを動かして、@kbd{C-c C-c}と打ちます。
@c Then @code{recover-session} asks about each of the files that you were
@c editing during that session; it asks whether to recover that file. If
@c you answer @kbd{y} for a file, it shows the dates of that file and its
@c auto-save file, then asks once again whether to recover that file. For
@c the second question, you must confirm with @kbd{yes}. If you do, Emacs
@c visits the file but gets the text from the auto-save file.
すると、@code{recover-session}は、そのセッションで編集中だった
各ファイルについて回復するかどうか問い合わせてきます。
@kbd{y}と答えると、そのファイルと自動保存ファイルの日付を表示してから、
回復するかどうか再度問い合わせてきます。
再問い合わせに対しては@kbd{yes}で答える必要があります。
そうすると、Emacsはそのファイルを訪れますが、
テキストは自動保存ファイルから持ってきます。
@c When @code{recover-session} is done, the files you've chosen to
@c recover are present in Emacs buffers. You should then save them. Only
@c this---saving them---updates the files themselves.
@code{recover-session}が完了すると、
回復を指定したファイルはEmacsバッファに入っています。
そうしたらこれらのバッファを保存してください。
保存して始めてもとのファイルが更新されます。
@node Emergency Escape
@c @subsection Emergency Escape
@subsection 緊急脱出
@c Because at times there have been bugs causing Emacs to loop without
@c checking @code{quit-flag}, a special feature causes Emacs to be suspended
@c immediately if you type a second @kbd{C-g} while the flag is already set,
@c so you can always get out of GNU Emacs. Normally Emacs recognizes and
@c clears @code{quit-flag} (and quits!) quickly enough to prevent this from
@c happening. (On MS-DOS and compatible systems, type @kbd{C-@key{BREAK}}
@c twice.)
バグのために、Emacsが@code{quit-flag}を検査しないループに入ってしまうことも
ありえます。
このため、このフラグが設定されている状態で再度@kbd{C-g}が打たれると
ただちに実行を休止する特別な機能がEmacsにはあり、
いつでもGNU Emacsから抜け出すことができます。
通常、Emacsはすみやかに@code{quit-flag}を認識し(中断し)ますから、
この特別な機能が使われることはまずありません。
(MS-DOSや互換システムでは、@kbd{C-@key{BREAK}}を2回連打する。)
@c When you resume Emacs after a suspension caused by multiple @kbd{C-g}, it
@c asks two questions before going back to what it had been doing:
@kbd{C-g}の連打によって休止したEmacsを再開すると、
Emacsは休止直前に実行していた動作に戻るまえに、
つぎの2つの質問をしてきます。
@example
Auto-save? (y or n)
Abort (and dump core)? (y or n)
@end example
@noindent
@c Answer each one with @kbd{y} or @kbd{n} followed by @key{RET}.
それぞれの質問に対し、@kbd{y}か@kbd{n}に続けて@key{RET}で答えてください。
@c Saying @kbd{y} to @samp{Auto-save?} causes immediate auto-saving of all
@c modified buffers in which auto-saving is enabled.
@samp{Auto-save?}に@kbd{y}と答えると、
自動保存を行う設定になっている変更されたバッファすべてに対して
ただちに自動保存を実行します。
@c Saying @kbd{y} to @samp{Abort (and dump core)?} causes an illegal instruction to be
@c executed, dumping core. This is to enable a wizard to figure out why Emacs
@c was failing to quit in the first place. Execution does not continue
@c after a core dump. If you answer @kbd{n}, execution does continue. With
@c luck, GNU Emacs will ultimately check @code{quit-flag} and quit normally.
@c If not, and you type another @kbd{C-g}, it is suspended again.
@samp{Abort (and dump core)?}に@kbd{y}と答えると、
Emacsは不正命令を実行してコアダンプを作ります。
コアダンプがあると、Emacsが中断できなかった理由をウィザード
@footnote{【訳注】「名人、熟練者、魔術師」の意味だが、
特定のコンピュータや(特に)ソフトウェアに精通した人を指す。}
が追究できます。
コアダンプを作り終えるとEmacsの実行は終了します。
@kbd{n}と答えると実行は継続します。
運がよければ、Emacsが最終的には@code{quit-flag}を検査して
正常に中断できるでしょう。
運が悪ければ、またループに入ったままになりますから、
再度@kbd{C-g}を打ってEmacsをまた休止します。
@c If Emacs is not really hung, just slow, you may invoke the double
@c @kbd{C-g} feature without really meaning to. Then just resume and answer
@c @kbd{n} to both questions, and you will arrive at your former state.
@c Presumably the quit you requested will happen soon.
本当はEmacsが固まったのではなく単に遅いだけの場合には、
意図せずに@kbd{C-g}を連打してしまうことがあります。
その場合には、再開して2つの質問に@kbd{n}と答えればもとの状態に戻れます。
中断要求はすぐに受け付けられるでしょう。
@c The double @kbd{C-g} feature is turned off when Emacs is running under
@c the X Window System, since you can use the window manager to kill Emacs
@c or to create another window and run another program.
XウィンドウシステムのもとでEmacsが動作している場合には、
@kbd{C-g}連打の機能は切ってあります。
というのは、ウィンドウマネージャを使ってEmacsを終了させたり、
別のウィンドウを開いて別のプログラムを動かせるからです。
@c On MS-DOS and compatible systems, the emergency escape feature is
@c sometimes unavailable, even if you press @kbd{C-@key{BREAK}} twice, when
@c some system call (MS-DOS or BIOS) hangs, or when Emacs is stuck in a
@c very tight endless loop (in C code, @strong{not} in Lisp code).
MS-DOSや互換システムでは、
(MS-DOSやBIOSの)システムコールが固まっている場合や
Emacsが非常にきつい(Lispコードでは@strong{なく}Cのコードで)
無限ループに入っている場合には、
@kbd{C-@key{BREAK}}を2回打っても緊急脱出の機能を使えない場合があります。
@node Total Frustration
@c @subsection Help for Total Frustration
@subsection いらいらしたら…
@cindex Eliza
@cindex doctor
@c If using Emacs (or something else) becomes terribly frustrating and none
@c of the techniques described above solve the problem, Emacs can still help
@c you.
Emacsを使うこと(や、その他のこと)がきわめて不愉快になったり、
ここまでにあげたどの方法でも問題が解決しない場合でも、
Emacsはまだ手助けができます。
@c First, if the Emacs you are using is not responding to commands, type
@c @kbd{C-g C-g} to get out of it and then start a new one.
まず、Emacsがコマンドに応答しないようなら、
@kbd{C-g C-g}と打ってEmacsから抜け出し、
新たに別のEmacsを起動してください。
@findex doctor
@c Second, type @kbd{M-x doctor @key{RET}}.
つぎに、@kbd{M-x doctor @key{RET}}と打ってください。
@c The doctor will help you feel better. Each time you say something to
@c the doctor, you must end it by typing @key{RET} @key{RET}. This lets
@c the doctor know you are finished.
doctorプログラムがあなたのいらいらを鎮めてくれるでしょう。
doctorに何かを話すときには、@key{RET} @key{RET}と打っていい終える
必要があります。
こうすると、doctorは患者が話し終えたことを認識します。
@node Bugs, Contributing, Lossage, Top
@c @section Reporting Bugs
@section バグの報告 @emph{(2004/03/29)}
@c @cindex bugs
@cindex バグ
@c Sometimes you will encounter a bug in Emacs. Although we cannot
@c promise we can or will fix the bug, and we might not even agree that it
@c is a bug, we want to hear about problems you encounter. Often we agree
@c they are bugs and want to fix them.
Emacsのバグに出会うこともあるでしょう。
バグを修正する/できるとは約束できませんし、
そもそもバグだと認めないかもしれませんが、
読者が遭遇した問題については知らせてほしいと考えています。
たしかにそれをバグだと認めて修正しようということになる場合も多いのです。
@c To make it possible for us to fix a bug, you must report it. In order
@c to do so effectively, you must know when and how to do it.
バグを修正するには、まず、報告してもらう必要があります。
効果的に報告してもらうためには、報告の仕方を知っていただく必要があります。
@c Before reporting a bug, it is a good idea to see if it is already
@c known. You can find the list of known problems in the file
@c @file{etc/PROBLEMS} in the Emacs distribution; type @kbd{C-h P} to read
@c it. Some additional user-level problems can be found in @ref{Bugs and
@c problems, , Bugs and problems, efaq, GNU Emacs FAQ}. Looking up your
@c problem in these two documents might provide you with a solution or a
@c work-around, or give you additional information about related issues.
バグを報告する前にすでに報告されているかを確認することはいい考えです.Emacs に付
属している @file{etc/PROBLEMS}ファイルに既知のバグのリストがあります.これは,
@kbd{C-h P} で読むことができます.ユーザレベルでのバグの追加情報は @ref{Bugs and
problems, , Bugs and problems, efaq, GNU Emacs FAQ}にあります.この2つの文書でバ
グを調べれば,解決策が見つかるかもしれません.あるいは関連問題の情報が得られるか
もしれません.
@menu
* Criteria: Bug Criteria. Have you really found a bug?
* Understanding Bug Reporting:: How to report a bug effectively.
* Checklist:: Steps to follow for a good bug report.
* Sending Patches:: How to send a patch for GNU Emacs.
@end menu
@node Bug Criteria
@c @subsection When Is There a Bug
@subsection バグの発生時期 @emph{(2004/03/29)}
@c If Emacs executes an illegal instruction, or dies with an operating
@c system error message that indicates a problem in the program (as opposed to
@c something like ``disk full''), then it is certainly a bug.
Emacsが不正命令を実行したり、
(『ディスクが満杯』などの外部の問題ではなく)プログラムに問題が
あるというオペレーティングシステムのメッセージを表示して止まった場合には、
たしかにバグがあるといえます。
@c If Emacs updates the display in a way that does not correspond to what is
@c in the buffer, then it is certainly a bug. If a command seems to do the
@c wrong thing but the problem corrects itself if you type @kbd{C-l}, it is a
@c case of incorrect display updating.
Emacsの画面の更新結果がバッファの内容に対応していないなら、
それもたしかにバグです。
コマンドの実行が思わしくなくても@kbd{C-l}で再表示させると正しくなる場合には、
画面更新がまちがっているのです。
@c Taking forever to complete a command can be a bug, but you must make
@c certain that it was really Emacs's fault. Some commands simply take a
@c long time. Type @kbd{C-g} (@kbd{C-@key{BREAK}} on MS-DOS) and then @kbd{C-h l}
@c to see whether the input Emacs received was what you intended to type;
@c if the input was such that you @emph{know} it should have been processed
@c quickly, report a bug. If you don't know whether the command should
@c take a long time, find out by looking in the manual or by asking for
@c assistance.
あるコマンドを実行するのに無限に時間がかかるというのはバグの可能性が
ありますが、たしかにEmacsの責任かどうかを確認する必要があります。
コマンドによってはとても時間がかかるものもあります。
@kbd{C-g}(MS-DOSでは@kbd{C-@key{BREAK}})を打ってから
@kbd{C-h l}を打つことで、Emacsが受け付けた入力がたしかに
読者が意図したものだったかどうか確認できます。
すぐに処理されるコマンドだという@emph{確信}があるなら、
バグを報告してください。
そのコマンドがすごく時間のかかるものかどうかわからないなら、
マニュアルで調べるか知っている人に聞いてください。
@c If a command you are familiar with causes an Emacs error message in a
@c case where its usual definition ought to be reasonable, it is probably a
@c bug.
よく知っているコマンドであって、普通なら問題なく結果が得られるはずなのに、
かわりにEmacsがエラーメッセージを出すようなら、恐らくそれはバグでしょう。
@c If a command does the wrong thing, that is a bug. But be sure you know
@c for certain what it ought to have done. If you aren't familiar with the
@c command, or don't know for certain how the command is supposed to work,
@c then it might actually be working right. Rather than jumping to
@c conclusions, show the problem to someone who knows for certain.
コマンドが正しくない動作をするのなら、それはバグです。
ただし、コマンドが本当は何をするのが正しいか確認してください。
そのコマンドに馴染みがないとか、
そのコマンドがどう動作するはずなのか確信が持てない場合は、
コマンドは実際には正しく動作しているのかもしれません。
バグという結論に飛びつくまえに、よく知っている人に見てもらってください。
@c Finally, a command's intended definition may not be best for editing
@c with. This is a very important sort of problem, but it is also a matter of
@c judgment. Also, it is easy to come to such a conclusion out of ignorance
@c of some of the existing features. It is probably best not to complain
@c about such a problem until you have checked the documentation in the usual
@c ways, feel confident that you understand it, and know for certain that what
@c you want is not available. If you are not sure what the command is
@c supposed to do after a careful reading of the manual, check the index and
@c glossary for any terms that may be unclear.
最後に、コマンドの意図された定義が編集操作に対して最良でない可能性があります。
これは重要な問題ではありますが、ユーザーがどう判断するかの問題でもあります。
既存の機能について無知なために、
まちがっていると結論を出してしまうのも簡単です。
まずドキュメントをひととおり調べて、十分に納得し、
それでもなお自分にとって必要な機能がない、と断言できるまでは、
コマンドの定義が悪いなどとはいわないほうがよいでしょう。
マニュアルを熟読してもコマンドが何をするのかよくわからなければ、
索引や用語集を活用してよくわからない単語について調べましょう。
@c If after careful rereading of the manual you still do not understand
@c what the command should do, that indicates a bug in the manual, which
@c you should report. The manual's job is to make everything clear to
@c people who are not Emacs experts---including you. It is just as
@c important to report documentation bugs as program bugs.
十分熟読しても、なおコマンドが何をするのかわからないなら、
それは「マニュアルのバグ」として報告すべきでしょう。
マニュアルは、読者を含めて、Emacsの専門家でない人が読んでも
すべてのことが明らかになるようなものであるべきです。
ドキュメントのバグを報告することも、
プログラムのバグを報告することと同じくらい重要なことです。
@c If the on-line documentation string of a function or variable disagrees
@c with the manual, one of them must be wrong; that is a bug.
関数や変数のオンラインの説明文がマニュアルと一致しない場合は、
どちらかがまちがっていますから、これもバグです。
@node Understanding Bug Reporting
@c @subsection Understanding Bug Reporting
@subsection バグの報告とは
@findex emacs-version
@c When you decide that there is a bug, it is important to report it and to
@c report it in a way which is useful. What is most useful is an exact
@c description of what commands you type, starting with the shell command to
@c run Emacs, until the problem happens.
バグがあると確信したら、それを報告すること、
しかも、役立つ形で報告することが重要です。
もっとも有用なのは、どのようなコマンドを打ち込んだかを、
Emacsを起動するシェルのコマンドから始めて
問題が起きるところまですべて正確に記述することです。
@c The most important principle in reporting a bug is to report
@c @emph{facts}. Hypotheses and verbal descriptions are no substitute for
@c the detailed raw data. Reporting the facts is straightforward, but many
@c people strain to posit explanations and report them instead of the
@c facts. If the explanations are based on guesses about how Emacs is
@c implemented, they will be useless; meanwhile, lacking the facts, we will
@c have no real information about the bug.
バグを報告するときもっとも重要なことは@emph{事実}を報告することです。
仮説や口頭説明は、詳細な生データのかわりにはなりません。
事実を報告することは単純なはずなのに、
多くの人はかわりに説明をでっちあげてそれを報告したがります。
その説明がEmacsの実装方式の想像に基づいたものであるならば、
その説明はまったく役に立たないでしょう。
事実が欠けていたらバグに関する真の情報を得られません。
@c For example, suppose that you type @kbd{C-x C-f /glorp/baz.ugh
@c @key{RET}}, visiting a file which (you know) happens to be rather large,
@c and Emacs displayed @samp{I feel pretty today}. The best way to report
@c the bug is with a sentence like the preceding one, because it gives all
@c the facts.
たとえば、ユーザーがとても大きなファイルを訪れるために
@kbd{C-x C-f /glorp/baz.ugh @key{RET}}と打ち込んだら、
Emacsが@samp{I feel pretty today}と表示したとしましょう。
もっともよいバグレポートは、まさにこの文のように報告することです。
すべての事実だけを報告できるからです。
@c A bad way would be to assume that the problem is due to the size of
@c the file and say, ``I visited a large file, and Emacs displayed @samp{I
@c feel pretty today}.'' This is what we mean by ``guessing
@c explanations.'' The problem is just as likely to be due to the fact
@c that there is a @samp{z} in the file name. If this is so, then when we
@c got your report, we would try out the problem with some ``large file,''
@c probably with no @samp{z} in its name, and not see any problem. There
@c is no way in the world that we could guess that we should try visiting a
@c file with a @samp{z} in its name.
問題はファイルの大きさにあると仮定して、
「大きなファイルを訪問したら、Emacsが@samp{I feel pretty today}と表示した」
などと書いてはいけません。
これが『説明をでっちあげた』報告です。
問題はファイル名に@samp{z}が含まれていたために生じたのかもしれないのです。
もしそうだとしたら、報告に基づいて適当な「大きなファイル」を訪問してみても、
そのファイル名に@samp{z}が含まれていなければ何も悪いところが
みつからないでしょう。
報告の文面からは、名前に@samp{z}を含んだファイルを
試しに訪問してみるべきだとはわかりません。
@c Alternatively, the problem might be due to the fact that the file starts
@c with exactly 25 spaces. For this reason, you should make sure that you
@c inform us of the exact contents of any file that is needed to reproduce the
@c bug. What if the problem only occurs when you have typed the @kbd{C-x C-a}
@c command previously? This is why we ask you to give the exact sequence of
@c characters you typed since starting the Emacs session.
あるいは、ファイルがちょうど25個の空白文字で始まっているために
問題が起きたのかもしれません。
ですから、報告に際しては、そのバグを再現させるのに必要なファイルがあれば、
それらのファイルの正確な内容も教えてください。
その問題は、たまたま、@kbd{C-x C-a}と打った直後にのみ
発生するのだとしたらどうでしょう?@code{ }
ですから、Emacsを起動してから問題に遭遇するまでに
打ち込んだものすべてを教えてほしいのです。
@c You should not even say ``visit a file'' instead of @kbd{C-x C-f} unless
@c you @emph{know} that it makes no difference which visiting command is used.
@c Similarly, rather than saying ``if I have three characters on the line,''
@c say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if that is
@c the way you entered the text.@refill
どの訪問コマンドを使っても同じように問題が発生すると@emph{知っている}
のでない限り、@kbd{C-x C-f}と打ったと報告するかわりに
「ファイルを訪問した」というのさえいけません。
同様に、「1行に3文字入っているとき」ではなく、
「@kbd{@key{RET} A B C @key{RET} C-p}と打ち込んだあとで」のように、
あなたがテキストを入れたやり方そのものを報告してください。
@c So please don't guess any explanations when you report a bug. If you
@c want to actually @emph{debug} the problem, and report explanations that
@c are more than guesses, that is useful---but please include the facts as
@c well.
このように、バグを報告するときには、いかなる説明も推測しないでください。
問題を実際に@emph{デバッグ}して憶測ではない説明を報告してもらえるなら、
それは有益ですが、事実も含めてください。
@node Checklist
@c @subsection Checklist for Bug Reports
@subsection バグレポートのチェックリスト @emph{(2004/03/29)}
@c @cindex reporting bugs
@cindex バグを報告する
@c The best way to send a bug report is to mail it electronically to the
@c Emacs maintainers at @email{bug-gnu-emacs@@gnu.org}, or to
@c @email{emacs-pretest-bug@@gnu.org} if you are pretesting an Emacs beta
@c release. (If you want to suggest a change as an improvement, use the
@c same address.)
バグレポートを送る最良の方法は、電子メイルでEmacs保守チーム
@samp{bug-gnu-emacs@@gnu.org}かベータ版をテスト中であれば
@email{emacs-pretest-bug@@gnu.org} に送ることです。
(重要な改良の提案などもここに送ってください)。
@c If you'd like to read the bug reports, you can find them on the
@c newsgroup @samp{gnu.emacs.bug}; keep in mind, however, that as a
@c spectator you should not criticize anything about what you see there.
@c The purpose of bug reports is to give information to the Emacs
@c maintainers. Spectators are welcome only as long as they do not
@c interfere with this. In particular, some bug reports contain fairly
@c large amounts of data; spectators should not complain about this.
他から出されたバグレポートが読みたければ、
ニュースグループ@samp{gnu.emacs.bug}で読めます。
ただし、傍観者として見る場合には、見たものについて批判するべきではない、
ということを承知しておいてください。
バグレポートの目的はEmacs保守チームに情報を提供することです。
傍観者は、この目的に干渉しない限りは、歓迎します。
特に、大量のデータが添付されているバグレポートもありますので、
傍観者はそのことを非難すべきではありません。
@c Please do not post bug reports using netnews; mail is more reliable
@c than netnews about reporting your correct address, which we may need
@c in order to ask you for more information. If your data is more than
@c 500,000 bytes, please don't include it directly in the bug report;
@c instead, offer to send it on request, or make it available by ftp and
@c say where.
ネットニュース経由でバグレポートを投稿しないでください。