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 นั้นแก้ไขได้จากเมนู.

