Что объединяет эти сервисы? Удобная навигация клавишами 'j' и 'k'.
Недавно Pamela Fox (сотрудница Google, специалист по связям с разработчиками) в своем твиттере дала совет, что клавиша пробела в Google Wave переводит на непрочитанный блип. Я поинтересовался у нее, нет ли в планах ввода jk-навигации, на что она ответила, что не знает, что это за навигация такая. Pamela — замечательный гик. В какой-то мере благодаря ее постам на технических форумах, Google Maps API стал популярен среди разработчиков. Этот эпизод убедил, что рассказывать о таком удобном дополнительном функционале в гиковских сообществах имеет смысл.
Такая навигация присутствует и в почте, и в ридере от Google. jjjjj — так удобно пробегаться по ленте ридера. А чистить почту при помощи клавиатуры для меня намного приятнее и эффективнее, чем при помощи мыши. В обоих сервисах есть много других удобных клавиатурных сокращений, о которых можно узнать, нажав '?'.
В свое время элегантное использование jk-навигации мне очень понравилось в сервисе ffffound.com Нажимаешь на 'j' и перескакиваешь на следующую картинку, а если на последней картинке на странице, то на следующую страницу. Очень удобно: не теряется фокус, как когда картинки прокручиваются сплошным потоком.
Видимо, не только меня такой подход вдохновил. Ryan Singer из 37signals очень хорошо отозвался о нем в блоге компании. А Matthew Hutchinson выложил на github javascript-библиотеку, где эта навигация реализована (изначально использовался prototype, а сейчас и jquery).
Клавиши hjkl в текстовом редакторе vim используются в качестве стрелок. В веб-сервисах 'h' и 'l' могут использовать для прокрутки страниц или для других целей. В недавнем мини-проекте toptuby.appspot.com мне хотелось быстро пролистывать те видео, о которых говорит твиттерсфера и jk-навигация там оказалась очень кстати. На 'h' и 'l' прикрутил промотку видео назад и вперед.
Конечно, добавлять навигацию клавишами hjkl в браузеры можно при помощи расширений. В свое время ставил такое на Firefox, и хотя я — фанат vim, оно не прижилось, потому что не добавляло удобств. Ведь главная суть ffffound-подобной навигации в перескакивании с одного логического блока на другой. Такие блоки на разных сайтах могут определяться различными элементами HTML. И лучше, чтобы создатели сайтов встраивали перескоки при помощи клавиш, пусть даже не 'j' и 'k'.
Так, например, в русском Интернете Артемий Лебедев активно продвигает контрол-навигацию. Она аналогична, но люди, ее воплощающие, фокусируются на переходе от странице к странице, а не логических элементах внутри. А ведь смотреть фотографии путешествий Артемия (к примеру по Украине) было бы приятнее если бы Ctrl + ↓ переносил на начало следующего блока с комментарием и фотографией.
В JavaScript Хабра есть намеки на то, что jk-навигация имеется, но на момент написания статьи она не совсем корректно работала. Через несколько дней после написания этой статьи kapustos представил скрипт Greasmonkey для клавишной навигации по лучшим комментариям на Хабре. Работает в Firefox, Opera и бета-версии Chrome.
Историческая справка:
Видимо, hjkl-навигацию vi (vim, gvim) перенял от одного из первых персональных терминалов ADM-3A. Там на раскладке были стрелки на этих клавишах (см. раскладку). Есть много других вариантов соответствия стрелок и клавиш.
Сайты использующие jk-навигацию (добавляйте в комментариях):
ffffound.com
gmail.com
www.google.com/reader
toptuby.appspot.com
brizzly.com
9gag.com
www.boston.com/bigpicture
например, www.boston.com/bigpicture/2009/12/the_decade_in_news_photographs.html