428
|
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
|