วิธีการคำนวณรูปแบบแป้นพิมพ์ที่เหมาะสำหรับโปรแกรมเมอร์?


8

ฉันกำลังคิดที่จะสร้างรูปแบบแป้นพิมพ์ใหม่สำหรับการเขียนโปรแกรม ตอนนี้ฉันส่วนใหญ่โปรแกรมใน HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS แต่ฉันอาจตะลุยเชลล์สคริปต์การเขียนโปรแกรม & RegEx เร็ว ๆ นี้อาจจะ LUA, C ++ และ Java ในไม่กี่ปี ฉันต้องการหลักฐานทางวิทยาศาสตร์เกี่ยวกับตำแหน่งของคีย์ ฉันมีความคิด / ความต้องการบางอย่างคิดค้นขึ้นเองบ้างมาจากหรือมาจากคนอื่น:

  • คีย์เกือบทั้งหมดอาจถูกจัดเรียงใหม่
    • RETURN , SHIFT ซ้าย , การควบคุมด้านซ้าย , SPACE-bar , & TABต้องอยู่ต่อไป แต่คนอื่น ๆ ทั้งหมดรวมถึงตัวเลขสัญลักษณ์และปุ่มการเคลื่อนไหวจะเปิดขึ้นเพื่อเคลื่อนที่
    • อาจเหมาะสมที่สุดที่จะออกจากzxcv & อาจเป็นเพราะอยู่ในสถานที่เนื่องจากการเลิกทำ / ตัด / คัดลอก / วาง / บันทึกนิสัย :)
    • ปุ่มDELETEมีแนวโน้มที่จะถูกย้ายไปที่ที่CAPS LOCKคือ :)
    • ไม่น่าจะทำให้วงเล็บที่ตรงกันเช่น () {} [] <> อยู่ติดกัน ดูด้านล่าง
  • วิธีที่แม่นยำเพียง IMHO ในการนับการใช้คีย์คือการบันทึกโดยใช้กุญแจไม่ใช่การนับคีย์ของไฟล์:
    • "การเขียนโปรแกรม" ส่วนใหญ่กำลังส่งอีเมลโพสต์ในฟอรัม, twitter, รายงานบั๊ก, การท่องเว็บ ฯลฯ
    • ฉันเชื่อว่าการใช้แป้นพิมพ์ส่วนใหญ่คือ "การเคลื่อนไหว" การแท็บระหว่างฟิลด์เลื่อนหน้าลงย้ายเคอร์เซอร์ไปรอบ ๆ ฯลฯ สิ่งเหล่านี้จะไม่ถูกดักจับด้วยเอาต์พุตไฟล์
    • ผู้แก้ไขหลายรายใช้มาโคร & มาโครอัตโนมัติดังนั้นตัวกำหนดความผิดพลาด:)}]> อาจไม่ได้พิมพ์บ่อยเท่า openers ดังนั้นไฟล์การบันทึกคีย์เท่านั้นและการแยกไฟล์จะไม่ถูกต้อง

ดังนั้นคำถามของฉัน:

  1. คีย์ล็อกเกอร์ซอฟต์แวร์ฟรี / โอเพนซอร์สที่ปลอดภัยอะไรที่จะไม่อัปโหลดไฟล์ยกเว้นว่าคุณส่งไฟล์แยกต่างหากด้วยตัวเอง ฉันไม่ต้องการรวบรวมชื่อการเข้าสู่ระบบ & รหัสผ่านไม่เพียง แต่เพื่อความปลอดภัย แต่ยังรวมถึงเพราะอาจทำให้การวิเคราะห์ของฉัน IMHO
  2. โปรแกรมใดบ้างที่สามารถใช้ฝั่งไคลเอ็นต์เพื่อแยกคีย์ - คู่ & นับคู่ได้ หรือวิธีสร้างที่ดีที่สุด?
  3. การหาอาสาสมัครช่วยเหลือที่ไหนดีที่สุด

งานวิจัยที่ดีที่สุดจนถึงตอนนี้: http://www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

& Wikipedia: Keyboard_layout # ไม่ใช่ QWERTY_keyboards_for_Latin_scripts

TIA!


คำถามที่น่าสนใจ แต่ให้ฉันเสนอหนึ่งของตัวเอง: เราจะดีกว่าละทิ้งเค้าโครงช็อกโกแลตแท่งเซที่เราใช้มานานหลายสิบปีแล้วสำหรับบางสิ่งที่แตกต่างอย่างสิ้นเชิง?
Ignacio Vazquez-Abrams

คุณหมายถึงอิกนาชิโอเพื่อเปลี่ยนไปใช้เลย์เอาต์ใหม่ทั้งหมดเช่นคีย์บอร์ด Contoured Kinesis ในราคา $ 300USD หรือไม่? ไม่เพียงแค่ทำการแมปคีย์ใหม่ในคีย์บอร์ดราคาถูกที่มีอยู่ในร้านค้าปกติในราคา $ 5-20
tomByrer

หากคุณคุ้นเคยกับแป้นพิมพ์ QWERTY มาตรฐาน (หรืออื่น ๆ ) มันอาจมีประสิทธิภาพมากกว่าที่จะใช้มันแทนที่จะเรียนรู้รูปแบบใหม่ โดยเฉพาะอย่างยิ่งถ้าคุณใช้คอมพิวเตอร์เครื่องอื่นซึ่งจะไม่มีเค้าโครงที่กำหนดเองของคุณเป็นประจำ
บ๊อบ

1
อย่างไรก็ตามเพื่อให้ผู้คนได้รับการตอบกลับคุณต้อง ping พวกเขาด้วย @tomByrer เป็นต้น!
slhck

2
ฉันสงสัยว่าสิ่งที่ดีที่สุดที่ควรทำคือการให้ giv <>{}[](และปุ่มอื่น ๆ ที่ต้องการการเปลี่ยน) กุญแจของตัวเอง - ฉันจะไม่คิดว่าตัวเองเป็นโปรแกรมเมอร์ แต่ฉันรู้ว่านั่นเป็นสิ่งที่น่ารำคาญที่สุดเมื่อเขียนสคริปต์ทุบตี
evilsoup

คำตอบ:


2

ใช้โปรแกรมเช่นWhatPulseเพื่อบันทึกว่ามีการกดแป้นใดและกี่ครั้ง

หลังจากถามบนเครือข่าย FreeNode IRC เกี่ยวกับวิธีการรับความถี่ที่สำคัญร่วมกันผู้ใช้นำฉันไปที่นี้

  1. รับข้อความของคุณเช่นโปรแกรมและคัดลอก
  2. ไปที่http://type.trmnl.org/
  3. ใต้ปุ่มให้แน่ใจว่าได้ยกเลิกการเลือก 'เริ่มอัตโนมัติพร้อมเนื้อหาคลิปบอร์ดที่วาง'
  4. จากนั้นวางโปรแกรมของคุณลงในกล่องข้อความ
  5. กด Cntrl + Shift + K ซึ่งจะเปิดคอนโซล
  6. พิมพ์count_digraphs()แล้วกด Enter

ผลลัพธ์จะถูกอ่านเช่นนี้: "ar" 7 17 10 "ra"ซึ่งหมายความว่า 'ar' ถูกกด 7 ครั้ง 'ra' ถูกกด 10 ครั้งและทั้งหมดรวมกัน 'ar' และ 'ra' ถูกกด 17 ครั้งด้วยกัน


"ตัวเลือกพิเศษ: เก็บบันทึกความถี่การกดแป้นพิมพ์ - เปิดตัวใน WhatPulse เวอร์ชั่น 1.7 ซึ่งจะช่วยให้คุณสามารถติดตามจำนวนคีย์แต่ละปุ่มที่คุณกด" whatpulse.org/wiki/Program_Settings_Tab_2 น่ารักน่ารัก ๆ ทำไม่ได้ @ekaj! ฉันจะดูมันด้วย!
tomByrer

ฉันคิดว่านี่เป็นทางออกที่ดีที่สุดที่ยังขาดคีย์ผู้บุกรุกที่น่าสนใจมากกว่า การเป็นเอาท์พุทข้ามแพลตฟอร์ม & XML / HTML เป็นสิ่งที่น่ายินดี สิ่งเดียวที่ขาดหายไปคือการสนับสนุน bigram / digram (ลำดับของสององค์ประกอบที่อยู่ติดกัน) เหตุผล: ในภาษาอังกฤษไม่เพียง แต่เป็น 'เขา' และ 'ที่' ร่วมกัน แต่ในภาษาการเขียนโปรแกรมจำนวนมาก (เช่น C ++, JavaScript, CSS) ' ; ENTER ' มักพิมพ์ด้วยกันบ่อยมาก ดังนั้นหากมี WhatPulse clone ที่อนุญาตสิ่งนี้ก็จะดีที่สุด ในขณะเดียวกันฉันจะโพสต์ข้อเสนอแนะในฟอรั่มของพวกเขา
tomByrer

1
@tomBryer พยายามอัปเดตคำตอบสำหรับคุณหวังว่าจะช่วย .. และทราบว่าฉันสามารถทำให้มันทำงานได้ใน FF ไม่ใช่ IE หรือ Chrome .. ไม่แน่ใจว่าทำไม
cutrightjm

ใช่ว่ามีประโยชน์ในหลายวิธี! ซอร์สโค้ด: "'น่าเสียดายที่แอพนี้ใช้ไม่ได้กับ IE, sry.'"; IE มีไวยากรณ์ JS แปลก ๆ บางครั้ง
tomByrer

4

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

สิ่งที่ฉันหมายถึงคือมันไม่ได้ช่วยอะไรคุณมากนักในการติดตามการเคลื่อนไหวและการแก้ไขคีย์และใช้เป็นพื้นฐานสำหรับเลย์เอาต์ใหม่เนื่องจากมันสามารถกำหนดค่าใหม่ได้อย่างง่ายดาย (ในตัวแก้ไขใด ๆ ที่มีค่าเท่ากับเกลือและเนื่องจากเรากำลังพูดถึงโปรแกรมเมอร์) เลย์เอาต์เรามักพูดถึง Vim หรือ Emacs ไม่ควรยุ่งเกี่ยวกับการวางตำแหน่งของตัวอักษรและได้รับการปรับให้เหมาะสมแล้ว (อีกครั้ง: เราไม่ได้พูดถึง Notepad)

คุณกำลังพยายามที่จะแก้ปัญหาซึ่งเป็นวิธีที่ไม่มีประสิทธิภาพในการผลิตโดยเฉพาะอย่างยิ่งสำหรับโปรแกรมเมอร์ ** imho ** จะมีผลมากกว่าในการเรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือ (อีกครั้ง: อาจ Vim / Emacs) คุณจะพบว่าใช้เวลาน้อยลงในการเขียนตัวอักษรขณะเขียนโปรแกรมและใช้เวลามากขึ้น (แต่มีประสิทธิภาพมากขึ้น) ในการเติมข้อมูลอัตโนมัติการติดแท็กอัตโนมัติการเยื้องอัตโนมัติการค้นหาคำจำกัดความของฟังก์ชั่นด่วน ฯลฯ เพื่อทำสิ่งทั้งหมดนี้ได้รับการดัดแปลงเพื่อให้มีประสิทธิภาพและการเพิ่มความเร็วขนาดใหญ่นั้นมาพร้อมกับความคุ้นเคย ดังนั้นฉันจึงยืนยันว่ารูปแบบแป้นพิมพ์ที่แตกต่างกันนั้นเหมาะสมสำหรับการทำลายล้างเนื่องจากคุณมีอยู่แล้วจำนวนมากปีของการออกกำลังกาย QWERTY หากใช้เวลาฝึกอบรมเชิงวิเคราะห์แบบเดียวกันกับ QWERTY เนื่องจากผู้ที่เปลี่ยนเลย์เอาต์ใช้กับ Dvorak พวกเขาจะสังเกตเห็นการเพิ่มความเร็ว ความเร็วมาพร้อมกับการฝึกอบรมที่ชัดเจน

หากคุณเป็น copywriter / นักแปล / ผู้แต่ง / ฯลฯ ใครบางคนที่ใช้เวลาของเขาทำงานกับความหมายที่แท้จริงของคีย์ดังนั้นรูปแบบที่แตกต่างกันอาจช่วยได้ สำหรับโปรแกรมเมอร์คำแนะนำที่ดีที่สุดคืออย่างน้อยที่สุดจะได้เลย์เอาท์คีย์บอร์ดภาษาอังกฤษเนื่องจากสำนวนการเขียนโปรแกรมได้รับการกำหนดรูปแบบโดยตำแหน่งเหล่านี้และตำแหน่งที่สำคัญของพวกเขา (บนเลย์เอาต์คีย์ท้องถิ่นของฉันนั้น@$[]{}~อยู่ด้านหลัง AltGr

tldr: Dvorak / Colemak / [สิ่งที่ดีที่สุดต่อไปตั้งแต่ขนมปังหั่นบาง ๆ "] (เนื้อหา) แก้ปัญหาเฉพาะสำหรับผู้ที่ป้อนข้อความต่อเนื่องจำนวนมากในภาษาเฉพาะ (มักเป็นภาษาอังกฤษ) สำหรับการเขียนโปรแกรมคีย์ที่จำเป็นไม่ได้อยู่ภายใต้ข้อ จำกัด เดียวกันกับภาษาตามตัวอักษรและดังนั้นจึงได้รับการปรับให้เหมาะสมสำหรับวัตถุประสงค์ (ซึ่งไม่ใช่แค่ "เขียนเร็วที่สุดเท่าที่จะทำได้") มันสร้างเพิ่มเติมเกี่ยวกับการปฏิบัติการเชิงตรรกะ เป็นกลุ่ม) ฉันเชื่อว่าเวลาที่ใช้ในการเรียนรู้เลย์เอาท์แบบอื่นและความสับสนที่เกิดขึ้นครั้งแล้วครั้งเล่าจะไม่คุ้มค่ากับความพยายามในกรณีส่วนใหญ่ (ไม่ใช่แค่ความสับสนของคุณเองคนอื่น ๆ ที่นั่งลงที่เทอร์มินัลเดียวกัน สิ่งต่าง ๆ ที่คุณ) รวมไปถึงโปรแกรมเมอร์ด้วย


ขอบคุณ @ Daniel-Andersson สำหรับข้อมูลเชิงลึกเกี่ยวกับ Vim; มันมีประโยชน์ที่จะชั่งน้ำหนักว่าผู้แก้ไขบางคนอนุญาตให้ทำการคีย์การแมปใหม่! ฉันต้องเรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือของฉัน อย่างไรก็ตามฉันทำการแก้ไขด้วยเครื่องมือมากมาย บรรณาธิการออนไลน์ & กล่องข้อความ: ฟอรัม (เช่นที่นี่;), ส่วนสำคัญ, jsFiddle, GMail, Facebook, Twitter (ไม่ควร @ เป็นคีย์ปิดแบบ non-shift?) ... และบรรณาธิการอื่น ๆ เช่น Inkscape, SynthMaker, Live, ฯลฯ ฉันต้องการที่จะรวมทางลัดของฉันให้มากที่สุดเท่าที่เป็นไปได้ผ่านการกดปุ่มจากนั้นเพิ่มขั้นตอนให้สูงขึ้นผ่าน app-configs :)
tomByrer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.