Firefox แบบ vi binding

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


เกิดอยากใช้ vi binding กับ Firefox ขึ้นมาเพราะรู้สึกว่าสะดวกกว่าใช้ touch pad ของแล็ปท็อป. สำหรับคนที่ไม่ได้ใช้ vi ก็ต้องแนะนำกันก่อนว่าคือเวลากดคีย์ h j k l นี่จะถึงการเลื่อนเคอร์เซอร์ไปทางซ้าย (h), ล่าง (j), บน (k) และขวา (l). ซึ่งกดให้ผลเหมือนกับการกดคีย์ลูกศรนั่นแหละ แต่มันสะดวกกว่าตรงที่บริเวณที่วางมือบนแป้นพิมพ์ นิ้วชี้ของมือขวาจะอยู่ที่ตัว j พอดีเหมาะสำหรับการเลื่อนเคอร์เซอร์ไปข้างล่าง. ถ้าจะเลื่อนเคอร์เซอร์ไปทางซ้ายก็เขยิบนิ้วชี้นั้นเลื่อนมาที่ตัว h. ถ้าจะเลื่อนเคอร์เซอร์ขึ้นก็ใช้นิ้วกลางของมือขวากด. ส่วนนิ้วนางนั้นเอาไว้กดตัว l เพื่อเลื่อนไปทางขวา. สรุปง่ายๆคือใช้ 3 นิ้ว 4 คีย์ครับ.

เข้าเรื่อง Firefox, ปรกติที่เคยเห็นในเว็บทั่วๆไปก็จะแนะนำให้สร้างไฟล์ userHTMLBindings.xml ซึ่งไปแก้ที่ไฟล์ของระบบ. แต่ีเมื่อวันก่อนที่่ไปเจอมาคือใช้ firefox extension ที่ชื่อว่า keyconfig เข้าช่วย. สรุปง่ายๆคือ

  • ติดตั้ง keyconfig ก่อนโดยไปที่ http://mozilla.dorando.at/ แล้วคลิ้ก keyconfig.xpi. Firefox ก็จะถามให้ติดตั้ง extension ตัวนั้น.
  • ปิด firefox ให้หมดเมื่อติดตั้ง extension เสร็จ
  • หาไฟล์ prefs.js ที่อยู่ในไดเรกทอรี profile ของตัวเอง. ถ้าเป็นพวกลินุกซ์ก็จะอยู่ที่ ~/.mozilla/firefox/[profile]/prefs.js โดยที่ [profile] จะเป็นตัวเลขกับอักษรแบบสุ่มๆ. หรือถ้าเป็น Windows ก็มักจะอยู่ที่ %AppData%\Mozilla\Firefox\Profiles\[profile]\prefs.js. ตรง %AppData% ให้เปิด Windows Explorer มาแล้วพิมพ์ %AppData% ที่ address bar เลยก็จะไปถึงที่ %AppData% ซึ่งปรกติก็จะเป็น c:\documents and settings\[user]\Application Data.
  • เพิ่มบรรทัดต่อไปนี้ลงไป
    user_pref("keyconfig.main.xxx_key_PageUp", "][-][][goDoCommand('cmd_scrollPageUp');");
    user_pref("keyconfig.main.xxx_key_ScrollBottom", "shift][G][][goDoCommand('cmd_scrollBottom');");
    user_pref("keyconfig.main.xxx_key_ScrollLeft", "][H][][goDoCommand('cmd_scrollLeft');");
    user_pref("keyconfig.main.xxx_key_ScrollLineDown", "][J][][goDoCommand('cmd_scrollLineDown');");
    user_pref("keyconfig.main.xxx_key_ScrollLineUp", "][K][][goDoCommand('cmd_scrollLineUp');");
    user_pref("keyconfig.main.xxx_key_ScrollPageDown", "][ ][][goDoCommand('cmd_scrollPageDown');");
    user_pref("keyconfig.main.xxx_key_ScrollRight", "][L][][goDoCommand('cmd_scrollRight');");
    user_pref("keyconfig.main.xxx_key_ScrollTop", "alt][,][][goDoCommand('cmd_scrollTop');");
    

    คีย์ที่ตั้งไว้ได้แก่

    • - เป็นการเลื่อนหน้าขึ้นไป อันนี้อดีตเคยชินกับการใช้ pine เลยใช้อันนี้
    • Shift + G เลื่อนหน้าไปที่ข้างล่าง (บรรทัดสุดท้าย) ของเพจ
    • h เลื่อนหน้าไปทางซ้าย
    • j เลื่อนหน้าไปข้างล่าง
    • k เลื่อนหน้าไปข้างบน
    • l เลื่อนหน้าไปทางขวา
    • Alt+, ไปข้างบนสุดของหน้า อันนี้ผสมกับ emacs keybinding M-<
  • เสร็จแล้วเปิด Firefox ขึ้นมาใช้อีกทีก็น่าจะใช้ vi binding ได้

พอเปิดขึ้นมาก็จะเห็นว่าที่ Tools จะมีเมนูของ key config. และจะเห็นว่าบรรทัดที่เพิ่มเข้าไปในไฟล์ prefs.js นั้นแก้ไขได้จากเมนู.