comparison etc/TUTORIAL.th @ 428:3ecd8885ac67 r21-2-22

Import from CVS: tag r21-2-22
author cvs
date Mon, 13 Aug 2007 11:28:15 +0200
parents
children
comparison
equal deleted inserted replaced
427:0a0253eac470 428:3ecd8885ac67
1 ==============================
2 GNUEMACS ภาษาญี่ปุ่น (Mule) เบื้องต้น
3 ==============================
4
5 หมายเหตุ: เอกสารฉบับเบื้องต้นนี้ ถูกเขียนขึ้นโดยยึดหลักที่ว่า "ลองเล่นเลยดีกว่าเรียนรู้"
6 บรรทัดที่เริ่มต้นด้วย ">>" จะมีคำสั่งว่า ต่อไปจะให้ทำอะไร
7
8 โดยทั่วไป การป้อนคำสั่งให้กับ Mule ทำได้โดยใช้ ปุ่มคอนโทรล (ปุ่มที่บนหน้าสัมผัส เขียนไว้
9 ว่า CTRL หรือ CTL) หรือ ปุ่ม META (โดยปกติ หมายถึงปุ่ม ESC) ในที่นี้ เราจะใช้สัญลักษณ์ต่อไป
10 นี้ แทนการเขียนเต็ม ๆ ว่า CONTROL หรือ META
11
12 C-<ตัวอักษร> หมายถึง ให้กดปุ่มคอนโทรลค้างไว้ แล้วกดปุ่ม <ตัวอักษร> ตัวอย่างเช่น C-f
13 หมายถึง ให้กดปุ่มคอนโทรลค้างไว้ แล้วกดปุ่ม f
14 <<Blank lines inserted here by startup of help-with-tutorial>>
15 >> ตอนนี้ขอให้ลองกด C-v (View Next Screen ดูหน้าต่อไป) ดู เพื่อเลื่อนไปอ่านหน้า
16 ต่อไป
17 ต่อจากนี้เป็นต้นไป ทุกครั้งที่อ่านหน้าหนึ่ง ๆ จบขอให้ทำในทำนองเดียวกัน เพื่อเลื่อนไป
18 ดูหน้าต่อไป
19
20 ESC <ตัวอักษร> หมายถึง ให้กดปุ่ม ESC แล้วปล่อย หลังจากนั้นจึงกดปุ่ม <ตัวอักษร> ตาม
21
22 หมายเหตุ: <ตัวอักษร> ไม่ว่าเป็นตัวใหญ่หรือตัวเล็ก จะให้ความหมายเหมือนกันเมื่อถูกใช้ใน
23 คำสั่ง ถ้าหากมีปุ่ม META ให้กด ก็จะสามารถใช้การกด M-<ตัวอักษร> แทน
24 การ ESC <ตัวอักษร> ได้ (คือให้กดปุ่ม META ค้างไว้ แล้วจึงกด <ตัวอักษร>)
25
26 ข้อสำคัญ: เวลาจะเลิกใช้ Emacs ให้กด C-x C-c หรือในกรณีที่สั่ง Emacs จาก csh
27 ก็สามารถใช้ suspend (หยุดชั่วคราว) ได้ การ suspend Emacs ทำได้โดย
28 กด C-z
29
30 ต่อจากนี้ ขอให้ป้อนคำสั่ง C-v ทุก ๆ ครั้งที่อ่านจบหนึ่งหน้า
31
32 ภายในหน้าที่แล้วกับหน้าถัดไป จะมีเนื้อหาซ้ำกันอยู่บางบรรทัด ที่เป็นเช่นนี้ ก็เพื่อให้สามารถรู้
33 ได้ว่า เนื้อหาที่แสดงอยู่นั้น ต่อเนื่องกันอยู่
34
35
36 ก่อนอื่น จำเป็นจะต้องรู้วิธีการโยกย้ายตำแหน่งไปมา ภายในแฟ้มข้อมูลเสียก่อน ตามที่บอกไป
37 แล้ว ก็คือ C-v ใช้สำหรับเลื่อนไปข้างหน้า ถ้าจะเลื่อนกลับที่เก่า ก็ให้กด ESC v
38
39 >> ลองใช้ ESC v และ C-v เพื่อเลื่อนไปมาดู สักสองสามครั้ง
40
41 สรุป
42 ===
43 คำสั่ง สำหรับเลื่อนไปมาทีละหน้าภายในแฟ้มข้อมูล คือ
44
45 C-v เลื่อนไปข้างหน้า หนึ่งหน้าจอ
46 ESC v เลื่อนไปข้างหลัง หนึ่งหน้าจอ
47 C-l เขียนหน้าจอใหม่ และในขณะเดียวกัน ก็ให้เลื่อนตำแหน่งของเคอร์เซอร์ (cursor)
48 ไปอยู่ตรงกลางจอ
49
50 >> ขอให้สังเกตดูว่า ในขณะนี้เคอร์เซอร์อยู่ที่ไหน พร้อมทั้งจำข้อความที่อยู่รอบข้างของ
51 เคอร์เซอร์ด้วย แล้วลองกด C-l ดู ตรวจสอบดูว่า เคอร์เซอร์เลื่อนไปอยู่ที่ไหน
52 ข้อความที่อยู่รอบข้างเปลี่ยนไปอย่างไร
53
54 วิธีโยกย้ายเคอร์เซอร์ขั้นพื้นฐาน
55 =======================
56
57 ตอนนี้ เราก็รู้วิธีโยกย้ายไปมาแบบทีละหน้าแล้ว ต่อไป ก็มาเรียนรู้วิธีโยกย้ายไปที่ตำแหน่งใด
58 ตำแหน่งหนึ่งภายในหน้าเดียวกัน ซึ่งสามารถทำได้หลายวิธี วิธีหนึ่งก็คือให้ใช้คำสั่ง ไปบรรทัดก่อนหน้า
59 (previous) ไปบรรทัดต่อไป (next) ไปด้านหน้า (forward) ไปด้านหลัง (backward) คำสั่ง
60 เหล่านี้ ถูกตั้งไว้ที่ C-p C-n C-f และ C-b ตามลำดับ ซึ่งจะทำให้โยกย้ายไปมาได้ โดยเทียบกับ
61 ตำแหน่งปัจจุบัน สรุปเขียนเป็นแผนภาพได้ดังนี้
62
63
64 บรรทัดที่แล้ว C-p
65 :
66 :
67 ตัวอักษรด้านหลัง C-b .... ตำแหน่งเคอร์เซอร์ปัจจุบัน .... ตัวอักษรด้านหน้า C-f
68 :
69 :
70 บรรทัดต่อไป C-n
71
72
73 คำสั่งเหล่านี้ เอามาจากตัวอักษรตัวแรกของ คำว่า Previous Next Backward Forward
74 ซึ่งจะช่วยให้จำได้ไม่ยาก คำสั่งเหล่านี้เป็นคำสั่งสำหรับการโยกย้ายขั้นพื้นฐาน ซึ่งต้องใช้อยู่เสมอ
75
76 >> ลองกด C-n ดูหลาย ๆ ครั้ง เพื่อเลื่อนเคอร์เซอร์มายังบรรทัดนี้ (บรรทัดที่กำลังอ่าน
77 อยู่นี้)
78
79 >> ลองกด C-f ดูหลาย ๆ ครั้ง เพื่อเลื่อนเคอร์เซอร์ไปยังตรงกลางของบรรทัด แล้วลอง
80 กด C-p เลื่อนขึ้นข้างบนดู สังเกตดูด้วยว่า ตำแหน่งของเคอร์เซอร์เปลี่ยนไปอย่างไร
81
82 >> ลองกด C-b ขณะที่อยู่ที่ตำแหน่งหน้าสุดของบรรทัดดู สังเกตดูด้วยว่า เคอร์เซอร์เคลื่อน
83 ไปอย่างไร จากนั้นให้กด C-b อีกสองสามครั้ง แล้วกด C-f เพื่อเลื่อนไปยังท้ายสุด
84 ของบรรทัดดู เคอร์เซอร์จะเป็นอย่างไร ถ้ากดจนเลยท้ายบรรทัดไป
85
86
87 เวลาที่เลื่อนเคอร์เซอร์ จนเลยบรรทัดแรกสุดหรือบรรทัดท้ายสุดของหน้าไป เคอร์เซอร์จะ
88 เลื่อนไปยังบรรทัดต่อไปในทิศทางนั้น ๆ และปรับให้เคอร์เซอร์กลับมาอยู่บนหน้าจอเสมอ
89
90 >> ลองกด C-n เพื่อเลื่อนเคอร์เซอร์ให้เลยบรรทัดล่างสุดของหน้าจอดู แล้วสังเกตดูว่า
91 เกิดอะไรขึ้น และตำแหน่งของเคอร์เซอร์เปลี่ยนไปอย่างไร
92
93 ถ้ารู้สึกว่าการขยับไปทีละตัวอักษรนั้นอืดอาดยืดยาด ก็สามารถใช้การเลื่อนเคอร์เซอร์ไปทีละคำ
94 ได้ กด ESC f เพื่อให้เลื่อนไปข้างหน้าหนึ่งคำ และ ESC b เพื่อให้เลื่อนไปข้างหลังหนึ่งคำ
95
96 หมายเหตุ: สำหรับภาษาไทย ยังไม่สามารถแบ่งแยกตำแหน่งของคำได้ถูกต้อง จึงไม่
97 สามารถใช้สองคำสั่งนี้ได้
98
99 >> ลองกด ESC f และ ESC b ลองดูหลาย ๆ ครั้ง และลองใช้ร่วมกับ C-f กับ C-b ดู
100 ด้วย
101
102 จะสังเกตเห็นได้ว่า ESC f และ ESC b มีรูปแบบคล้ายคลึงกับ C-f และ C-b โดยส่วนใหญ่
103 ESC <ตัวอักษร> จะใช้เกี่ยวกับการจัดการข้อความ ส่วน C-<ตัวอักษร> จะใช้กับสิ่งที่เป็นพื้นฐานมาก
104 กว่า (เช่น ตัวอักษร หรือ บรรทัด)
105
106 C-a กับ C-e เป็นคำสั่งน่าจะรู้ไว้ เพราะค่อนข้างสะดวกดีทีเดียว C-a ใช้สำหรับเลื่อน
107 เคอร์เซอร์ไปที่ตำแหน่งหน้าสุดของบรรทัด C-e สำหรับเลื่อนไปที่ตำแหน่งท้ายสุดของบรรทัด
108
109
110 >> ลองกด C-a ดูสองครั้ง หลังจากนั้นให้กด C-e ดูสองครั้ง แล้วลองสังเกตดูว่า การ
111 กดคำสั่งนี้มากกว่าสองครั้ง จะไม่ช่วยให้เลื่อนเคอร์เซอร์ไปไหนได้มากกว่านั้นอีก
112
113 ยังมีอีกสองคำสั่ง สำหรับการเลื่อนเคอร์เซอร์แบบง่าย ๆ คือ คำสั่ง ESC < สำหรับการเลื่อน
114 เคอร์เซอร์ไปที่ตำแหน่งแรกสุดของแฟ้มข้อมูล และคำสั่ง ESC > สำหรับการเลื่อนไปตำแหน่งท้ายสุด
115
116 เราเรียกตำแหน่งของข้อความ ที่มีเคอร์เซอร์อยู่ว่า "จุด (point)" หรือพูดอีกอย่างหนึ่งได้
117 ว่า เคอร์เซอร์ เป็นสิ่งที่บอกให้เรารู้ว่า จุด อยู่ตรงไหนของหน้าจอ
118
119 สรุปคำสั่งสำหรับการเคลื่อนไปมา ซึ่งรวมการเคลื่อนที่ในหน่วยของคำ หน่วยของบรรทัดไว้ด้วย
120 ได้ดังนี้
121
122 C-f ไปข้างหน้าหนึ่งตัวอักษร
123 C-b กลับข้างหลังหนึ่งตัวอักษร
124
125 ESC f ไปข้างหน้าหนึ่งคำ
126 ESC b กลับข้างหลังหนึ่งคำ
127
128 C-n เลื่อนไปบรรทัดต่อไป
129 C-p เลื่อนไปบรรทัดที่แล้ว
130
131 ESC ] เลื่อนไปตำแหน่งท้ายสุดของย่อหน้า (paragraph)
132 ESC [ เลื่อนไปตำแหน่งแรกสุดของย่อหน้า
133
134 C-a เลื่อนไปตำแหน่งแรกสุดของบรรทัด
135 C-e เลื่อนไปตำแหน่งท้ายสุดของบรรทัด
136
137 ESC < เลื่อนไปตำแหน่งแรกสุดของแฟ้มข้อมูล
138 ESC > เลื่อนไปตำแหน่งท้ายสุดของแฟ้มข้อมูล
139
140 >> ลองใช้คำสั่งแต่ละคำสั่งดู คำสั่งเหล่านี้เป็นคำสั่งที่ใช้กันบ่อยสุด คำสั่งสองคำสั่งหลัง
141 จะเลื่อนเคอร์เซอร์ ไปยังที่ที่ค่อนข้างไกล ให้ลองใช้คำสั่ง C-v และ ESC v เพื่อ
142 เลื่อนเคอร์เซอร์กลับมาที่ตรงนี้
143
144 สำหรับคำสั่งอื่น ๆ ของ Emacs ก็เช่นกัน คำสั่งเหล่านี้จะสามารถเพิ่มตัวเลือก (argument)
145 เพื่อกำหนด จำนวนครั้ง ในการปฏิบัติงานได้ การกำหนดจำนวนครั้ง ทำได้โดยกด C-u แล้วตาม
146 ด้วยจำนวนครั้งที่ต้องการก่อน แล้วจึงค่อยกดคำสั่งตาม
147
148 ตัวอย่างเช่น คำสั่ง C-u 8 C-f หมายถึง ให้เลื่อนไปข้างหน้า 8 ตัวอักษร
149
150 >> ให้ลองกำหนดจำนวนครั้งที่เหมาะสมสำหรับคำสั่ง C-n หรือ C-p เพื่อเลื่อนเคอร์เซอร์
151 ให้มาอยู่ใกล้บรรทัดนี้ให้มากที่สุดเท่าที่จะทำได้ ในการเลื่อนเคอร์เซอร์ครั้งเดียว
152
153 สำหรับ C-v และ ESC v จะได้ผลแตกต่างไปสักเล็กน้อย ในกรณีนี้ จะเป็นการเลื่อนหน้าจอ
154 ขึ้นลง ตามจำนวนบรรทัดแทน
155
156 >> ลองกด C-u 3 C-v ดู
157
158 เลื่อนกลับที่เก่าได้โดย C-u 3 ESC v
159
160 คำสั่งยกเลิก
161 =========
162
163 คำสั่ง C-g ใช้สำหรับสั่งยกเลิกคำสั่งต่าง ๆ ที่ต้องการการป้อนข้อมูลเพิ่มเติม ตัวอย่างเช่น
164 ระหว่างที่ใส่ตัวเลือก (argument) อยู่ หรือระหว่างคำสั่งที่ต้องการกดปุ่มมากกว่า 2 ปุ่มขึ้นไป ถ้า
165 หากต้องการยกเลิก ก็ให้กด C-g
166
167 >> ลองกำหนดจำนวนครั้งให้เป็น 100 โดยการกด C-u 100 แล้วกด C-g ดู หลังจากนั้น
168 ให้ลองกด C-f ดู แล้วสังเกตดูว่าเคอร์เซอร์เลื่อนไปกี่ตัวอักษร หรือตอนที่พลาดไปกด
169 ESC โดยไม่ตั้งใจ ก็สามารถกด C-g ยกเลิกได้
170
171 ข้อผิดพลาด (Error)
172 ================
173
174 ในบางครั้ง อาจจะมีการสั่งปฏิบัติงานบางอย่าง ที่ Emacs ยอมรับไม่ได้เกิดขึ้น ตัวอย่างเช่น
175 การกดคำสั่งคอนโทรลบางคำสั่ง ที่ไม่ได้กำหนดไว้ใน Emacs ก็จะทำให้ Emacs ส่งเสียงเตือน
176 และแสดงผลที่บรรทัดล่างสุดของจอ บอกว่าผิดพลาดอย่างไร
177
178 คำสั่งบางคำสั่งที่เขียนไว้ในเอกสารฉบับนี้ อาจใช้ไม่ได้กับ Emacs บางรุ่น (version) ซึ่งจะ
179 ทำให้มีการแสดงผลข้อผิดพลาด (error) ขึ้น ในกรณีนี้ ขอให้กดปุ่มอะไรก็ได้ เพื่อเลื่อนไปยังส่วน
180 ต่อไป
181
182 วินโดว์ (Window)
183 ==============
184
185 Emacs สามารถเปิดวินโดว์ได้พร้อมกันหลายวินโดว์ และใช้วินโดว์เหล่านั้นแสดงผลข้อความ
186 ต่าง ๆ ตามต้องการได้ ก่อนอื่น ก็ควรจะทำความรู้จักกับคำสั่ง ที่ใช้สำหรับการลบวินโดว์ส่วนเกิน
187 ในเวลาที่แสดงผลลัพธ์ของคำสั่งบางคำสั่ง หรือ Help ออกเสียก่อน
188
189 C-x 1 ทำให้เป็นวินโดว์เดียว
190
191 คำสั่ง C-x 1 ใช้สำหรับลบวินโดว์อื่น แล้วขยายวินโดว์ที่มีเคอร์เซอร์อยู่ ให้เต็มจอเป็น
192 วินโดว์เดียว
193
194 >> ให้เลื่อนเคอร์เซอร์มาที่บรรทัดนี้ แล้วกด C-u 0 C-l
195
196 >> ลองกด C-h k C-f ดู แล้วสังเกตดูว่าวินโดว์นี้เปลี่ยนไปอย่างไร เมื่อมีวินโดว์ใหม่ซึ่ง
197 อธิบายวิธีใช้คำสั่ง C-f ปรากฏขึ้น
198
199 >> ลองกด C-x 1 เพื่อลบวินโดว์ที่โผล่ขึ้นมาใหม่ ออก
200
201 การแทรก (insert) และ การลบ (delete)
202 ===================================
203
204 บน Emacs เราจะสามารถพิมพ์ตัวอักษรเข้าไปได้เลย เมื่อต้องการพิมพ์ข้อความ Emacs จะ
205 ถือว่าตัวหนังสือที่มองเห็นได้ทุกตัว (เช่น 'A' '7' '*' 'ก' และอื่น ๆ) เป็นข้อความที่ต้องการจะ
206 แทรก (insert) เข้าไปตรง ๆ เมื่อจะจบบรรทัด ให้กด <Return> เพื่อเติมอักษรขึ้นบรรทัดใหม่
207 (linefeed character) แทรกเข้าไป
208
209 ให้กด <Delete> เมื่อต้องการจะลบตัวอักษรที่เพิ่งพิมพ์เข้าไป <Delete> หมายถึงปุ่มเขียน
210 บนผิวหน้าไว้ว่า "Delete" หรือบางทีอาจจะเขียนไว้ "Rubout" ก็ได้ โดยทั่วไป <Delete>
211 ใช้สำหรับลบตัวอักษรที่อยู่ก่อนหน้าตำแหน่งเคอร์เซอร์ปัจจุบัน
212
213 >> ลองพิมพ์ตัวอักษรเข้าไปหลาย ๆ ตัว แล้วใช้ <Delete> ลบตัวอักษรเหล่านั้นทิ้ง
214
215 >> ลองพิมพ์ข้อความลงไปให้เกินขอบขวา (right margin) เวลาที่พิมพ์ข้อความเข้าไป
216 ยาวเกินความกว้างของหนึ่งบรรทัด บรรทัดนั้นก็จะ "ถูกต่อ" ให้ยาวเกินหนึ่งหน้าจอ
217 โดยใส่เครื่องหมาย '\' ไว้ที่ขอบขวาสุด เพื่อบอกให้รู้ว่าบรรทัดนี้ยังมีต่อ Emacs จะ
218 เลื่อน (scroll) หน้าจอเพื่อให้เห็นตำแหน่งที่กำลังแก้ไขอยู่ได้อย่างชัดเจน ถ้าหาก
219 ขอบขวาหรือขอบซ้ายของมีเครื่องหมาย '\' อยู่ ก็เป็นการบอกให้รู้ว่า บรรทัดนั้นยังมีต่อ
220 ไปในทิศทางนั้น ๆ
221
222 ลองปฏิบัติดูเลย คงจะช่วยให้เข้าใจง่ายกว่าการอธิบายด้วยตัวหนังสือ
223
224 >> ให้ขยับเคอร์เซอร์ไปไว้บนบรรทัดซึ่งถูกต่อให้ยาวเกินหนึ่งหน้าจอ ที่เพิ่งป้อนเข้าไปเมื่อ
225 สักครู่นี้ แล้วใช้ C-d ลบข้อความออกบางส่วน จนความยาวของข้อความอยู่ภายในหนึ่ง
226 บรรทัด สังเกตดูว่าเครื่องหมาย '\' จะหายไป
227
228 >> ให้เลื่อนเคอร์เซอร์ไปไว้ที่ตำแหน่งแรกสุดของบรรทัด แล้วกด <Delete> ดู การทำ
229 แบบนี้ จะทำให้สัญลักษณ์คั่นระหว่างบรรทัดถูกลบออกไป บรรทัดนั้นก็จะถูกเอาไปต่อกับ
230 บรรทัดก่อนหน้านั้น รวมกันเป็นบรรทัดยาวบรรทัดเดียว และอาจจะมีสัญลักษณ์ต่อบรรทัด
231 ปรากฏขึ้น
232
233 >> ให้กด <Return> เพื่อเพิ่ม ตัวอักษรขึ้นบรรทัดใหม่ กลับไปอย่างเดิม
234
235 คำสั่งส่วนใหญ่ของ Emacs จะสามารถกำหนดจำนวนครั้งที่ต้องการให้ปฏิบัติได้ รวมทั้งการ
236 แทรก (insert) ตัวอักษรด้วย
237
238
239 >> ลองป้อนคำสั่ง C-u 8 * ดู สังเกตดูว่าเกิดอะไรขึ้น
240
241 ถ้าต้องการจะเพิ่มบรรทัดว่าง ๆ (blank line) ระหว่างสองบรรทัด ให้เลื่อนไปที่ตำแหน่ง
242 แรกสุดของบรรทัดที่สอง แล้วกด C-o
243
244 >> ให้เลื่อนไปที่ตำแหน่งแรกสุดของบรรทัดใดก็ได้ แล้วลองกด C-o ดู
245
246 ถึงตรงนี้ เราก็ได้เรียนวิธีพื้นฐานสำหรับการป้อนข้อความ และการแก้ที่ผิดแล้ว นอกจากจะ
247 ลบได้ทีละตัวอักษรแล้ว ยังมีคำสั่งซึ่งสามารถใช้ลบได้ในเป็นคำ ๆ หรือเป็นบรรทัด ๆ อีกด้วย สรุป
248 คำสั่งสำหรับการลบได้ดังนี้
249
250 <Delete> ลบตัวอักษรที่อยู่หน้าเคอร์เซอร์
251 C-d ลบตัวอักษรที่อยู่ที่เคอร์เซอร์
252
253 ESC <Delete> ลบคำที่อยู่หน้าเคอร์เซอร์
254 ESC d ลบคำตั้งแต่ตำแหน่งที่เคอร์เซอร์อยู่
255
256 C-k ลบบรรทัดตั้งแต่ตำแหน่งที่เคอร์เซอร์อยู่
257
258 ในบางครั้ง เราอาจต้องการจะเอาส่วนที่ลบไปกลับคืนมา โปรแกรม Emacs จะจำส่วนที่ลบ
259 ออกไว้ เวลาที่ลบข้อความในหน่วยที่มากกว่าหนึ่งตัวอักษร ให้ใช้คำสั่ง C-y เวลาที่ต้องการจะเอา
260 ข้อความกลับคืน สิ่งที่ควรระวังก็คือ C-y ไม่ใช่ใช้ได้เพียงแค่ตำแหน่งที่ลบข้อความออกเท่านั้น แต่จะ
261 ใช้กับตำแหน่งใดก็ได้ C-y เป็นคำสั่งสำหรับแทรกข้อความที่เก็บไว้ ลงในตำแหน่งที่มีเคอร์เซอร์อยู่
262 เราสามารถใช้ความสามารถนี้ในการเคลื่อนย้ายข้อความได้
263
264 คำสั่งสำหรับการลบมีอยู่สองแบบคือ คำสั่ง "Delete" กับ คำสั่ง "Kill" คำสั่ง "Kill"
265 จะเก็บส่วนลบออกไว้ แต่คำสั่ง "Delete" จะไม่เก็บ แต่ถ้าหากใช้คำสั่งนี้หลาย ๆ ครั้ง ก็จะเก็บ
266 ส่วนที่ลบออกไว้ให้
267
268 >> ให้กด C-n สักสองสามครั้ง เพื่อเลื่อนไปยังที่ที่เหมาะสมบนหน้าจอ แล้วลองกด C-k เพื่อ
269 ลบบรรทัดนั้นออกดู
270
271 เมื่อกด C-k ครั้งแรก ข้อความในบรรทัดนั้นจะถูกลบออก และเมื่อกดอีก C-k อีกครั้ง บรรทัด
272 นั้นเองทั้งบรรทัดก็จะถูกลบออกไปด้วย แต่ถ้ากำหนดจำนวนครั้งให้กับคำสั่ง C-k ก็จะหมายถึง ให้ลบ
273 บรรทัดออก (ทั้งเนื้อหาและตัวบรรทัด) เป็นจำนวนบรรทัด เท่ากับจำนวนครั้งที่กำหนด
274
275 บรรทัดที่เพิ่งลบออกไป จะถูกเก็บไว้ และสามารถนำกลับคืนมาได้ โดยใช้คำสั่ง C-y
276
277 >> ลองกด C-y ดู
278
279 ข้อความที่ถูกลบออก โดยการกด C-k หลาย ๆ ครั้ง จะถูกเก็บรวบรวมไว้ และสามารถนำ
280 กลับมาทั้งหมดได้ในครั้งเดียว โดยการกด C-y
281
282 >> ลองกด C-k ดูหลาย ๆ ครั้ง
283
284 >> คำสั่งสำหรับเรียกข้อความกลับมา คือ C-y ก่อนอื่นให้เลื่อนเคอร์เซอร์ลงไปข้างล่าง
285 สักสองสามบรรทัด แล้วลองกด C-y ดู ก็จะสามารถคัดลอก (copy) ข้อความได้
286
287 ถ้าตอนนี้เก็บข้อความอะไรบางอย่างไว้ แล้วลบข้อความอื่นเพิ่มเข้าไปอีก จะเกิดอะไรขึ้น
288 ผลลัพธ์คือ C-y จะเรียกคืนได้แค่เพียงข้อความที่ลบออกครั้งล่าสุดเท่านั้น
289
290
291 >> ลองลบบรรทัดดูหนึ่งบรรทัด แล้วเลื่อนเคอร์เซอร์ไปที่อื่น แล้วลบบรรทัดออกดูอีกหนึ่ง
292 บรรทัด ลองกด C-y ดู แล้วสังเกตดูว่าจะได้แค่เพียงบรรทัดที่สองคืนเท่านั้น
293
294 การอันดู (UNDO)
295 =============
296
297 เวลาที่แก้ไขข้อความบางอย่าง แล้วต้องการจะเปลี่ยนกลับให้เป็นอย่างเดิม ก็สามารถทำได้ทุก
298 เมื่อด้วยคำสั่ง C-x u โดยปกติ จะใช้สำหรับยกเลิกคำสั่ง ที่ป้อนเข้าไปโดยไม่ตั้งใจ สามารถใช้
299 คำสั่งนี้กี่ครั้งก็ได้ตามต้องการ
300
301 >> ลองลบบรรทัดนี้ออกดู ด้วยคำสั่ง C-k แล้วเรียกกลับคืนมาด้วย C-x u
302
303 คำสั่ง C-_ ก็เป็นคำสั่งอันดูอีกอันหนึ่ง ความสามารถเหมือนกับคำสั่ง C-x u
304
305 สามารถกำหนดจำนวนครั้งให้คำสั่ง C-_ และ C-x u ได้
306
307
308 แฟ้มข้อมูล (File)
309 ==============
310
311 เราจำเป็นต้องเก็บรักษา (save) ข้อความที่แก้ไขไว้ในแฟ้มข้อมูล ถ้าต้องการจะให้สิ่งที่
312 แก้ไขเปลี่ยนไปอย่างถาวร ไม่เช่นนั้น สิ่งที่แก้ไขไปก็จะหายไป ทันทีที่เลิกการใช้ Emacs
313
314 แฟ้มข้อมูลที่มองเห็นอยู่ คือสิ่งที่บันทึกสิ่งที่กำลังแก้ไขอยู่ หรือพูดง่าย ๆ ก็คือแฟ้มข้อมูลที่มองเห็น
315 อยู่คือตัวแฟ้มข้อมูลที่กำลังแก้ไขอยู่
316
317 แต่จนกว่าแฟ้มข้อมูลจะถูกเก็บรักษา (save) ลงไป แฟ้มข้อมูลที่ถูกแก้ไขอยู่ จะไม่ถูกเขียนทับ
318 ลงไปอย่างเด็ดขาด อันนี้เพื่อเป็นการป้องกันการเขียนทับแฟ้มข้อมูลที่แก้ไขไปแบบครึ่ง ๆ กลาง ๆ
319 โดยไม่ได้ตั้งใจ
320
321 นอกจากนี้ เพื่อเป็นการป้องกันการเก็บรักษา (save) สิ่งที่แก้ไขผิดไปโดยไม่ตั้งใจ Emacs
322 จะเปลี่ยนชื่อแฟ้มข้อมูลต้นฉบับเก็บไว้ให้ ก่อนการเก็บรักษา
323
324 หมายเหตุ: Emacs ยังมีการป้องกันอุบัติเหตุที่คาดไม่ถึง โดยการเก็บรักษาแฟ้มข้อมูลที่กำลัง
325 แก้ไขอยู่เป็นระยะ ๆ โดยใช้ชื่อแฟ้มข้อมูลต่างกัน ด้วยวิธีนี้ จะทำให้สามารถลด
326 ความเสียหายที่อาจเกิดขึ้นได้ ให้น้อยที่สุดเท่าที่จะทำได้
327
328 ตรงส่วนล่างของจอ จะมีบรรทัดโหมด (mode line) ในลักษณะข้างล่างแสดงอยู่
329
330
331 (ตัวอย่าง) [--]J:--**-Mule: TUTORIAL.th (Fundamental) ---55%--------------
332
333
334 ฉบับสำเนาของ Tutorial ของ Emacs ที่กำลังอ่านอยู่นี้ชื่อ TUTORIAL.th เวลาที่สั่งให้หา
335 แฟ้มข้อมูลหรือ find-file (ค้นหาแฟ้มข้อมูล แล้วอ่านเข้ามาในบัฟเฟอร์) ก็จะแสดงชื่อแฟ้มข้อมูลไว้
336 ตรงส่วน TUTORIAL.th ตัวอย่างเช่น ถ้าสั่งให้หาแฟ้มข้อมูลชื่อ new-file บรรทัดโหมดก็จะแสดง
337 ผลว่า "Mule: new-file"
338
339 หมายเหตุ: จะมีคำอธิบายเพิ่มเติมเกี่ยวกับบรรทัดโหมด (mode line) ในตอนหลัง
340
341 คำสั่งให้หาแฟ้มข้อมูล และคำสั่งให้เก็บรักษาแฟ้มข้อมูล มีลักษณะแตกต่างจากคำสั่งที่ผ่าน ๆ มา
342 ตรงที่ ประกอบไปด้วย 2 ตัวอักษร คือต้องกดคำสั่งบางอย่าง ตามหลังคำสั่ง C-x ซึ่งหมายถึงคำสั่ง
343 เกี่ยวกับแฟ้มข้อมูล
344
345 และอีกจุดหนึ่ง แต่แตกต่างจากคำสั่งที่ผ่านมาคือ เวลาสั่งให้ค้นหาแฟ้มข้อมูล เราจะถูก Emacs
346 ถามชื่อของแฟ้มข้อมูลนั้น ๆ เราเรียกคำสั่งเหล่านั้นว่า คำสั่งประเภทที่ถามตัวเลือก (argument)
347 จากเทอร์มินัล
348
349 หมายเหตุ: ในที่นี้ ตัวเลือก (argument) คือชื่อแฟ้มข้อมูล
350
351 C-x C-f สั่งให้หา (find) แฟ้มข้อมูล
352
353 แล้ว Emacs จะถามชื่อของแฟ้มข้อมูล โดยปรากฏขึ้นที่ส่วนล่างของจอ เราเรียกส่วนที่ให้ป้อน
354 ชื่อแฟ้มข้อมูลนั้นว่า มินิบัฟเฟอร์ (mini buffer) มินิบัฟเฟอร์จะถูกใช้งานในลักษณะนี้ มินิบัฟเฟอร์
355 จะหมดหน้าที่และหายไป หลังจากที่ป้อนชื่อแฟ้มข้อมูล แล้วกดปุ่ม <Return>
356
357 >> ลองกด C-x C-f แล้วตามด้วย C-g ดู เป็นการสั่งยกเลิกเนื้อหาในมินิบัฟเฟอร์ หรือ
358 ยกเลิกคำสั่ง C-x C-f ดังนั้น Emacs จะไม่ค้นหาแฟ้มข้อมูลใด ๆ
359
360 คราวนี้ มาลองเก็บรักษาแฟ้มข้อมูลดู เวลาที่ต้องการเก็บรักษาสิ่งที่แก้ไขมาจนถึงตอนนี้ ก็ให้ใช้
361 คำสั่งดังนี้
362
363 C-x C-s เก็บรักษา (save) แฟ้มข้อมูล
364
365 แล้วเนื้อหาที่อยู่ใน Emacs ก็จะถูกเขียนลงไปที่แฟ้มข้อมูล เวลาเก็บรักษาแฟ้มข้อมูล แฟ้มข้อมูล
366 ต้นฉบับจะไม่สูญหายไป แต่จะถูกเก็บไว้ในชื่อใหม่ ซึ่งได้มาจากชื่อเก่าที่ต่อท้ายด้วย '~'
367
368 หลังจากที่เก็บรักษาแฟ้มข้อมูลเสร็จแล้ว Emacs ก็จะแสดงชื่อแฟ้มข้อมูลที่เก็บให้ดู
369
370 >> ลองกด C-x C-x เพื่อเก็บรักษาสำเนาของ Tutorial นี้ดู ก็จะเห็นว่า ที่ส่วนล่าง
371 ของจอ มีข้อความว่า "Wrote ...../TUTORIAL.th" ปรากฏขึ้น
372
373 เวลาที่จะสร้างแฟ้มข้อมูลใหม่ ก็ให้ทำราวกับว่าจะค้นหา (find-file) แฟ้มข้อมูลเก่าซึ่งมี
374 อยู่ก่อนหน้านี้แล้ว แล้วพิมพ์ข้อความลงไปในแฟ้มข้อมูลที่หาเจอ
375
376 และเวลาที่สั่งเก็บรักษาแฟ้มข้อมูลเท่านั้น คือตอนที่ Emacs จะเก็บเนื้อหาที่แก้ไขมาทั้งหมด ลง
377 ในแฟ้มข้อมูลเป็นครั้งแรก
378
379
380 บัฟเฟอร์ (Buffer)
381 ===============
382
383 ถ้าหากสั่งให้หาแฟ้มข้อมูลอันที่สอง ด้วยคำสั่ง C-x C-f เนื้อหาของแฟ้มข้อมูลแรก ก็จะยังคง
384 ถูกเก็บรักษาอยู่ใน Emacs สิ่งที่เก็บรักษาแฟ้มข้อมูลที่อ่านเข้ามา ซึ่งอยู่ภายใน Emacs เรียกว่า
385 บัฟเฟอร์ (Buffer) เวลาที่อ่านแฟ้มข้อมูลใหม่เข้ามา Emacs ก็จะสร้างบัฟเฟอร์ใหม่ ขึ้นมาภายใน
386
387 ถ้าต้องการจะดูรายการของบัฟเฟอร์ ที่ถูกเก็บรักษาอยู่ภายใน Emacs ก็ให้กดคำสั่ง
388
389 C-x C-b
390
391 >> ลองกด C-x C-b ดู สังเกตดูว่าแต่ละบัฟเฟอร์มีชื่อว่าอะไร และถูกตั้งชื่อไว้ว่า
392 อย่างไร ใน Emacs
393
394 มีบางบัฟเฟอร์ ที่ไม่มีคู่กับแฟ้มข้อมูลจริง ๆ ตัวอย่างเช่น ไม่มีแฟ้มข้อมูลที่มีชื่อว่า "*Buffer
395 List*" อยู่จริง ๆ แต่เป็นบัฟเฟอร์ที่สร้างขึ้นมาเพื่อแสดงรายการบัฟเฟอร์ โดยคำสั่ง C-x C-b
396
397 ข้อความทุกข้อความที่ปรากฏอยู่ในวินโดว์ของ Emacs นั้น จะอยู่ในบัฟเฟอร์ใดบัฟเฟอร์หนึ่งเสมอ
398
399 >> ลองกด C-x 1 เพื่อลบรายการบัฟเฟอร์ออกดู
400
401 การเรียกแฟ้มข้อมูลอื่นขึ้นมาแก้ไข ตอนที่กำลังแก้ไขแฟ้มข้อมูลหนึ่งอยู่นั้น จะไม่ทำให้แฟ้มข้อมูล
402 แรกถูกเก็บรักษา สิ่งที่แก้ไขไปในแฟ้มข้อมูลแรกจะถูกบันทึกไว้ในบัฟเฟอร์ของแฟ้มข้อมูลนั้น เท่านั้น
403
404 การสร้างบัฟเฟอร์ใหม่ขึ้น สำหรับแก้ไขแฟ้มข้อมูลอันที่สอง แล้วแก้อะไรบางอย่างในบัฟเฟอร์นั้น
405 จะไม่มีผลใด ๆ ต่อบัฟเฟอร์ของแฟ้มข้อมูลอันที่หนึ่งทั้งสิ้น จุดนี้ทำให้สามารถเก็บแฟ้มข้อมูลแรกไว้เพื่อ
406 แก้ไขในตอนหลัง
407
408 แต่เวลาที่ต้องการจะเก็บรักษา (save) บัฟเฟอร์ลงไปในแฟ้มข้อมูล ด้วยคำสั่ง C-x C-s นั้น
409 จะต้องสวิทซ์ไปยังบัฟเฟอร์ที่ต้องการจะเก็บ ด้วยคำสั่ง C-x C-f ซึ่งค่อนข้างยุ่งยาก เรามีคำสั่งซึ่ง
410 ใช้สำหรับการนี้โดยเฉพาะ คือ
411
412 C-x s เก็บรักษา (save) ทุกบัฟเฟอร์ที่มีอยู่
413
414 C-x s จะเก็บรักษาทุกบัฟเฟอร์ที่ถูกแก้ไขเนื้อหาไป ลงในแฟ้มข้อมูล โดยจะถามก่อนว่าจะให้
415 เก็บบัฟเฟอร์นี้ไหม y หรือ n กับบัฟเฟอร์แต่ละบัฟเฟอร์ คำถามจะปรากฏในส่วนล่างของหน้าจอ ดัง
416 ตัวอย่างนี้
417
418 Save file /usr/private/yours/TUTORIAL.th? (y or n)
419
420
421
422 การขยายคำสั่ง (extension)
423 =======================
424
425 ในโปรแกรม Editor นี้ มีจำนวนคำสั่งมากกว่า จำนวนคำสั่งซึ่งสามารถกดได้โดยปุ่มคอนโทรล
426 หรือปุ่ม META ได้หมด คำสั่งขยาย (eXtend) มีไว้เพื่อให้สามารถใช้คำสั่งเหล่านี้ได้หมด มีอยู่ 2
427 แบบ ดังนี้
428
429 C-x ขยายเพิ่มด้วยตัวอักษร สำหรับกดตัวอักษรตามเข้าไป 1 ตัว
430 ESC x ขยายเพิ่มด้วยชื่อคำสั่ง สำหรับกดชื่อคำสั่งตามเข้าไปทั้งหมด
431
432 คำสั่งประเภทนี้ ก็เป็นคำสั่งที่มีประโยชน์ แต่ส่วนใหญ่จะถูกเรียกใช้ น้อยครั้งกว่าคำสั่งทั่วไป
433 ตัวอย่างเช่น คำสั่งหาแฟ้มข้อมูล (find) C-x C-f คำสั่งเก็บรักษาแฟ้มข้อมูล (save) C-x C-s
434 คำสั่ง C-x C-c (เลิก Editor) ต่างก็เป็นหนึ่งในคำสั่งเหล่านี้
435
436 คำสั่ง C-z เป็นคำสั่งที่ใช้ในในการออกจาก Emacs ค่อนข้างบ่อย คำสั่งนี้จะไม่ยกเลิก
437 Emacs เลยทีเดียว แต่จะหยุด Emacs ไว้ชั่วคราว เพื่อให้สามารถกลับไปใช้ csh ได้อีก การกด
438 C-z จึงเป็นการหยุด Emacs ไว้ชั่วคราวเท่านั้น จะไม่ทำความเสียหายให้กับเนื้อหาที่แก้ไขไป
439
440 หมายเหตุ: แต่ทว่า ในกรณีที่ใช้บน X-window หรือใช้ sh อยู่ ก็จะไม่มีความสามารถนี้
441
442
443 คำสั่งประเภท C-x มีมากมายหลายคำสั่ง คำสั่งที่อธิบายไปแล้วมีดังนี้
444
445 C-x C-f หาแฟ้มข้อมูล (find) สำหรับแก้ไข
446 C-x C-s เก็บรักษาแฟ้มข้อมูล (save)
447 C-x C-b แสดงรายการบัฟเฟอร์ (buffer list)
448 C-x C-c เลิกการใช้ Editor และเก็บรักษาแฟ้มข้อมูลโดยอัตโนมัติ แต่ถ้าหากมีแฟ้ม
449 ข้อมูลบางอันถูกแก้ไข ก็ให้ถามว่าจะเก็บรักษาแฟ้มข้อมูลนั้นไหม โดยทั่วไป
450 การออกจาก Emacs ทำได้โดยคำสั่ง C-x C-s C-x C-c คือให้เก็บรักษา
451 ก่อนแล้วจึงเลิก
452
453 คำสั่งขยายเพิ่มแบบชื่อนั้น ใช้สำหรับคำสั่งที่ไม่ค่อยได้ใช้ หรือคำสั่งที่ใช้เฉพาะกับโหมดพิเศษบาง
454 โหมด ตัวอย่างเช่น คำสั่ง "command-apropos" ซึ่งจะถาม คีย์เวิร์ด (keyword) แล้วแสดงผล
455 คำสั่งทุกคำสั่งที่มีชื่อเกี่ยวข้องกับกับคีย์เวิร์ดนั้น เวลาจะสั่งคำสั่งนี้ ก็ให้กด ESC x แล้วจะมีตัวอักษร
456 "M-x" ปรากฏขึ้นที่ส่วนล่างของจอ จากนั้นก็ให้ใส่ชื่อคำสั่งที่ต้องการ (ในกรณีนี้คือ
457 "command-apropos") เมื่อป้อนข้อมูลไปถึง "command-a" แล้วกด SPACE BAR ส่วนที่เหลือของ
458 ชื่อคำสั่งก็จะถูกเติมเต็ม (completion) ให้เองโดยอัตโนมัติ หลังจากนั้น จะถูกถามคีย์เวิร์ด ก็ให้
459 กดสายอักขระ (string) ที่ต้องการรู้ลงไป ต้องไม่ใส่คีย์เวิร์ดอะไรเลย ก็จะได้คำสั่งทั้งหมดที่มีอยู่
460
461 >> ลองกด ESC x ตามด้วย "command-apropos<Return>" หรือ
462 "command-a<Space><Return>" หลังจากนั้นก็กด "kanji<Return>" ดู
463
464 ให้กด C-x 1 เวลาต้องการจะลบ "วินโดว์" ที่โผล่ขึ้นมาใหม่
465
466 บรรทัดโหมด (Mode Line)
467 =====================
468
469 เวลาที่พิมพ์คำสั่งเข้าไปช้า ๆ Emacs จะแสดงสิ่งที่พิมพ์ลงไปตรงบรรทัดล่างสุดของจอซึ่งเรียก
470 ว่า echo area บรรทัดซึ่งอยู่ถัดขึ้นมาหนึ่งบรรทัด เรียกว่าบรรทัดโหมด (mode line) บรรทัด
471 โหมดมีลักษณะดังนี้
472
473
474 [--]J:--**-Mule: TUTORIAL.th (Fundamental) ---NN%--------------
475
476
477 หมายเหตุ: ตรงส่วน NN ของ NN% จะมีตัวเลขใส่อยู่ บรรทัดโหมดที่แสดงอยู่อาจจะแตกต่าง
478 ไปจากตัวอย่างบ้าง แต่ก็ไม่เป็นไร ตัวอย่างเช่น อาจจะมีเวลาหรือ uptime
479 แสดงผลอยู่ อันนี้เป็นความสามารถของโปรแกรม display-time
480
481 บรรทัดนี้มีข้อมูลที่เป็นประโยชน์อยู่หลายอย่าง
482
483
484 ข้อมูลแรกคือ ชื่อแฟ้มข้อมูลที่กำลังอ่านอยู่ ตัวเลข NN% จะแสดงให้รู้ว่ากำลังแสดงผลส่วนไหน
485 ของแฟ้มข้อมูลอยู่ โดยคิดเป็นเปอร์เซนต์ ถ้าเป็นส่วนบนสุดของแฟ้มข้อมูลอยู่ก็จะมีข้อความว่า
486 --Top-- แสดงอยู่ ถ้าเป็นส่วนล่างสุดก็จะมีข้อความว่า --Bot-- ถ้าหากสามารถแสดงแฟ้มข้อมูล
487 ทั้งหมดบนหน้าจอได้ ก็จะมีข้อความว่า --All-- แสดงอยู่
488
489 ภายในวงเล็บของบรรทัดโหมด จะแสดงให้รู้ว่าตอนนี้อยู่ในโหมด (mode) อะไร ในตัวอย่าง
490 ข้างบนคือ อยู่ในโหมด Fundamental ซึ่งเป็นโหมดเริ่มต้น (default) โหมดนี้เป็นหนึ่งในโหมด
491 หลัก (Major Mode)
492
493 Emacs มีโหมดหลัก (Major Mode) สำหรับการโปรแกรมภาษา หรือการแก้ข้อความ เช่น
494 Lisp mode Text mode และโหมดอื่น ๆ อีกหลายโหมด โดยปกติ Emacs จะอยู่ในโหมดหลัก
495 โหมดใดโหมดหนึ่งเสมอ
496
497 คำสั่งบางคำสั่งจะมีพฤติกรรมที่แตกต่างกันโดยสิ้นเชิง เมื่ออยู่ในโหมดหลักที่ต่างกัน ตัวอย่าง
498 เช่น เวลาโปรแกรมภาษา จะมีคำสั่งสำหรับสร้าง หมายเหตุ (comment) อยู่ เนื่องจากวิธีใส่
499 หมายเหตุของภาษาแต่ละภาษาแตกต่างกัน คำสั่งนี้ก็จะแตกต่างกันไปในแต่ละโหมดหลัก เพื่อให้
500 สามารถใส่หมายเหตุในแต่ละภาษาได้อย่างถูกต้อง
501
502 คำสั่งสำหรับการเปลี่ยนโหมดให้เป็นโหมดหลักอื่น คือคำสั่งขยาย (extend) ซึ่งชื่อคำสั่งเป็นชื่อ
503 โหมด ตัวอย่างเช่น คำสั่ง M-x fundamental-mode คือคำสั่งสำหรับเปลี่ยนโหมดเป็นโหมด
504 Fundamental
505
506 เวลาที่จะแก้ไขแฟ้มข้อมูลภาษาอังกฤษ ก็ให้ใช้ Text mode
507
508 >> ลองป้อนคำสั่ง M-x text-mode<Return>
509
510 ถ้าต้องการหาข้อมูลเพิ่มเกี่ยวกับโหมดหลักที่ใช้อยู่ในปัจจุบัน ก็ให้ป้อนคำสั่ง C-h m
511
512 >> ให้กด C-h m เพื่อศึกษาข้อแตกต่างระหว่าง Text mode กับ Fundamental mode
513
514 >> ให้กด C-x 1 เพื่อลบเอกสารออกจากจอ
515
516 ตรงส่วนซ้ายของบรรทัดโหมด จะมีสัญลักษณ์ '[--]' เพื่อแสดงโหมดสำหรับการป้อนข้อมูล
517 (input mode) อยู่ สัญลักษณ์ [--] หมายถึงสามารถป้อนข้อมูลได้ด้วยตัวอักษรภาษาอังกฤษ
518 (English alphabets) กรุณาอ่านคู่มือของ "Tamago" สำหรับรายละเอียดของวิธีใช้
519
520 และตรงด้านขวาของสัญลักษณ์นั้น จะมีเครื่องหมายแสดงสถานะของ flag ของระบบรหัส
521 (coding-system) อยู่ Mule สามารถกำหนดระบบรหัสแยกเฉพาะสำหรับ การเก็บอ่านแฟ้มข้อมูล
522 การป้อนข้อมูลจากคีย์บอร์ด การแสดงผลออกทางจอ ได้อิสระจากกัน แต่โดยปกติจะแสดงเฉพาะ
523 สัญลักษณ์ช่วยจำ (mnemonic) ของระบบรหัสสำหรับการเก็บอ่านแฟ้มข้อมูล เท่านั้น
524
525 >> ตรวจดูว่ามีสัญลักษณ์ คล้ายคลึงกับ "J:" "S:" "E:" แสดงอยู่ที่บรรทัดโหมดหรือไม่
526
527 ตัวอักษรตัวแรกคือ สัญลักษณ์ช่วยจำ (mnemonic) ของระบบรหัสที่ใช้อยู่ ตัว ':' แสดงให้รู้
528 ว่ามีตัวอักษรของภาษาอื่น นอกจากภาษาอังกฤษแสดงอยู่ (เช่น ภาษาจีน ภาษาญี่ปุ่น เป็นต้น) ตัว J
529 หมายถึง รหัสที่ใช้กับ JUNET คือ รหัส JIS ตัว S หมายถึง Shift-JIS และ ตัว E หมายถึง
530 รหัส EUC ภาษาญี่ปุ่น จะสลับเปลี่ยน (toggle) การแสดงผลภาษานานาชาติได้โดย C-x C-k t
531
532 ตัวอย่างข้างล่าง คือการสลับเปลี่ยนไม่ให้แสดงภาษานานาชาติ แล้วสลับกลับอีกครั้งหนึ่ง
533
534 >> ลองป้อนคำสั่ง C-x C-k t ดูสองครั้ง
535
536 ถ้าเทอร์มินัลที่ใช้อยู่มีปุ่ม META และโหมดที่ใช้อยู่เป็นรหัส JIS เราก็จะสามารถใช้ปุ่ม META
537 แทนการกดปุ่ม ESCAPE ได้ วิธีใช้จะเหมือนกับการใช้ปุ่มคอนโทรล คือให้กดปุ่ม META ค้างไว้แล้วจึง
538 กดตัวอักษรตาม M-<ตัวอักษร> จะทำหน้าที่เหมือนกับ ESC <ตัวอักษร> นั่นคือ ทุกอย่างที่อธิบายมา
539 จนถึงจุดนี้ จะยังคงมีผลเหมือนเดิม หลังจากเปลี่ยน ESC <ตัวอักษร> ให้เป็น M-<ตัวอักษร> แต่ข้อ
540 ควรระวังก็คือ ปุ่ม META จะไม่สามารถใช้ได้กับรหัส Shift-JIS และ EUC
541
542 การเปลี่ยนระบบรหัสจะมีผลแค่เพียงกับแต่ละบัฟเฟอร์เท่านั้น สามารถดูคำสั่งเกี่ยวกับระบบรหัส
543 ได้โดยคำสั่ง C-h a coding-system <Return>
544
545 >> ให้ป้อนคำสั่ง C-h a coding-system <Return> แล้วอ่านรายละเอียดของคำสั่ง
546 set-display-coding-system set-file-coding-system และ
547 set-process-coding-system จากเอกสารที่ปรากฏขึ้น
548
549 การค้นหา (search)
550 ================
551
552 Emacs สามารถค้นหาสายอักขระ (string) ภายในแฟ้มข้อมูลไปทางข้างหน้าหรือข้างหลังได้
553 ถ้าต้องการค้นหาไปทางข้างหน้าของตำแหน่งเคอร์เซอร์ (cursor) ก็ให้กด C-s ถ้าต้องการค้นหา
554 ไปทางข้างหลังของตำแหน่งเคอร์เซอร์ ก็ให้กด C-r หลังจากนั้นจะมีข้อความว่า "I-search:"
555 ปรากฏขึ้นตรง echo area ยกเลิกการค้นหาได้ด้วยการกด ESC
556
557
558 >> กด C-s เพื่อเริ่มการค้นหา แล้วกดตัวอักษรของคำว่า "cursor" ลงไปทีละตัวอย่าง
559 ช้า แล้วสังเกตดูว่าเคอร์เซอร์ขยับไปอย่างไร
560
561 >> ลองกด C-s ดูอีกหนึ่งครั้งเพื่อค้นหาคำว่า "cursor" ตัวต่อไป
562
563 >> กด <Delete> ดู 4 ครั้ง แล้วสังเกตดูว่าการเคลื่อนที่ของเคอร์เซอร์
564
565 >> กด ESC เพื่อยกเลิกการค้นหา
566
567 การค้นหาจะเริ่มขึ้นทันที ในระหว่างที่พิมพ์สายอักขระที่ต้องการจะค้นหา เข้าไปเพียงบางส่วน
568 ถ้าต้องการจะค้นหาตัวต่อไป ก็ให้กด C-s อีกหนึ่งครั้ง ถ้าหากค้นหาสายอักขระที่ป้อนเข้าไปไม่พบ ก็
569 จะมีข้อความปรากฏขึ้น ให้กด C-g เพื่อยกเลิก
570
571 ระหว่างที่ค้นหาอยู่ ถ้ากด <Delete> ตัวอักษรตัวสุดท้ายในสายอักขระก็จะถูกลบไป แล้ว
572 เคอร์เซอร์ก็จะกลับไปตำแหน่งก่อนหน้า ตัวอย่างเช่น ถ้ากด "cu" ก็จะค้นหาไปถึงตำแหน่งที่มีคำว่า
573 "cu" แต่ถ้ากด <Delete> ในจังหวะนี้ ตัว 'u' ใน search line ก็จะหายไป แล้วเคอร์เซอร์
574 จะขยับกลับไปที่ตำแหน่งที่มีตัว 'c' อยู่
575
576 ถ้ากดตัวอักษรคอนโทรล (control character) ตัวอื่น นอกเหนือจาก C-s หรือ C-r
577 การค้นหาก็จะสิ้นสุดลง
578
579 คำสั่ง C-s จะค้นหาสายอักขระที่ต้องการ ไปทางข้างหน้าของตำแหน่งเคอร์เซอร์ ถ้าต้องการ
580 ค้นหาไปทางทิศหลัง ก็ให้กด C-r นั่นคือ สามารถใช้ C-s และ C-r สลับกันเพื่อค้นหาไปได้ในทั้ง
581 สองทิศทาง C-s และ C-r ทำหน้าที่เหมือนกันทุกประการ จะต่างกันก็ตรงทิศทางการค้นหาเท่านั้น
582
583 Recursive Editing Level
584
585 บางที เราอาจจะหลุดเข้าไปอยู่ในสถานะที่เรียกว่า Recursive Editing Level ได้โดย
586 ไม่ตั้งใจ ในโหมดนี้ เครื่องหมายวงเล็บ '()' ที่แสดงชื่อโหมดหลัก (major mode) อยู่จะมีวงเล็บ
587 '[]' ล้อม เพิ่มขึ้นอีกหนึ่งชั้น ตัวอย่างเช่น ถ้าเดิมเป็น (Fundamental) อยู่ ก็จะเปลี่ยนเป็น
588 [(Fundamental)] แทน
589
590 หมายเหตุ: เราจะไม่อธิบายเกี่ยวกับ Recursive Editing Level ในที่นี้
591
592 ให้กด M-x top-level <Return> เพื่อที่จะออกจาก Recursive Editing Level
593
594 >> ลองกดดู ตรงส่วนล่างของจอจะมีข้อความว่า "Back to top level" ปรากฏขึ้น
595
596 เนื่องจาก เราอยู่ในระดับบนสุด (top level) อยู่แล้ว คำสั่งนี้จึงไม่มีผลใด ๆ
597
598 ไม่สามารถใช้ คำสั่ง C-g เพื่อที่จะออกจาก Recursive Editing Level ได้
599
600
601 Help
602 ====
603
604 Emacs มีความสามารถที่มีประโยชน์ มากมายหลายอย่าง ซึ่งไม่สามารถอธิบายได้หมดในที่นี้
605 แต่เราจะสามารถเรียกใช้ <HELP> เพื่อที่จะเรียนรู้ความสามารถเหล่านี้ ได้โดยการกด C-h ซึ่งจะ
606 ช่วยให้เราได้รับรู้ข้อมูลเพิ่มเติมหลายอย่าง
607
608 วิธีใช้คือให้กด C-h แล้วตามด้วยตัวเลือก (option) อีกหนึ่งตัวอักษร ถ้าไม่รู้ว่าจะต้องใช้
609 ตัวเลือกอะไร ก็ให้กด C-h ? แล้วจะมีคำอธิบายเกี่ยวกับตัวเลือกปรากฏขึ้น ได้หากเปลี่ยนใจจะ
610 ไม่เรียก HELP หลังจากกด C-h ก็ให้กด C-g เพื่อยกเลิกได้
611
612 คำสั่ง HELP พื้นฐานที่สุดอันหนึ่งก็คือ C-h c แล้วตามด้วยการกดคำสั่งบางคำสั่ง ซึ่งจะให้คำ
613 อธิบายสั้น ๆ เกี่ยวกับคำสั่งนั้น
614
615 >> ลองกด C-h c C-p ดู ซึ่งจะให้ข้อความว่า
616 "C-p runs the command previous-line"
617
618 คำสั่งนี้จะช่วยรื้อฟื้นความจำ เกี่ยวกับคำสั่งที่เคยผ่านตาแล้ว แต่จำไม่ได้ ได้เป็นอย่างดี คำสั่ง
619 ที่มีมากกว่าหนึ่งตัวอักษร เช่น C-x C-s ก็สามารถกดตามหลัง C-h c ได้
620
621 ถ้าหากต้องการรู้รายละเอียดมากกว่านี้ ก็ให้ใช้ k แทนตัว c
622
623 >> ลองกด C-h k C-p ดู
624
625 ก็จะมีวินโดว์เพิ่มใน Emacs อีกหนึ่งอัน เพื่อแสดงรายละเอียดของคำสั่งนั้น เมื่ออ่านจบแล้ว
626 ก็ให้กด C-x 1 เพิ่มลบวินโดว์ออก
627
628 ตัวเลือกอื่นที่มีประโยชน์ มีดังนี้
629
630 C-h f ให้ใส่ชื่อของคำสั่ง เพื่อแสดงรายละเอียดเกี่ยวกับคำสั่งนั้น
631
632 >> ให้กด C-h f previous-line แล้วตามด้วย <Return> เพื่อแสดงรายละเอียดเกี่ยว
633 กับคำสั่งซึ่งเรียกใช้ได้จากการกด C-p
634
635 C-h a แล้วตามด้วยคีย์เวิร์ด (keyword) เพื่อแสดงคำสั่งทุกคำสั่ง ที่มีคีย์เวิร์ด รวมอยู่
636 คำสั่งเหล่านี้สามารถเรียกใช้ได้โดยการกด ESC x
637
638 >> ลองกด C-h a file แล้วตามด้วย <Return> เพื่อแสดงชื่อคำสั่งทุกคำสั่งที่มีคำว่า
639 "file" รวมอยู่ ซึ่งจะมี find-file และ write-file ที่เรียกใช้ได้โดยการกด
640 C-x C-f และ C-x C-w รวมอยู่ด้วย
641
642 ท้ายสุดนี้
643 ======
644
645 อย่าลืม: คำสั่งสำหรับการเลิก Emacs คือ C-x C-c
646
647
648 เอกสารฉบับเบื้องต้นนี้ ตั้งใจเขียนขึ้นสำหรับผู้ที่เริ่มหัดใหม่ โดยเฉพาะ ถ้าหากมีจุดไหนที่ไม่
649 เข้าใจ ก็อย่ามัวแต่โทษตัวเอง แต่ขอให้โยนความผิดมายังผู้เขียนแทน
650
651
652 หลังจากใช้ EMACS ดูสักสองสามวัน ก็คงจะชินไปเอง ในตอนแรก อาจจะมีจุดที่รู้สึกสับสนและ
653 ไม่เข้าใจอยู่บ้าง แต่สิ่งนี้ย่อมเกิดขึ้นเสมอ เวลาแต่เริ่มใช้ Editor ใหม่ใด ๆ ก็ตาม โดยเฉพาะ
654 อย่างยิ่งกับ EMACS เนื่องจากเป็นโปรแกรมที่มีความสามารถหลากหลายมาก อันที่จริงแล้ว EMACS
655 ทำได้ทุกสิ่งทุกอย่าง
656
657
658
659 ขอขอบคุณ
660 =======
661 เอกสารฉบับนี้ ดัดแปลงมาจาก "MicroEMACS (kemacs) ภาษาญี่ปุ่น เบื้องต้น" ซึ่งได้มาจาก
662 JUNET เพื่อให้ใช้เป็น Tutorial สำหรับ GNUEmacs (Nemacs)
663
664 เอกสารนี้ ดัดแปลงมาจาก "JOVE Tutorial" (19 มกราคม 86) ของ Jonathan Payne
665 ซึ่งดัดแปลงมาจากเอกสารของ Steve Zimmerman แห่ง CCA-UNIX ซึ่งดัดแปลง (อีกที) มา
666 จากเอกสาร "Teach-Emacs" ฉบับเบื้องต้น (31 ตุลาคม 85) ของ MIT
667
668 Update - February 1986 by Dana Hoggatt.
669
670 Update - December 1986 by Kim Leburg.
671
672 Update/Translate - July 1987 by SANETO Takanori
673
674 ขอขอบคุณเป็นพิเศษ
675 ==============
676
677 คุณ SANETO Takanori (ซาเนโตะ ทากาโนริ) ผู้แปลภาษาญี่ปุ่นฉบับแรกสุด เอกสารฉบับนี้
678 เขียนด้วย GMW + Wnn + Nemacs ขอแสดงความขอบคุณ แด่ผู้ที่สร้างโปรแกรมสุดวิเศษเหล่านี้ขึ้น
679 และขอขอบคุณ คุณ Fujiwara Shoko ที่ให้ความช่วยเหลือในการแปล การป้อนข้อมูล และอย่างอื่นอีก
680 หลาย ๆ อย่าง
681
682
683
684
685 ขอรับผิดชอบ การแปลที่ผิดพลาด ข้อมูลเท็จ และอื่น ๆ ไว้แต่เพียงผู้เดียว
686
687 ซุซูกิ ฮิโรโนบุ@sra.co.jp
688
689
690 Update/Add - December 1987 by Hironobu Suzuki
691 Update/Add - November 1989 by Ken'ichi Handa
692 Update/Add - January 1990 by Shigeki Yoshida
693 Update/Add - March 1992 by Kenichi HANDA
694
695 Translated into Thai
696 - September 1994 by Manop Wongsaisuwan