Modeless vs modal editors


37

ฉันเพิ่งเริ่มเรียนรู้ Linux และประสบการณ์การเขียนโปรแกรมทั้งหมดก่อนหน้านี้ของฉันใช้แพลตฟอร์ม Windows ฉันเจอ Vim editor และอ่านว่ามันเป็น modal editor ซึ่งแตกต่างจาก notepad ซึ่งเรียกว่าเป็น modeless editor

คุณช่วยอธิบายความแตกต่างระหว่างโมเดอเรเตอร์และโมดัลทั่วไปได้อย่างไร?

คำตอบ:


37

ตัวแก้ไข "modeless" ปกติเหมือนกับ Notepad บน Windows: มีโหมดเดียวเท่านั้นที่คุณป้อนข้อความ

Vi และมันก็เป็นตัวต่อที่เรียกว่า Vim, เป็น modal: มีสองโหมดหลักคือ1 , โหมดแทรกที่คุณพิมพ์ข้อความลงในโปรแกรมแก้ไขและมันถูกกำหนดให้กับเอกสาร, และโหมดปกติที่คุณใส่อาร์กิวเมนต์ผ่านแป้นพิมพ์ที่มีฟังก์ชั่นหลากหลาย รวมไปถึง: เลื่อนเคอร์เซอร์ไปรอบ ๆ เอกสารค้นหาและจัดการข้อความในเอกสาร (เช่นการตัดและวาง)

บทความวิกิพีเดีย Viมีรายการที่ดีบนอินเตอร์เฟซกิริยา

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

Vim Clutchโครงการที่ยอดเยี่ยมนี้ให้ภาพที่ชัดเจนของแนวคิดของการสลับระหว่างโหมด


1. นอกจากนี้ยังมีโหมดอื่นอีกสองโหมดคือโหมดคำสั่งสำหรับการป้อนคำสั่งเช่นเดียวกับในเชลล์และโหมดภาพเมื่อเลือกข้อความที่จะใช้งาน


3
อย่าลืมโหมดบรรทัดคำสั่งและโหมดภาพ
แบร์นฮาร์ด

จุดดี. ฉันติดอยู่กับโหมดหลักเพื่อเห็นแก่ความเรียบง่าย แต่ฉันจะเพิ่มพวกเขาเป็นเชิงอรรถ
jasonwryan

ลิงก์ "Vim Clutch" นั้นตาย
Rashi

@Rashi แก้ไขแล้ว ...
jasonwryan

4

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

อินเทอร์เฟซที่ไม่ใช้โหมดเรียกว่าอินเทอร์เฟซแบบไม่มีโหมด [1] อินเทอร์เฟซที่ไม่มีโหมดตั้งใจจะหลีกเลี่ยงข้อผิดพลาดของโหมด [2] โดยทำให้ผู้ใช้ไม่สามารถยอมรับได้


4
ดูเหมือนว่าจะถูกคัดลอกมาจากWikipedia (ยกเว้นว่าคุณ PRAMOD เขียนบทความนั้นฉันไม่รู้) ถ้าใช่บทความนั้นไม่ควรถูกอ้างถึง?
Guildenstern

0

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

ตัวแก้ไขที่ไม่ต้องมีสิทธิ์ช่วยให้คุณสามารถแทรกข้อความและต้องการให้คุณใช้คีย์ตัวดัดแปลงหากคุณต้องการให้ปุ่มทำอย่างอื่นนอกเหนือจากการแทรกตัวอักษรเช่นกดปุ่ม Control ค้างไว้และกด C เพื่อคัดลอกข้อความที่เลือก

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

ส่วนหนึ่งของคำตอบที่ยอมรับนี้ผิดทั้งหมด:

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

การแก้ไขอย่างเดียวบนแป้นพิมพ์ทำได้ดีโดยไม่ต้องสลับโหมดอย่างชัดเจน คุณสามารถเลื่อนเคอร์เซอร์และเลือกพื้นที่ของข้อความด้วยคีย์ผสม ตัวอย่างเช่น Ctrl + A เพื่อย้ายไปยังจุดเริ่มต้นของบรรทัด Ctrl + Spc เพื่อตั้งเครื่องหมายตามแล้วกด Ctrl + E เพื่อย้ายไปยังจุดสิ้นสุดของบรรทัดดังนั้นการเลือกทั้งบรรทัด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.