Mercurial > hg > xemacs-beta
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 |