ตำแหน่งมือสำหรับการนำทางเป็นกลุ่ม


12

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

เมื่อคุณใช้ Vim คุณวางตำแหน่งมือขวาของคุณอย่างไร? ฉันพบว่ามันเป็นธรรมชาติมากขึ้นที่จะเริ่มต้นด้วยนิ้วของฉันบนjkl;แป้น แต่จากนั้นฉันก็พบว่าตัวเองขาดhกุญแจทุกครั้งเมื่อฉันนำทาง ตรงกันข้ามถ้าผมวางตำแหน่งนิ้วมือของฉันบนhjklแล้วผมก็พบว่าตัวเอง mistyping คำพูดเช่นนี้ไม่ได้เป็นตำแหน่งที่ผมได้รับการฝึกฝนเพื่อให้มือของฉันบนแป้นพิมพ์และผมพบว่าการสลับjkปุ่มด้วยนิ้วกลางและสามของฉันจะเป็นที่น่าอึดอัดใจ


6
j,k,l,;แน่นอนให้มือของคุณที่ สำหรับหนึ่งคุณจะได้เรียนรู้ที่จะตีhในเวลาไม่นาน ประการที่สองเมื่อคุณรู้จักเสียงเรียกเข้าที่ดีขึ้นคุณจะไม่ได้ใช้hสิ่งเหล่านั้นมากนัก ประการที่สามปุ่มลัดจะถูกกำหนดด้วยตำแหน่งมือในใจเป็นส่วนใหญ่ดังนั้นคุณจะแลกเปลี่ยนปัญหาหนึ่งปัญหาสำหรับปัญหาชุดอื่นในระยะยาว
PhilippFrank

3
ไม่รำคาญ Vim ได้รับคำสั่งเคอร์เซอร์เคลื่อนไหวที่ดีกว่าhjklมาก :help navigationดู
romainl

คำตอบ:


12

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

TL; DR Vim ได้รับการปรับให้เหมาะกับเครื่องพิมพ์ดีดแบบสัมผัสดังนั้นมือของคุณควรอยู่ในตำแหน่งที่คุณเรียนรู้ที่จะใส่: มือซ้ายasdf และมือขวาjkl;

นีลกล่าวว่าการวางมือขวาของคุณhjklเป็นสิ่งที่ไม่ดี เหตุผลหลักคือว่าการย้ายเคอร์เซอร์ของคุณด้วยปุ่มhjklเป็นสิ่งที่ควรจะเป็นครั้งคราวมากเพราะเป็นกลุ่มให้เคลื่อนไหวได้เร็วขึ้นมากคำว่าฉลาดหรือการเคลื่อนไหวการค้นหาตัวอักษร ( w, b, f, t, /... )

ฉันจะอ้างส่วนนี้โดยตรง:

ฉันใช้hและlปุ่มสำหรับข้อผิดพลาดแบบ off-one เมื่อฉันพลาดเป้าหมายของฉันไปอย่างหวุดหวิด นอกเหนือจากนั้นฉันแทบจะไม่แตะต้องพวกเขา จากการที่ฉันใช้hปุ่มน้อยฉันก็ยินดีที่จะยืดมันไว้บนแป้นพิมพ์ Qwerty ในทางกลับกันฉันใช้คำสั่งค้นหาตัวอักษรบ่อยครั้งดังนั้นฉันจึงพอใจที่ ที่สำคัญวางอยู่ใต้นิ้วก้อยของฉันอย่างสะดวกสบาย

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

noremap <Up>    <Nop>
noremap <Down>  <Nop>
noremap <Left>  <Nop>
noremap <Right> <Nop>

( <Nop>ย่อมาจาก "No Operation")


5
"การใช้ปุ่ม hjkl, ปุ่มลูกศรเป็นความชั่วร้าย" -dogma เป็นหนึ่งที่แข็งแกร่งในชุมชน Vi / กลุ่ม แต่ในหลาย ๆ ด้านก็ยังโง่หนึ่ง นอกเหนือจากความจริงที่ว่าฉันไม่เชื่อเลยว่ามันจะเร็วขึ้นในทุกสถานการณ์แม้ว่ามันจะเป็นจริงหรือไม่นี่เป็นสิ่งสำคัญที่สุดสำหรับการเรียนรู้ Vim หรือไม่? หรือมีสิ่งอื่น ๆ ที่จะช่วยคุณประหยัดเวลาได้มากขึ้น (เช่นการเคลื่อนไหวการจัดการกับเครื่องหมายการลงทะเบียนพื้นฐาน VimScript ฯลฯ ) .... "hjkl" ทั้งหมด - ดูเหมือนว่าการเพิ่มประสิทธิภาพแบบไมโครจะดีที่สุด
Martin Tournoij

4
ฉันใช้คอมพิวเตอร์เป็นเวลา ~ 30 ปี ทุก ๆ 5 ปีหรือมากกว่านั้นฉันขอต่ออายุความพยายามในการเรียนรู้ที่จะพิมพ์ จนถึงทุกครั้งที่ฉันทำฉันก็พัฒนาอาการของโรค carpal tunnel syndrome ในสองสามวันแรก และทุก ๆ ครั้งอาการจะหายไปทันทีที่ฉันยอมแพ้และกลับไปที่นิสัยเก่าของฉัน ฉันได้ทำศิลปะการต่อสู้มานานกว่า 40 ปีและไม่เคยมีปัญหาร่วมกันเลย นิสัยของฉันรวมถึงการใช้ปุ่มลูกศรและขยับมือไปมามากขณะพิมพ์ hjklสิ่งที่ไม่เคยช่วยให้ฉัน สิ่งที่ช่วยได้ก็คือการซื้อคีย์บอร์ดเชิงกลคุณภาพดี FWIW
lcd047

ฉันตอบคำถามเพราะฉันอ่านสิ่งนี้เมื่อไม่นานมานี้และฉันรู้สึกว่ามันเหมาะสมกับความต้องการของผู้ปฏิบัติการ ในหัวข้อการวางมือภาษาฝรั่งเศสฉันใช้แป้นพิมพ์ AZERTY ดังนั้นคำถามจึงไม่มีอยู่จริง: มือซ้ายของฉันเปิดอยู่hjklเนื่องจากปุ่มด้านขวาlเป็นแป้นmที่ไร้ประโยชน์ เกี่ยวกับการเพิ่มประสิทธิภาพของการใช้ปุ่มเหล่านี้เพื่อนำทางฉันพยายามบังคับตัวเองให้ใช้การเคลื่อนไหวให้มากที่สุดเท่าที่จะทำได้ แต่ฉันยังคงใช้อยู่บ่อยครั้งhjklฉันยังรู้สึกว่ามันเร็วกว่าปุ่มลูกศร แต่ฉันคิดว่ามันเป็นเรื่องส่วนตัว
statox

ฉันต้องการที่จะสมดุลความคิดเห็นของ @ lcd047 โดยบอกว่าฉันมีประสบการณ์ตรงข้ามที่สมบูรณ์ ฉันใช้วิธีพิมพ์แบบสัมผัสมาหลายปีครึ่งทำให้ลื่นไหลไปเป็นนิสัยเก่าจนฉันเริ่มใช้เสียงเรียกเข้า สำหรับฉันประโยชน์อย่างหนึ่งของการใช้ vim คือระบบการนำทางและคำสั่งด้วยปุ่มอย่างง่ายตัวอย่างเช่นjkl;บังคับให้คุณรักษามือของคุณให้มั่นคงในตำแหน่งการพิมพ์แบบสัมผัสที่ดีเพื่อนำทางข้อความ ตอนนี้ฉันเป็นนักพิมพ์ดีดที่รวดเร็วและแม่นยำกว่ามาก
Andreas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.