		      ==============================
		      GNUEMACS ภาษาญี่ปุ่น (Mule) เบื้องต้น
		      ==============================

หมายเหตุ:       เอกสารฉบับเบื้องต้นนี้ ถูกเขียนขึ้นโดยยึดหลักที่ว่า "ลองเล่นเลยดีกว่าเรียนรู้"
               บรรทัดที่เริ่มต้นด้วย ">>" จะมีคำสั่งว่า ต่อไปจะให้ทำอะไร

     โดยทั่วไป การป้อนคำสั่งให้กับ Mule ทำได้โดยใช้ ปุ่มคอนโทรล (ปุ่มที่บนหน้าสัมผัส เขียนไว้
ว่า CTRL หรือ CTL) หรือ ปุ่ม META (โดยปกติ หมายถึงปุ่ม ESC)  ในที่นี้ เราจะใช้สัญลักษณ์ต่อไป
นี้ แทนการเขียนเต็ม ๆ ว่า CONTROL หรือ META

C-<ตัวอักษร>     หมายถึง ให้กดปุ่มคอนโทรลค้างไว้ แล้วกดปุ่ม <ตัวอักษร>   ตัวอย่างเช่น C-f
               หมายถึง ให้กดปุ่มคอนโทรลค้างไว้ แล้วกดปุ่ม f
<<Blank lines inserted here by startup of help-with-tutorial>>
       >> ตอนนี้ขอให้ลองกด C-v (View Next Screen ดูหน้าต่อไป) ดู  เพื่อเลื่อนไปอ่านหน้า
          ต่อไป
          ต่อจากนี้เป็นต้นไป  ทุกครั้งที่อ่านหน้าหนึ่ง ๆ จบขอให้ทำในทำนองเดียวกัน เพื่อเลื่อนไป
          ดูหน้าต่อไป

ESC <ตัวอักษร>   หมายถึง ให้กดปุ่ม ESC แล้วปล่อย หลังจากนั้นจึงกดปุ่ม <ตัวอักษร> ตาม

หมายเหตุ:       <ตัวอักษร> ไม่ว่าเป็นตัวใหญ่หรือตัวเล็ก จะให้ความหมายเหมือนกันเมื่อถูกใช้ใน
               คำสั่ง   ถ้าหากมีปุ่ม META ให้กด ก็จะสามารถใช้การกด M-<ตัวอักษร> แทน
               การ ESC <ตัวอักษร> ได้  (คือให้กดปุ่ม META ค้างไว้ แล้วจึงกด <ตัวอักษร>)

ข้อสำคัญ:        เวลาจะเลิกใช้ Emacs ให้กด C-x C-c  หรือในกรณีที่สั่ง Emacs จาก csh
               ก็สามารถใช้ suspend (หยุดชั่วคราว) ได้  การ suspend Emacs ทำได้โดย
               กด C-z

     ต่อจากนี้  ขอให้ป้อนคำสั่ง C-v ทุก ๆ ครั้งที่อ่านจบหนึ่งหน้า

     ภายในหน้าที่แล้วกับหน้าถัดไป จะมีเนื้อหาซ้ำกันอยู่บางบรรทัด  ที่เป็นเช่นนี้ ก็เพื่อให้สามารถรู้
ได้ว่า เนื้อหาที่แสดงอยู่นั้น ต่อเนื่องกันอยู่


     ก่อนอื่น จำเป็นจะต้องรู้วิธีการโยกย้ายตำแหน่งไปมา ภายในแฟ้มข้อมูลเสียก่อน  ตามที่บอกไป
แล้ว ก็คือ C-v ใช้สำหรับเลื่อนไปข้างหน้า  ถ้าจะเลื่อนกลับที่เก่า ก็ให้กด ESC v

      >> ลองใช้ ESC v และ C-v เพื่อเลื่อนไปมาดู สักสองสามครั้ง

สรุป
===
     คำสั่ง สำหรับเลื่อนไปมาทีละหน้าภายในแฟ้มข้อมูล คือ

     C-v     เลื่อนไปข้างหน้า หนึ่งหน้าจอ
     ESC v   เลื่อนไปข้างหลัง หนึ่งหน้าจอ
     C-l     เขียนหน้าจอใหม่ และในขณะเดียวกัน ก็ให้เลื่อนตำแหน่งของเคอร์เซอร์ (cursor)
             ไปอยู่ตรงกลางจอ

       >> ขอให้สังเกตดูว่า ในขณะนี้เคอร์เซอร์อยู่ที่ไหน พร้อมทั้งจำข้อความที่อยู่รอบข้างของ
          เคอร์เซอร์ด้วย  แล้วลองกด C-l ดู   ตรวจสอบดูว่า เคอร์เซอร์เลื่อนไปอยู่ที่ไหน
          ข้อความที่อยู่รอบข้างเปลี่ยนไปอย่างไร

วิธีโยกย้ายเคอร์เซอร์ขั้นพื้นฐาน
=======================

     ตอนนี้ เราก็รู้วิธีโยกย้ายไปมาแบบทีละหน้าแล้ว  ต่อไป ก็มาเรียนรู้วิธีโยกย้ายไปที่ตำแหน่งใด
ตำแหน่งหนึ่งภายในหน้าเดียวกัน ซึ่งสามารถทำได้หลายวิธี  วิธีหนึ่งก็คือให้ใช้คำสั่ง ไปบรรทัดก่อนหน้า
(previous) ไปบรรทัดต่อไป (next) ไปด้านหน้า (forward) ไปด้านหลัง (backward)  คำสั่ง
เหล่านี้ ถูกตั้งไว้ที่ C-p C-n C-f และ C-b ตามลำดับ  ซึ่งจะทำให้โยกย้ายไปมาได้ โดยเทียบกับ
ตำแหน่งปัจจุบัน  สรุปเขียนเป็นแผนภาพได้ดังนี้


			      บรรทัดที่แล้ว C-p
                                    :
                                    :
   ตัวอักษรด้านหลัง C-b  ....  ตำแหน่งเคอร์เซอร์ปัจจุบัน  ....   ตัวอักษรด้านหน้า C-f
                                    :
                                    :
			      บรรทัดต่อไป C-n


     คำสั่งเหล่านี้ เอามาจากตัวอักษรตัวแรกของ คำว่า Previous Next Backward Forward
ซึ่งจะช่วยให้จำได้ไม่ยาก  คำสั่งเหล่านี้เป็นคำสั่งสำหรับการโยกย้ายขั้นพื้นฐาน ซึ่งต้องใช้อยู่เสมอ

       >> ลองกด C-n ดูหลาย ๆ ครั้ง  เพื่อเลื่อนเคอร์เซอร์มายังบรรทัดนี้ (บรรทัดที่กำลังอ่าน
          อยู่นี้)

       >> ลองกด C-f ดูหลาย ๆ ครั้ง  เพื่อเลื่อนเคอร์เซอร์ไปยังตรงกลางของบรรทัด แล้วลอง
          กด C-p เลื่อนขึ้นข้างบนดู  สังเกตดูด้วยว่า ตำแหน่งของเคอร์เซอร์เปลี่ยนไปอย่างไร

       >> ลองกด C-b ขณะที่อยู่ที่ตำแหน่งหน้าสุดของบรรทัดดู  สังเกตดูด้วยว่า เคอร์เซอร์เคลื่อน
          ไปอย่างไร  จากนั้นให้กด C-b อีกสองสามครั้ง  แล้วกด C-f เพื่อเลื่อนไปยังท้ายสุด
          ของบรรทัดดู  เคอร์เซอร์จะเป็นอย่างไร ถ้ากดจนเลยท้ายบรรทัดไป


     เวลาที่เลื่อนเคอร์เซอร์ จนเลยบรรทัดแรกสุดหรือบรรทัดท้ายสุดของหน้าไป  เคอร์เซอร์จะ
เลื่อนไปยังบรรทัดต่อไปในทิศทางนั้น ๆ  และปรับให้เคอร์เซอร์กลับมาอยู่บนหน้าจอเสมอ

       >> ลองกด C-n เพื่อเลื่อนเคอร์เซอร์ให้เลยบรรทัดล่างสุดของหน้าจอดู  แล้วสังเกตดูว่า
          เกิดอะไรขึ้น และตำแหน่งของเคอร์เซอร์เปลี่ยนไปอย่างไร

     ถ้ารู้สึกว่าการขยับไปทีละตัวอักษรนั้นอืดอาดยืดยาด  ก็สามารถใช้การเลื่อนเคอร์เซอร์ไปทีละคำ
ได้  กด ESC f เพื่อให้เลื่อนไปข้างหน้าหนึ่งคำ และ ESC b เพื่อให้เลื่อนไปข้างหลังหนึ่งคำ

หมายเหตุ:        สำหรับภาษาไทย  ยังไม่สามารถแบ่งแยกตำแหน่งของคำได้ถูกต้อง  จึงไม่
                สามารถใช้สองคำสั่งนี้ได้

       >> ลองกด ESC f และ ESC b ลองดูหลาย ๆ ครั้ง  และลองใช้ร่วมกับ C-f กับ C-b ดู
          ด้วย

     จะสังเกตเห็นได้ว่า ESC f และ ESC b มีรูปแบบคล้ายคลึงกับ C-f และ C-b  โดยส่วนใหญ่
ESC <ตัวอักษร> จะใช้เกี่ยวกับการจัดการข้อความ  ส่วน C-<ตัวอักษร> จะใช้กับสิ่งที่เป็นพื้นฐานมาก
กว่า (เช่น ตัวอักษร หรือ บรรทัด)

     C-a กับ C-e เป็นคำสั่งน่าจะรู้ไว้  เพราะค่อนข้างสะดวกดีทีเดียว  C-a ใช้สำหรับเลื่อน
เคอร์เซอร์ไปที่ตำแหน่งหน้าสุดของบรรทัด  C-e สำหรับเลื่อนไปที่ตำแหน่งท้ายสุดของบรรทัด


       >> ลองกด C-a ดูสองครั้ง  หลังจากนั้นให้กด C-e ดูสองครั้ง  แล้วลองสังเกตดูว่า การ
          กดคำสั่งนี้มากกว่าสองครั้ง จะไม่ช่วยให้เลื่อนเคอร์เซอร์ไปไหนได้มากกว่านั้นอีก

     ยังมีอีกสองคำสั่ง สำหรับการเลื่อนเคอร์เซอร์แบบง่าย ๆ คือ คำสั่ง ESC < สำหรับการเลื่อน
เคอร์เซอร์ไปที่ตำแหน่งแรกสุดของแฟ้มข้อมูล และคำสั่ง ESC > สำหรับการเลื่อนไปตำแหน่งท้ายสุด

     เราเรียกตำแหน่งของข้อความ ที่มีเคอร์เซอร์อยู่ว่า "จุด (point)"  หรือพูดอีกอย่างหนึ่งได้
ว่า เคอร์เซอร์ เป็นสิ่งที่บอกให้เรารู้ว่า จุด อยู่ตรงไหนของหน้าจอ

     สรุปคำสั่งสำหรับการเคลื่อนไปมา ซึ่งรวมการเคลื่อนที่ในหน่วยของคำ หน่วยของบรรทัดไว้ด้วย
ได้ดังนี้

     C-f     ไปข้างหน้าหนึ่งตัวอักษร
     C-b     กลับข้างหลังหนึ่งตัวอักษร

     ESC f   ไปข้างหน้าหนึ่งคำ
     ESC b   กลับข้างหลังหนึ่งคำ

     C-n     เลื่อนไปบรรทัดต่อไป
     C-p     เลื่อนไปบรรทัดที่แล้ว

     ESC ]   เลื่อนไปตำแหน่งท้ายสุดของย่อหน้า (paragraph)
     ESC [   เลื่อนไปตำแหน่งแรกสุดของย่อหน้า

     C-a     เลื่อนไปตำแหน่งแรกสุดของบรรทัด
     C-e     เลื่อนไปตำแหน่งท้ายสุดของบรรทัด

     ESC <   เลื่อนไปตำแหน่งแรกสุดของแฟ้มข้อมูล
     ESC >   เลื่อนไปตำแหน่งท้ายสุดของแฟ้มข้อมูล

       >> ลองใช้คำสั่งแต่ละคำสั่งดู  คำสั่งเหล่านี้เป็นคำสั่งที่ใช้กันบ่อยสุด  คำสั่งสองคำสั่งหลัง
          จะเลื่อนเคอร์เซอร์ ไปยังที่ที่ค่อนข้างไกล  ให้ลองใช้คำสั่ง C-v และ ESC v เพื่อ
          เลื่อนเคอร์เซอร์กลับมาที่ตรงนี้

     สำหรับคำสั่งอื่น ๆ ของ Emacs ก็เช่นกัน  คำสั่งเหล่านี้จะสามารถเพิ่มตัวเลือก (argument) 
เพื่อกำหนด จำนวนครั้ง ในการปฏิบัติงานได้   การกำหนดจำนวนครั้ง ทำได้โดยกด C-u แล้วตาม
ด้วยจำนวนครั้งที่ต้องการก่อน แล้วจึงค่อยกดคำสั่งตาม

     ตัวอย่างเช่น  คำสั่ง C-u 8 C-f หมายถึง ให้เลื่อนไปข้างหน้า 8 ตัวอักษร

       >> ให้ลองกำหนดจำนวนครั้งที่เหมาะสมสำหรับคำสั่ง C-n หรือ C-p เพื่อเลื่อนเคอร์เซอร์
          ให้มาอยู่ใกล้บรรทัดนี้ให้มากที่สุดเท่าที่จะทำได้ ในการเลื่อนเคอร์เซอร์ครั้งเดียว

     สำหรับ C-v และ ESC v จะได้ผลแตกต่างไปสักเล็กน้อย  ในกรณีนี้ จะเป็นการเลื่อนหน้าจอ
ขึ้นลง ตามจำนวนบรรทัดแทน

       >> ลองกด C-u 3 C-v ดู

     เลื่อนกลับที่เก่าได้โดย C-u 3 ESC v

คำสั่งยกเลิก
=========

     คำสั่ง C-g ใช้สำหรับสั่งยกเลิกคำสั่งต่าง ๆ ที่ต้องการการป้อนข้อมูลเพิ่มเติม  ตัวอย่างเช่น
ระหว่างที่ใส่ตัวเลือก (argument) อยู่ หรือระหว่างคำสั่งที่ต้องการกดปุ่มมากกว่า 2 ปุ่มขึ้นไป  ถ้า
หากต้องการยกเลิก ก็ให้กด C-g

       >> ลองกำหนดจำนวนครั้งให้เป็น 100 โดยการกด C-u 100 แล้วกด C-g ดู  หลังจากนั้น
          ให้ลองกด C-f ดู แล้วสังเกตดูว่าเคอร์เซอร์เลื่อนไปกี่ตัวอักษร  หรือตอนที่พลาดไปกด
          ESC โดยไม่ตั้งใจ  ก็สามารถกด C-g ยกเลิกได้

ข้อผิดพลาด (Error)
================

     ในบางครั้ง อาจจะมีการสั่งปฏิบัติงานบางอย่าง ที่ Emacs ยอมรับไม่ได้เกิดขึ้น  ตัวอย่างเช่น
การกดคำสั่งคอนโทรลบางคำสั่ง ที่ไม่ได้กำหนดไว้ใน Emacs ก็จะทำให้ Emacs ส่งเสียงเตือน
และแสดงผลที่บรรทัดล่างสุดของจอ บอกว่าผิดพลาดอย่างไร

     คำสั่งบางคำสั่งที่เขียนไว้ในเอกสารฉบับนี้ อาจใช้ไม่ได้กับ Emacs บางรุ่น (version) ซึ่งจะ
ทำให้มีการแสดงผลข้อผิดพลาด (error) ขึ้น   ในกรณีนี้ ขอให้กดปุ่มอะไรก็ได้ เพื่อเลื่อนไปยังส่วน
ต่อไป

วินโดว์ (Window)
==============

     Emacs สามารถเปิดวินโดว์ได้พร้อมกันหลายวินโดว์ และใช้วินโดว์เหล่านั้นแสดงผลข้อความ
ต่าง ๆ ตามต้องการได้  ก่อนอื่น ก็ควรจะทำความรู้จักกับคำสั่ง ที่ใช้สำหรับการลบวินโดว์ส่วนเกิน
ในเวลาที่แสดงผลลัพธ์ของคำสั่งบางคำสั่ง หรือ Help ออกเสียก่อน

     C-x 1             ทำให้เป็นวินโดว์เดียว

     คำสั่ง C-x 1 ใช้สำหรับลบวินโดว์อื่น  แล้วขยายวินโดว์ที่มีเคอร์เซอร์อยู่  ให้เต็มจอเป็น
วินโดว์เดียว

       >> ให้เลื่อนเคอร์เซอร์มาที่บรรทัดนี้  แล้วกด C-u 0 C-l

       >> ลองกด C-h k C-f ดู  แล้วสังเกตดูว่าวินโดว์นี้เปลี่ยนไปอย่างไร เมื่อมีวินโดว์ใหม่ซึ่ง
          อธิบายวิธีใช้คำสั่ง C-f ปรากฏขึ้น

       >> ลองกด C-x 1 เพื่อลบวินโดว์ที่โผล่ขึ้นมาใหม่ ออก

การแทรก (insert) และ การลบ (delete)
===================================

     บน Emacs เราจะสามารถพิมพ์ตัวอักษรเข้าไปได้เลย เมื่อต้องการพิมพ์ข้อความ  Emacs จะ
ถือว่าตัวหนังสือที่มองเห็นได้ทุกตัว (เช่น 'A' '7' '*' 'ก' และอื่น ๆ) เป็นข้อความที่ต้องการจะ
แทรก (insert) เข้าไปตรง ๆ  เมื่อจะจบบรรทัด ให้กด <Return> เพื่อเติมอักษรขึ้นบรรทัดใหม่
(linefeed character) แทรกเข้าไป

     ให้กด <Delete> เมื่อต้องการจะลบตัวอักษรที่เพิ่งพิมพ์เข้าไป  <Delete> หมายถึงปุ่มเขียน
บนผิวหน้าไว้ว่า "Delete"  หรือบางทีอาจจะเขียนไว้ "Rubout" ก็ได้   โดยทั่วไป <Delete>
ใช้สำหรับลบตัวอักษรที่อยู่ก่อนหน้าตำแหน่งเคอร์เซอร์ปัจจุบัน

       >> ลองพิมพ์ตัวอักษรเข้าไปหลาย ๆ ตัว  แล้วใช้ <Delete> ลบตัวอักษรเหล่านั้นทิ้ง

       >> ลองพิมพ์ข้อความลงไปให้เกินขอบขวา (right margin)  เวลาที่พิมพ์ข้อความเข้าไป
          ยาวเกินความกว้างของหนึ่งบรรทัด  บรรทัดนั้นก็จะ "ถูกต่อ" ให้ยาวเกินหนึ่งหน้าจอ
	  โดยใส่เครื่องหมาย '\' ไว้ที่ขอบขวาสุด เพื่อบอกให้รู้ว่าบรรทัดนี้ยังมีต่อ  Emacs จะ
	  เลื่อน (scroll) หน้าจอเพื่อให้เห็นตำแหน่งที่กำลังแก้ไขอยู่ได้อย่างชัดเจน  ถ้าหาก
	  ขอบขวาหรือขอบซ้ายของมีเครื่องหมาย '\' อยู่ ก็เป็นการบอกให้รู้ว่า บรรทัดนั้นยังมีต่อ
	  ไปในทิศทางนั้น ๆ

     ลองปฏิบัติดูเลย คงจะช่วยให้เข้าใจง่ายกว่าการอธิบายด้วยตัวหนังสือ

       >> ให้ขยับเคอร์เซอร์ไปไว้บนบรรทัดซึ่งถูกต่อให้ยาวเกินหนึ่งหน้าจอ ที่เพิ่งป้อนเข้าไปเมื่อ
          สักครู่นี้  แล้วใช้ C-d ลบข้อความออกบางส่วน จนความยาวของข้อความอยู่ภายในหนึ่ง
	  บรรทัด  สังเกตดูว่าเครื่องหมาย '\' จะหายไป

       >> ให้เลื่อนเคอร์เซอร์ไปไว้ที่ตำแหน่งแรกสุดของบรรทัด แล้วกด <Delete> ดู  การทำ
          แบบนี้ จะทำให้สัญลักษณ์คั่นระหว่างบรรทัดถูกลบออกไป  บรรทัดนั้นก็จะถูกเอาไปต่อกับ
	  บรรทัดก่อนหน้านั้น รวมกันเป็นบรรทัดยาวบรรทัดเดียว และอาจจะมีสัญลักษณ์ต่อบรรทัด
	  ปรากฏขึ้น

       >> ให้กด <Return> เพื่อเพิ่ม ตัวอักษรขึ้นบรรทัดใหม่ กลับไปอย่างเดิม

     คำสั่งส่วนใหญ่ของ Emacs จะสามารถกำหนดจำนวนครั้งที่ต้องการให้ปฏิบัติได้  รวมทั้งการ
แทรก (insert) ตัวอักษรด้วย


       >> ลองป้อนคำสั่ง C-u 8 * ดู  สังเกตดูว่าเกิดอะไรขึ้น

     ถ้าต้องการจะเพิ่มบรรทัดว่าง ๆ (blank line) ระหว่างสองบรรทัด  ให้เลื่อนไปที่ตำแหน่ง
แรกสุดของบรรทัดที่สอง  แล้วกด C-o

       >> ให้เลื่อนไปที่ตำแหน่งแรกสุดของบรรทัดใดก็ได้  แล้วลองกด C-o ดู

     ถึงตรงนี้  เราก็ได้เรียนวิธีพื้นฐานสำหรับการป้อนข้อความ และการแก้ที่ผิดแล้ว  นอกจากจะ
ลบได้ทีละตัวอักษรแล้ว  ยังมีคำสั่งซึ่งสามารถใช้ลบได้ในเป็นคำ ๆ หรือเป็นบรรทัด ๆ อีกด้วย  สรุป
คำสั่งสำหรับการลบได้ดังนี้

     <Delete>       ลบตัวอักษรที่อยู่หน้าเคอร์เซอร์
     C-d            ลบตัวอักษรที่อยู่ที่เคอร์เซอร์

     ESC <Delete>   ลบคำที่อยู่หน้าเคอร์เซอร์
     ESC d          ลบคำตั้งแต่ตำแหน่งที่เคอร์เซอร์อยู่

     C-k            ลบบรรทัดตั้งแต่ตำแหน่งที่เคอร์เซอร์อยู่

     ในบางครั้ง เราอาจต้องการจะเอาส่วนที่ลบไปกลับคืนมา   โปรแกรม Emacs จะจำส่วนที่ลบ
ออกไว้ เวลาที่ลบข้อความในหน่วยที่มากกว่าหนึ่งตัวอักษร   ให้ใช้คำสั่ง C-y เวลาที่ต้องการจะเอา
ข้อความกลับคืน  สิ่งที่ควรระวังก็คือ C-y ไม่ใช่ใช้ได้เพียงแค่ตำแหน่งที่ลบข้อความออกเท่านั้น  แต่จะ
ใช้กับตำแหน่งใดก็ได้  C-y เป็นคำสั่งสำหรับแทรกข้อความที่เก็บไว้ ลงในตำแหน่งที่มีเคอร์เซอร์อยู่
เราสามารถใช้ความสามารถนี้ในการเคลื่อนย้ายข้อความได้

     คำสั่งสำหรับการลบมีอยู่สองแบบคือ คำสั่ง "Delete" กับ คำสั่ง "Kill"  คำสั่ง "Kill"
จะเก็บส่วนลบออกไว้ แต่คำสั่ง "Delete" จะไม่เก็บ  แต่ถ้าหากใช้คำสั่งนี้หลาย ๆ ครั้ง  ก็จะเก็บ
ส่วนที่ลบออกไว้ให้

      >> ให้กด C-n สักสองสามครั้ง เพื่อเลื่อนไปยังที่ที่เหมาะสมบนหน้าจอ แล้วลองกด C-k เพื่อ
         ลบบรรทัดนั้นออกดู

     เมื่อกด C-k ครั้งแรก ข้อความในบรรทัดนั้นจะถูกลบออก  และเมื่อกดอีก C-k อีกครั้ง บรรทัด
นั้นเองทั้งบรรทัดก็จะถูกลบออกไปด้วย  แต่ถ้ากำหนดจำนวนครั้งให้กับคำสั่ง C-k ก็จะหมายถึง ให้ลบ
บรรทัดออก (ทั้งเนื้อหาและตัวบรรทัด) เป็นจำนวนบรรทัด เท่ากับจำนวนครั้งที่กำหนด

     บรรทัดที่เพิ่งลบออกไป จะถูกเก็บไว้ และสามารถนำกลับคืนมาได้ โดยใช้คำสั่ง C-y

       >> ลองกด C-y ดู

     ข้อความที่ถูกลบออก โดยการกด C-k หลาย ๆ ครั้ง  จะถูกเก็บรวบรวมไว้ และสามารถนำ
กลับมาทั้งหมดได้ในครั้งเดียว โดยการกด C-y

       >> ลองกด C-k ดูหลาย ๆ ครั้ง

       >> คำสั่งสำหรับเรียกข้อความกลับมา คือ C-y   ก่อนอื่นให้เลื่อนเคอร์เซอร์ลงไปข้างล่าง
          สักสองสามบรรทัด  แล้วลองกด C-y ดู ก็จะสามารถคัดลอก (copy) ข้อความได้

     ถ้าตอนนี้เก็บข้อความอะไรบางอย่างไว้  แล้วลบข้อความอื่นเพิ่มเข้าไปอีก จะเกิดอะไรขึ้น
ผลลัพธ์คือ C-y จะเรียกคืนได้แค่เพียงข้อความที่ลบออกครั้งล่าสุดเท่านั้น


       >> ลองลบบรรทัดดูหนึ่งบรรทัด  แล้วเลื่อนเคอร์เซอร์ไปที่อื่น  แล้วลบบรรทัดออกดูอีกหนึ่ง
          บรรทัด  ลองกด C-y ดู แล้วสังเกตดูว่าจะได้แค่เพียงบรรทัดที่สองคืนเท่านั้น

การอันดู (UNDO)
=============

     เวลาที่แก้ไขข้อความบางอย่าง แล้วต้องการจะเปลี่ยนกลับให้เป็นอย่างเดิม  ก็สามารถทำได้ทุก
เมื่อด้วยคำสั่ง C-x u   โดยปกติ จะใช้สำหรับยกเลิกคำสั่ง ที่ป้อนเข้าไปโดยไม่ตั้งใจ  สามารถใช้
คำสั่งนี้กี่ครั้งก็ได้ตามต้องการ

       >> ลองลบบรรทัดนี้ออกดู ด้วยคำสั่ง C-k แล้วเรียกกลับคืนมาด้วย C-x u

     คำสั่ง C-_ ก็เป็นคำสั่งอันดูอีกอันหนึ่ง  ความสามารถเหมือนกับคำสั่ง C-x u

     สามารถกำหนดจำนวนครั้งให้คำสั่ง C-_ และ C-x u ได้


แฟ้มข้อมูล (File)
==============

     เราจำเป็นต้องเก็บรักษา (save) ข้อความที่แก้ไขไว้ในแฟ้มข้อมูล  ถ้าต้องการจะให้สิ่งที่
แก้ไขเปลี่ยนไปอย่างถาวร  ไม่เช่นนั้น สิ่งที่แก้ไขไปก็จะหายไป ทันทีที่เลิกการใช้ Emacs

     แฟ้มข้อมูลที่มองเห็นอยู่ คือสิ่งที่บันทึกสิ่งที่กำลังแก้ไขอยู่  หรือพูดง่าย ๆ ก็คือแฟ้มข้อมูลที่มองเห็น
อยู่คือตัวแฟ้มข้อมูลที่กำลังแก้ไขอยู่

     แต่จนกว่าแฟ้มข้อมูลจะถูกเก็บรักษา (save) ลงไป  แฟ้มข้อมูลที่ถูกแก้ไขอยู่ จะไม่ถูกเขียนทับ
ลงไปอย่างเด็ดขาด  อันนี้เพื่อเป็นการป้องกันการเขียนทับแฟ้มข้อมูลที่แก้ไขไปแบบครึ่ง ๆ กลาง ๆ
โดยไม่ได้ตั้งใจ

     นอกจากนี้ เพื่อเป็นการป้องกันการเก็บรักษา (save) สิ่งที่แก้ไขผิดไปโดยไม่ตั้งใจ  Emacs
จะเปลี่ยนชื่อแฟ้มข้อมูลต้นฉบับเก็บไว้ให้ ก่อนการเก็บรักษา

หมายเหตุ:       Emacs ยังมีการป้องกันอุบัติเหตุที่คาดไม่ถึง โดยการเก็บรักษาแฟ้มข้อมูลที่กำลัง
               แก้ไขอยู่เป็นระยะ ๆ โดยใช้ชื่อแฟ้มข้อมูลต่างกัน  ด้วยวิธีนี้ จะทำให้สามารถลด
               ความเสียหายที่อาจเกิดขึ้นได้  ให้น้อยที่สุดเท่าที่จะทำได้

     ตรงส่วนล่างของจอ จะมีบรรทัดโหมด (mode line) ในลักษณะข้างล่างแสดงอยู่


(ตัวอย่าง) [--]J:--**-Mule: TUTORIAL.th    (Fundamental) ---55%--------------


     ฉบับสำเนาของ Tutorial ของ Emacs ที่กำลังอ่านอยู่นี้ชื่อ TUTORIAL.th  เวลาที่สั่งให้หา
แฟ้มข้อมูลหรือ find-file (ค้นหาแฟ้มข้อมูล แล้วอ่านเข้ามาในบัฟเฟอร์) ก็จะแสดงชื่อแฟ้มข้อมูลไว้
ตรงส่วน TUTORIAL.th  ตัวอย่างเช่น ถ้าสั่งให้หาแฟ้มข้อมูลชื่อ new-file  บรรทัดโหมดก็จะแสดง
ผลว่า "Mule: new-file"

หมายเหตุ:       จะมีคำอธิบายเพิ่มเติมเกี่ยวกับบรรทัดโหมด (mode line) ในตอนหลัง

     คำสั่งให้หาแฟ้มข้อมูล และคำสั่งให้เก็บรักษาแฟ้มข้อมูล มีลักษณะแตกต่างจากคำสั่งที่ผ่าน ๆ มา
ตรงที่ ประกอบไปด้วย 2 ตัวอักษร คือต้องกดคำสั่งบางอย่าง ตามหลังคำสั่ง C-x ซึ่งหมายถึงคำสั่ง
เกี่ยวกับแฟ้มข้อมูล

     และอีกจุดหนึ่ง แต่แตกต่างจากคำสั่งที่ผ่านมาคือ เวลาสั่งให้ค้นหาแฟ้มข้อมูล เราจะถูก Emacs
ถามชื่อของแฟ้มข้อมูลนั้น ๆ  เราเรียกคำสั่งเหล่านั้นว่า คำสั่งประเภทที่ถามตัวเลือก (argument)
จากเทอร์มินัล

หมายเหตุ:       ในที่นี้ ตัวเลือก (argument) คือชื่อแฟ้มข้อมูล

                    C-x C-f   สั่งให้หา (find) แฟ้มข้อมูล

     แล้ว Emacs จะถามชื่อของแฟ้มข้อมูล โดยปรากฏขึ้นที่ส่วนล่างของจอ  เราเรียกส่วนที่ให้ป้อน
ชื่อแฟ้มข้อมูลนั้นว่า มินิบัฟเฟอร์ (mini buffer)  มินิบัฟเฟอร์จะถูกใช้งานในลักษณะนี้  มินิบัฟเฟอร์
จะหมดหน้าที่และหายไป หลังจากที่ป้อนชื่อแฟ้มข้อมูล แล้วกดปุ่ม <Return> 

       >> ลองกด C-x C-f แล้วตามด้วย C-g ดู  เป็นการสั่งยกเลิกเนื้อหาในมินิบัฟเฟอร์ หรือ
          ยกเลิกคำสั่ง C-x C-f  ดังนั้น Emacs จะไม่ค้นหาแฟ้มข้อมูลใด ๆ

     คราวนี้ มาลองเก็บรักษาแฟ้มข้อมูลดู  เวลาที่ต้องการเก็บรักษาสิ่งที่แก้ไขมาจนถึงตอนนี้ ก็ให้ใช้
คำสั่งดังนี้

     C-x C-s   เก็บรักษา (save) แฟ้มข้อมูล

     แล้วเนื้อหาที่อยู่ใน Emacs ก็จะถูกเขียนลงไปที่แฟ้มข้อมูล  เวลาเก็บรักษาแฟ้มข้อมูล แฟ้มข้อมูล
ต้นฉบับจะไม่สูญหายไป แต่จะถูกเก็บไว้ในชื่อใหม่  ซึ่งได้มาจากชื่อเก่าที่ต่อท้ายด้วย '~'

     หลังจากที่เก็บรักษาแฟ้มข้อมูลเสร็จแล้ว  Emacs ก็จะแสดงชื่อแฟ้มข้อมูลที่เก็บให้ดู

       >> ลองกด C-x C-x เพื่อเก็บรักษาสำเนาของ Tutorial นี้ดู  ก็จะเห็นว่า ที่ส่วนล่าง
          ของจอ มีข้อความว่า "Wrote ...../TUTORIAL.th" ปรากฏขึ้น

     เวลาที่จะสร้างแฟ้มข้อมูลใหม่  ก็ให้ทำราวกับว่าจะค้นหา (find-file) แฟ้มข้อมูลเก่าซึ่งมี
อยู่ก่อนหน้านี้แล้ว  แล้วพิมพ์ข้อความลงไปในแฟ้มข้อมูลที่หาเจอ

     และเวลาที่สั่งเก็บรักษาแฟ้มข้อมูลเท่านั้น  คือตอนที่ Emacs จะเก็บเนื้อหาที่แก้ไขมาทั้งหมด ลง
ในแฟ้มข้อมูลเป็นครั้งแรก


บัฟเฟอร์ (Buffer)
===============

     ถ้าหากสั่งให้หาแฟ้มข้อมูลอันที่สอง ด้วยคำสั่ง C-x C-f  เนื้อหาของแฟ้มข้อมูลแรก ก็จะยังคง
ถูกเก็บรักษาอยู่ใน Emacs  สิ่งที่เก็บรักษาแฟ้มข้อมูลที่อ่านเข้ามา ซึ่งอยู่ภายใน Emacs เรียกว่า
บัฟเฟอร์ (Buffer)  เวลาที่อ่านแฟ้มข้อมูลใหม่เข้ามา Emacs ก็จะสร้างบัฟเฟอร์ใหม่ ขึ้นมาภายใน

     ถ้าต้องการจะดูรายการของบัฟเฟอร์ ที่ถูกเก็บรักษาอยู่ภายใน Emacs  ก็ให้กดคำสั่ง

     C-x C-b

       >> ลองกด C-x C-b ดู  สังเกตดูว่าแต่ละบัฟเฟอร์มีชื่อว่าอะไร  และถูกตั้งชื่อไว้ว่า
          อย่างไร ใน Emacs

     มีบางบัฟเฟอร์ ที่ไม่มีคู่กับแฟ้มข้อมูลจริง ๆ  ตัวอย่างเช่น ไม่มีแฟ้มข้อมูลที่มีชื่อว่า "*Buffer
List*" อยู่จริง ๆ  แต่เป็นบัฟเฟอร์ที่สร้างขึ้นมาเพื่อแสดงรายการบัฟเฟอร์ โดยคำสั่ง C-x C-b

     ข้อความทุกข้อความที่ปรากฏอยู่ในวินโดว์ของ Emacs นั้น จะอยู่ในบัฟเฟอร์ใดบัฟเฟอร์หนึ่งเสมอ

       >> ลองกด C-x 1 เพื่อลบรายการบัฟเฟอร์ออกดู

     การเรียกแฟ้มข้อมูลอื่นขึ้นมาแก้ไข ตอนที่กำลังแก้ไขแฟ้มข้อมูลหนึ่งอยู่นั้น  จะไม่ทำให้แฟ้มข้อมูล
แรกถูกเก็บรักษา  สิ่งที่แก้ไขไปในแฟ้มข้อมูลแรกจะถูกบันทึกไว้ในบัฟเฟอร์ของแฟ้มข้อมูลนั้น เท่านั้น

     การสร้างบัฟเฟอร์ใหม่ขึ้น สำหรับแก้ไขแฟ้มข้อมูลอันที่สอง แล้วแก้อะไรบางอย่างในบัฟเฟอร์นั้น
จะไม่มีผลใด ๆ ต่อบัฟเฟอร์ของแฟ้มข้อมูลอันที่หนึ่งทั้งสิ้น  จุดนี้ทำให้สามารถเก็บแฟ้มข้อมูลแรกไว้เพื่อ
แก้ไขในตอนหลัง

     แต่เวลาที่ต้องการจะเก็บรักษา (save) บัฟเฟอร์ลงไปในแฟ้มข้อมูล ด้วยคำสั่ง C-x C-s นั้น
จะต้องสวิทซ์ไปยังบัฟเฟอร์ที่ต้องการจะเก็บ ด้วยคำสั่ง C-x C-f ซึ่งค่อนข้างยุ่งยาก  เรามีคำสั่งซึ่ง
ใช้สำหรับการนี้โดยเฉพาะ คือ

     C-x s   เก็บรักษา (save) ทุกบัฟเฟอร์ที่มีอยู่

     C-x s จะเก็บรักษาทุกบัฟเฟอร์ที่ถูกแก้ไขเนื้อหาไป ลงในแฟ้มข้อมูล โดยจะถามก่อนว่าจะให้
เก็บบัฟเฟอร์นี้ไหม y หรือ n กับบัฟเฟอร์แต่ละบัฟเฟอร์  คำถามจะปรากฏในส่วนล่างของหน้าจอ ดัง
ตัวอย่างนี้

             Save file  /usr/private/yours/TUTORIAL.th? (y or n)



การขยายคำสั่ง (extension)
=======================

     ในโปรแกรม Editor นี้ มีจำนวนคำสั่งมากกว่า จำนวนคำสั่งซึ่งสามารถกดได้โดยปุ่มคอนโทรล
หรือปุ่ม META ได้หมด  คำสั่งขยาย (eXtend) มีไว้เพื่อให้สามารถใช้คำสั่งเหล่านี้ได้หมด มีอยู่ 2
แบบ ดังนี้

     C-x     ขยายเพิ่มด้วยตัวอักษร สำหรับกดตัวอักษรตามเข้าไป 1 ตัว
     ESC x   ขยายเพิ่มด้วยชื่อคำสั่ง สำหรับกดชื่อคำสั่งตามเข้าไปทั้งหมด

     คำสั่งประเภทนี้ ก็เป็นคำสั่งที่มีประโยชน์  แต่ส่วนใหญ่จะถูกเรียกใช้ น้อยครั้งกว่าคำสั่งทั่วไป
ตัวอย่างเช่น คำสั่งหาแฟ้มข้อมูล (find) C-x C-f  คำสั่งเก็บรักษาแฟ้มข้อมูล (save) C-x C-s
คำสั่ง C-x C-c (เลิก Editor) ต่างก็เป็นหนึ่งในคำสั่งเหล่านี้

     คำสั่ง C-z เป็นคำสั่งที่ใช้ในในการออกจาก Emacs ค่อนข้างบ่อย  คำสั่งนี้จะไม่ยกเลิก
Emacs เลยทีเดียว แต่จะหยุด Emacs ไว้ชั่วคราว เพื่อให้สามารถกลับไปใช้ csh ได้อีก  การกด
C-z จึงเป็นการหยุด Emacs ไว้ชั่วคราวเท่านั้น จะไม่ทำความเสียหายให้กับเนื้อหาที่แก้ไขไป

หมายเหตุ:       แต่ทว่า ในกรณีที่ใช้บน X-window หรือใช้ sh อยู่ ก็จะไม่มีความสามารถนี้


     คำสั่งประเภท C-x มีมากมายหลายคำสั่ง  คำสั่งที่อธิบายไปแล้วมีดังนี้

     C-x C-f   หาแฟ้มข้อมูล (find) สำหรับแก้ไข
     C-x C-s   เก็บรักษาแฟ้มข้อมูล (save)
     C-x C-b   แสดงรายการบัฟเฟอร์ (buffer list)
     C-x C-c   เลิกการใช้ Editor และเก็บรักษาแฟ้มข้อมูลโดยอัตโนมัติ  แต่ถ้าหากมีแฟ้ม
               ข้อมูลบางอันถูกแก้ไข  ก็ให้ถามว่าจะเก็บรักษาแฟ้มข้อมูลนั้นไหม  โดยทั่วไป
               การออกจาก Emacs ทำได้โดยคำสั่ง C-x C-s C-x C-c คือให้เก็บรักษา
               ก่อนแล้วจึงเลิก

     คำสั่งขยายเพิ่มแบบชื่อนั้น ใช้สำหรับคำสั่งที่ไม่ค่อยได้ใช้ หรือคำสั่งที่ใช้เฉพาะกับโหมดพิเศษบาง
โหมด  ตัวอย่างเช่น คำสั่ง "command-apropos" ซึ่งจะถาม คีย์เวิร์ด (keyword) แล้วแสดงผล
คำสั่งทุกคำสั่งที่มีชื่อเกี่ยวข้องกับกับคีย์เวิร์ดนั้น  เวลาจะสั่งคำสั่งนี้ ก็ให้กด ESC x แล้วจะมีตัวอักษร
"M-x" ปรากฏขึ้นที่ส่วนล่างของจอ  จากนั้นก็ให้ใส่ชื่อคำสั่งที่ต้องการ (ในกรณีนี้คือ
"command-apropos")  เมื่อป้อนข้อมูลไปถึง "command-a" แล้วกด SPACE BAR ส่วนที่เหลือของ
ชื่อคำสั่งก็จะถูกเติมเต็ม (completion) ให้เองโดยอัตโนมัติ   หลังจากนั้น จะถูกถามคีย์เวิร์ด ก็ให้
กดสายอักขระ (string) ที่ต้องการรู้ลงไป  ต้องไม่ใส่คีย์เวิร์ดอะไรเลย ก็จะได้คำสั่งทั้งหมดที่มีอยู่

       >> ลองกด ESC x ตามด้วย "command-apropos<Return>" หรือ
          "command-a<Space><Return>"  หลังจากนั้นก็กด "kanji<Return>" ดู

     ให้กด C-x 1 เวลาต้องการจะลบ "วินโดว์" ที่โผล่ขึ้นมาใหม่ 

บรรทัดโหมด (Mode Line)
=====================

     เวลาที่พิมพ์คำสั่งเข้าไปช้า ๆ Emacs จะแสดงสิ่งที่พิมพ์ลงไปตรงบรรทัดล่างสุดของจอซึ่งเรียก
ว่า echo area  บรรทัดซึ่งอยู่ถัดขึ้นมาหนึ่งบรรทัด เรียกว่าบรรทัดโหมด (mode line)  บรรทัด
โหมดมีลักษณะดังนี้


 [--]J:--**-Mule: TUTORIAL.th   (Fundamental) ---NN%--------------


หมายเหตุ:       ตรงส่วน NN ของ NN% จะมีตัวเลขใส่อยู่  บรรทัดโหมดที่แสดงอยู่อาจจะแตกต่าง
               ไปจากตัวอย่างบ้าง แต่ก็ไม่เป็นไร  ตัวอย่างเช่น อาจจะมีเวลาหรือ uptime
               แสดงผลอยู่  อันนี้เป็นความสามารถของโปรแกรม display-time

     บรรทัดนี้มีข้อมูลที่เป็นประโยชน์อยู่หลายอย่าง


     ข้อมูลแรกคือ ชื่อแฟ้มข้อมูลที่กำลังอ่านอยู่   ตัวเลข NN% จะแสดงให้รู้ว่ากำลังแสดงผลส่วนไหน
ของแฟ้มข้อมูลอยู่ โดยคิดเป็นเปอร์เซนต์   ถ้าเป็นส่วนบนสุดของแฟ้มข้อมูลอยู่ก็จะมีข้อความว่า
--Top-- แสดงอยู่  ถ้าเป็นส่วนล่างสุดก็จะมีข้อความว่า --Bot--  ถ้าหากสามารถแสดงแฟ้มข้อมูล
ทั้งหมดบนหน้าจอได้ ก็จะมีข้อความว่า --All-- แสดงอยู่

     ภายในวงเล็บของบรรทัดโหมด จะแสดงให้รู้ว่าตอนนี้อยู่ในโหมด (mode) อะไร  ในตัวอย่าง
ข้างบนคือ อยู่ในโหมด Fundamental ซึ่งเป็นโหมดเริ่มต้น (default)  โหมดนี้เป็นหนึ่งในโหมด
หลัก (Major Mode)

     Emacs มีโหมดหลัก (Major Mode) สำหรับการโปรแกรมภาษา หรือการแก้ข้อความ เช่น
Lisp mode Text mode และโหมดอื่น ๆ อีกหลายโหมด  โดยปกติ Emacs จะอยู่ในโหมดหลัก
โหมดใดโหมดหนึ่งเสมอ

     คำสั่งบางคำสั่งจะมีพฤติกรรมที่แตกต่างกันโดยสิ้นเชิง เมื่ออยู่ในโหมดหลักที่ต่างกัน   ตัวอย่าง
เช่น เวลาโปรแกรมภาษา จะมีคำสั่งสำหรับสร้าง หมายเหตุ (comment) อยู่  เนื่องจากวิธีใส่
หมายเหตุของภาษาแต่ละภาษาแตกต่างกัน   คำสั่งนี้ก็จะแตกต่างกันไปในแต่ละโหมดหลัก  เพื่อให้
สามารถใส่หมายเหตุในแต่ละภาษาได้อย่างถูกต้อง

     คำสั่งสำหรับการเปลี่ยนโหมดให้เป็นโหมดหลักอื่น คือคำสั่งขยาย (extend) ซึ่งชื่อคำสั่งเป็นชื่อ
โหมด ตัวอย่างเช่น คำสั่ง M-x fundamental-mode คือคำสั่งสำหรับเปลี่ยนโหมดเป็นโหมด 
Fundamental

     เวลาที่จะแก้ไขแฟ้มข้อมูลภาษาอังกฤษ ก็ให้ใช้ Text mode

       >> ลองป้อนคำสั่ง M-x text-mode<Return>

     ถ้าต้องการหาข้อมูลเพิ่มเกี่ยวกับโหมดหลักที่ใช้อยู่ในปัจจุบัน ก็ให้ป้อนคำสั่ง C-h m

       >> ให้กด C-h m เพื่อศึกษาข้อแตกต่างระหว่าง Text mode กับ Fundamental mode

       >> ให้กด C-x 1 เพื่อลบเอกสารออกจากจอ

     ตรงส่วนซ้ายของบรรทัดโหมด จะมีสัญลักษณ์ '[--]' เพื่อแสดงโหมดสำหรับการป้อนข้อมูล
(input mode) อยู่   สัญลักษณ์ [--] หมายถึงสามารถป้อนข้อมูลได้ด้วยตัวอักษรภาษาอังกฤษ
(English alphabets)  กรุณาอ่านคู่มือของ "Tamago" สำหรับรายละเอียดของวิธีใช้

     และตรงด้านขวาของสัญลักษณ์นั้น จะมีเครื่องหมายแสดงสถานะของ flag ของระบบรหัส
(coding-system) อยู่   Mule สามารถกำหนดระบบรหัสแยกเฉพาะสำหรับ การเก็บอ่านแฟ้มข้อมูล
การป้อนข้อมูลจากคีย์บอร์ด การแสดงผลออกทางจอ ได้อิสระจากกัน  แต่โดยปกติจะแสดงเฉพาะ
สัญลักษณ์ช่วยจำ (mnemonic) ของระบบรหัสสำหรับการเก็บอ่านแฟ้มข้อมูล เท่านั้น

       >> ตรวจดูว่ามีสัญลักษณ์ คล้ายคลึงกับ "J:" "S:" "E:" แสดงอยู่ที่บรรทัดโหมดหรือไม่

     ตัวอักษรตัวแรกคือ สัญลักษณ์ช่วยจำ (mnemonic) ของระบบรหัสที่ใช้อยู่  ตัว ':' แสดงให้รู้
ว่ามีตัวอักษรของภาษาอื่น นอกจากภาษาอังกฤษแสดงอยู่ (เช่น ภาษาจีน ภาษาญี่ปุ่น เป็นต้น)  ตัว J
หมายถึง รหัสที่ใช้กับ JUNET คือ รหัส JIS  ตัว S หมายถึง Shift-JIS และ ตัว E หมายถึง
รหัส EUC ภาษาญี่ปุ่น   จะสลับเปลี่ยน (toggle) การแสดงผลภาษานานาชาติได้โดย C-x C-k t

     ตัวอย่างข้างล่าง คือการสลับเปลี่ยนไม่ให้แสดงภาษานานาชาติ แล้วสลับกลับอีกครั้งหนึ่ง

       >> ลองป้อนคำสั่ง C-x C-k t ดูสองครั้ง

     ถ้าเทอร์มินัลที่ใช้อยู่มีปุ่ม META และโหมดที่ใช้อยู่เป็นรหัส JIS  เราก็จะสามารถใช้ปุ่ม META
แทนการกดปุ่ม ESCAPE ได้  วิธีใช้จะเหมือนกับการใช้ปุ่มคอนโทรล คือให้กดปุ่ม META ค้างไว้แล้วจึง
กดตัวอักษรตาม  M-<ตัวอักษร> จะทำหน้าที่เหมือนกับ ESC <ตัวอักษร>  นั่นคือ ทุกอย่างที่อธิบายมา
จนถึงจุดนี้ จะยังคงมีผลเหมือนเดิม หลังจากเปลี่ยน ESC <ตัวอักษร> ให้เป็น M-<ตัวอักษร>  แต่ข้อ
ควรระวังก็คือ ปุ่ม META จะไม่สามารถใช้ได้กับรหัส Shift-JIS และ EUC

     การเปลี่ยนระบบรหัสจะมีผลแค่เพียงกับแต่ละบัฟเฟอร์เท่านั้น  สามารถดูคำสั่งเกี่ยวกับระบบรหัส
ได้โดยคำสั่ง C-h a coding-system <Return>

       >> ให้ป้อนคำสั่ง C-h a coding-system <Return> แล้วอ่านรายละเอียดของคำสั่ง 
	  set-display-coding-system set-file-coding-system และ
	  set-process-coding-system จากเอกสารที่ปรากฏขึ้น

การค้นหา (search)
================

     Emacs สามารถค้นหาสายอักขระ (string) ภายในแฟ้มข้อมูลไปทางข้างหน้าหรือข้างหลังได้
ถ้าต้องการค้นหาไปทางข้างหน้าของตำแหน่งเคอร์เซอร์ (cursor) ก็ให้กด C-s  ถ้าต้องการค้นหา
ไปทางข้างหลังของตำแหน่งเคอร์เซอร์  ก็ให้กด C-r  หลังจากนั้นจะมีข้อความว่า "I-search:"
ปรากฏขึ้นตรง echo area  ยกเลิกการค้นหาได้ด้วยการกด ESC


       >> กด C-s เพื่อเริ่มการค้นหา  แล้วกดตัวอักษรของคำว่า "cursor" ลงไปทีละตัวอย่าง
          ช้า แล้วสังเกตดูว่าเคอร์เซอร์ขยับไปอย่างไร

       >> ลองกด C-s ดูอีกหนึ่งครั้งเพื่อค้นหาคำว่า "cursor" ตัวต่อไป

       >> กด <Delete> ดู 4 ครั้ง แล้วสังเกตดูว่าการเคลื่อนที่ของเคอร์เซอร์

       >> กด ESC เพื่อยกเลิกการค้นหา

     การค้นหาจะเริ่มขึ้นทันที ในระหว่างที่พิมพ์สายอักขระที่ต้องการจะค้นหา เข้าไปเพียงบางส่วน
ถ้าต้องการจะค้นหาตัวต่อไป ก็ให้กด C-s อีกหนึ่งครั้ง  ถ้าหากค้นหาสายอักขระที่ป้อนเข้าไปไม่พบ ก็
จะมีข้อความปรากฏขึ้น  ให้กด C-g เพื่อยกเลิก

     ระหว่างที่ค้นหาอยู่  ถ้ากด <Delete> ตัวอักษรตัวสุดท้ายในสายอักขระก็จะถูกลบไป  แล้ว
เคอร์เซอร์ก็จะกลับไปตำแหน่งก่อนหน้า   ตัวอย่างเช่น ถ้ากด "cu" ก็จะค้นหาไปถึงตำแหน่งที่มีคำว่า
"cu"  แต่ถ้ากด <Delete> ในจังหวะนี้ ตัว 'u' ใน search line ก็จะหายไป แล้วเคอร์เซอร์
จะขยับกลับไปที่ตำแหน่งที่มีตัว 'c' อยู่

     ถ้ากดตัวอักษรคอนโทรล (control character) ตัวอื่น นอกเหนือจาก C-s หรือ C-r
การค้นหาก็จะสิ้นสุดลง

     คำสั่ง C-s จะค้นหาสายอักขระที่ต้องการ ไปทางข้างหน้าของตำแหน่งเคอร์เซอร์  ถ้าต้องการ
ค้นหาไปทางทิศหลัง  ก็ให้กด C-r  นั่นคือ สามารถใช้ C-s และ C-r สลับกันเพื่อค้นหาไปได้ในทั้ง
สองทิศทาง  C-s และ C-r ทำหน้าที่เหมือนกันทุกประการ จะต่างกันก็ตรงทิศทางการค้นหาเท่านั้น

Recursive Editing Level

     บางที เราอาจจะหลุดเข้าไปอยู่ในสถานะที่เรียกว่า Recursive Editing Level ได้โดย
ไม่ตั้งใจ  ในโหมดนี้ เครื่องหมายวงเล็บ '()' ที่แสดงชื่อโหมดหลัก (major mode) อยู่จะมีวงเล็บ
'[]' ล้อม เพิ่มขึ้นอีกหนึ่งชั้น  ตัวอย่างเช่น ถ้าเดิมเป็น (Fundamental) อยู่ ก็จะเปลี่ยนเป็น
[(Fundamental)] แทน

หมายเหตุ:       เราจะไม่อธิบายเกี่ยวกับ Recursive Editing Level ในที่นี้

     ให้กด M-x top-level <Return> เพื่อที่จะออกจาก Recursive Editing Level

       >> ลองกดดู ตรงส่วนล่างของจอจะมีข้อความว่า "Back to top level" ปรากฏขึ้น

     เนื่องจาก เราอยู่ในระดับบนสุด (top level) อยู่แล้ว  คำสั่งนี้จึงไม่มีผลใด ๆ

     ไม่สามารถใช้ คำสั่ง C-g เพื่อที่จะออกจาก Recursive Editing Level ได้


Help
====

     Emacs มีความสามารถที่มีประโยชน์ มากมายหลายอย่าง ซึ่งไม่สามารถอธิบายได้หมดในที่นี้
แต่เราจะสามารถเรียกใช้ <HELP> เพื่อที่จะเรียนรู้ความสามารถเหล่านี้ ได้โดยการกด C-h ซึ่งจะ
ช่วยให้เราได้รับรู้ข้อมูลเพิ่มเติมหลายอย่าง

     วิธีใช้คือให้กด C-h แล้วตามด้วยตัวเลือก (option) อีกหนึ่งตัวอักษร  ถ้าไม่รู้ว่าจะต้องใช้
ตัวเลือกอะไร ก็ให้กด C-h ?  แล้วจะมีคำอธิบายเกี่ยวกับตัวเลือกปรากฏขึ้น  ได้หากเปลี่ยนใจจะ
ไม่เรียก HELP หลังจากกด C-h ก็ให้กด C-g เพื่อยกเลิกได้

     คำสั่ง HELP พื้นฐานที่สุดอันหนึ่งก็คือ C-h c แล้วตามด้วยการกดคำสั่งบางคำสั่ง  ซึ่งจะให้คำ
อธิบายสั้น ๆ เกี่ยวกับคำสั่งนั้น

       >> ลองกด C-h c C-p ดู  ซึ่งจะให้ข้อความว่า
          "C-p runs the command previous-line"

     คำสั่งนี้จะช่วยรื้อฟื้นความจำ เกี่ยวกับคำสั่งที่เคยผ่านตาแล้ว แต่จำไม่ได้ ได้เป็นอย่างดี  คำสั่ง
ที่มีมากกว่าหนึ่งตัวอักษร เช่น C-x C-s ก็สามารถกดตามหลัง C-h c ได้

     ถ้าหากต้องการรู้รายละเอียดมากกว่านี้  ก็ให้ใช้ k แทนตัว c

       >> ลองกด C-h k C-p ดู

     ก็จะมีวินโดว์เพิ่มใน Emacs อีกหนึ่งอัน เพื่อแสดงรายละเอียดของคำสั่งนั้น  เมื่ออ่านจบแล้ว
ก็ให้กด C-x 1 เพิ่มลบวินโดว์ออก

     ตัวเลือกอื่นที่มีประโยชน์ มีดังนี้

    C-h f      ให้ใส่ชื่อของคำสั่ง เพื่อแสดงรายละเอียดเกี่ยวกับคำสั่งนั้น

       >> ให้กด C-h f previous-line แล้วตามด้วย <Return> เพื่อแสดงรายละเอียดเกี่ยว
          กับคำสั่งซึ่งเรียกใช้ได้จากการกด C-p

    C-h a      แล้วตามด้วยคีย์เวิร์ด (keyword) เพื่อแสดงคำสั่งทุกคำสั่ง ที่มีคีย์เวิร์ด รวมอยู่
               คำสั่งเหล่านี้สามารถเรียกใช้ได้โดยการกด ESC x

       >> ลองกด C-h a file แล้วตามด้วย <Return> เพื่อแสดงชื่อคำสั่งทุกคำสั่งที่มีคำว่า
          "file" รวมอยู่  ซึ่งจะมี find-file และ write-file ที่เรียกใช้ได้โดยการกด
          C-x C-f และ C-x C-w รวมอยู่ด้วย

ท้ายสุดนี้
======

อย่าลืม:         คำสั่งสำหรับการเลิก Emacs คือ C-x C-c


     เอกสารฉบับเบื้องต้นนี้  ตั้งใจเขียนขึ้นสำหรับผู้ที่เริ่มหัดใหม่ โดยเฉพาะ  ถ้าหากมีจุดไหนที่ไม่
เข้าใจ ก็อย่ามัวแต่โทษตัวเอง  แต่ขอให้โยนความผิดมายังผู้เขียนแทน


     หลังจากใช้ EMACS ดูสักสองสามวัน ก็คงจะชินไปเอง  ในตอนแรก อาจจะมีจุดที่รู้สึกสับสนและ
ไม่เข้าใจอยู่บ้าง  แต่สิ่งนี้ย่อมเกิดขึ้นเสมอ เวลาแต่เริ่มใช้ Editor ใหม่ใด ๆ ก็ตาม  โดยเฉพาะ
อย่างยิ่งกับ EMACS เนื่องจากเป็นโปรแกรมที่มีความสามารถหลากหลายมาก   อันที่จริงแล้ว EMACS
ทำได้ทุกสิ่งทุกอย่าง



ขอขอบคุณ
=======
     เอกสารฉบับนี้ ดัดแปลงมาจาก "MicroEMACS (kemacs) ภาษาญี่ปุ่น เบื้องต้น" ซึ่งได้มาจาก
JUNET เพื่อให้ใช้เป็น Tutorial สำหรับ GNUEmacs (Nemacs)

     เอกสารนี้ ดัดแปลงมาจาก "JOVE Tutorial" (19 มกราคม 86) ของ Jonathan Payne
     ซึ่งดัดแปลงมาจากเอกสารของ Steve Zimmerman แห่ง CCA-UNIX ซึ่งดัดแปลง (อีกที) มา
     จากเอกสาร "Teach-Emacs" ฉบับเบื้องต้น (31 ตุลาคม 85) ของ MIT

     Update - February 1986 by Dana Hoggatt.

     Update - December 1986 by Kim Leburg.

     Update/Translate - July 1987 by SANETO Takanori

ขอขอบคุณเป็นพิเศษ
==============

     คุณ SANETO Takanori (ซาเนโตะ ทากาโนริ) ผู้แปลภาษาญี่ปุ่นฉบับแรกสุด  เอกสารฉบับนี้
เขียนด้วย GMW + Wnn + Nemacs  ขอแสดงความขอบคุณ แด่ผู้ที่สร้างโปรแกรมสุดวิเศษเหล่านี้ขึ้น
และขอขอบคุณ คุณ Fujiwara Shoko ที่ให้ความช่วยเหลือในการแปล การป้อนข้อมูล และอย่างอื่นอีก
หลาย ๆ อย่าง




ขอรับผิดชอบ การแปลที่ผิดพลาด ข้อมูลเท็จ และอื่น ๆ ไว้แต่เพียงผู้เดียว

                        ซุซูกิ ฮิโรโนบุ@sra.co.jp


Update/Add - December 1987 by Hironobu Suzuki
Update/Add - November 1989 by Ken'ichi Handa
Update/Add - January  1990 by Shigeki Yoshida
Update/Add - March    1992 by Kenichi HANDA

Translated into Thai
          - September 1994 by Manop Wongsaisuwan
