Я использую vimperator с моей операционной системой, настроенной на альтернативную раскладку клавиатуры. Довольно просто переназначить вещи в режиме вставки и обычном режиме с помощью inoremap
и nnoremap
в моем .vimperatorrc
, но я не могу найти, как переназначить ключи в режиме каретки или текстовой области. Как я могу это сделать?
2 ответа
Также вам может быть полезно знать, что Pentadactyl - дальнейшая разработка Vimperator - позволяет легко переназначать ключи в режимах caret и textarea с помощью команды :map -modes caret,text-edit
или даже :map -modes command
если вы хотите одинаковые сопоставления для обычного, визуального, каретного и текстового режимов редактирования.
РЕДАКТИРОВАТЬ: Если вы хотите сделать расширенные настройки, как это, вам будет гораздо легче, если вы используете пентадактиль вместо Vimperator. Оставив это здесь для полноты.
Вам нужно будет отредактировать исходный код самого Vimperator, но это действительно не страшно. Вот что вам нужно сделать:
найти файл xpi для vimperator
Firefox хранит код своих расширений в файлах
.xpi
, которые в основном представляют собой zip-файлы, содержащие код для надстройки. Самый простой способ найти vimperator xpi - установить супер-крошечную папку открытого профиля надстройки, нажать alt t, чтобы открыть меню инструментов, выбрать "открыть папку профиля" и перейти кextensions
подкаталога. Здесь вы найдете файлы xpi для всех ваших дополнений; ищите тот с "vimperator" в названии. Для меня этоvimperator@mozdev.org.xpi
.Если у вас есть хороший инструмент поиска, такой как « Все» или "Spotlight" на Mac, вы, вероятно, можете просто найти "vimperator" и искать файлы с расширением
.xpi
.Скопируйте файл xpi на рабочий стол и измените расширение с
.xpi
на.zip
Откройте zip-архив и перейдите к
common/content/
. Откройте файлeditor.js
в текстовом редактореИскать "addMovementMap"
Вы должны найти что-то вроде этого:
// KEYS COUNT CARET TEXTAREA VISUAL_TEXTAREA addMovementMap(["k", "<Up>"], true, "lineMove", false, "cmd_linePrevious", selectPreviousLine); addMovementMap(["j", "<Down>", "<Return>"], true, "lineMove", true, "cmd_lineNext", selectNextLine); addMovementMap(["h", "<Left>", "<BS>"], true, "characterMove", false, "cmd_charPrevious", "cmd_selectCharPrevious"); addMovementMap(["l", "<Right>", "<Space>"], true, "characterMove", true, "cmd_charNext", "cmd_selectCharNext"); addMovementMap(["b", "B", "<C-Left>"], true, "wordMove", false, "cmd_wordPrevious", "cmd_selectWordPrevious"); addMovementMap(["w", "W", "e", "<C-Right>"], true, "wordMove", true, "cmd_wordNext", "cmd_selectWordNext"); addMovementMap(["<C-f>", "<PageDown>"], true, "pageMove", true, "cmd_movePageDown", "cmd_selectNextPage"); addMovementMap(["<C-b>", "<PageUp>"], true, "pageMove", false, "cmd_movePageUp", "cmd_selectPreviousPage"); addMovementMap(["gg", "<C-Home>"], false, "completeMove", false, "cmd_moveTop", "cmd_selectTop"); addMovementMap(["G", "<C-End>"], false, "completeMove", true, "cmd_moveBottom", "cmd_selectBottom"); addMovementMap(["0", "^", "<Home>"], false, "intraLineMove", false, "cmd_beginLine", "cmd_selectBeginLine"); addMovementMap(["$", "<End>"], false, "intraLineMove", true, "cmd_endLine" , "cmd_selectEndLine" );
Буквы в кавычках являются отображениями для режима каретки и режима текстовой области. Измените их на все, что вы хотите, и сохраните файл. Используйте
<C-f>
для сопоставления функции с Control fЗайдите в firefox и удалите вимператор. Это избавит от старого xpi, так что вы можете использовать тот, который мы только что отредактировали
Измените расширение zip-файла обратно на xpi
Нажмите Alt f в Firefox, перейдите к новому xpi на рабочем столе и выберите открыть. Firefox установит его как новое дополнение.
Перезапустите Firefox и наслаждайтесь новыми привязками!
Одна проблема заключается в том, что если вы обновите vimperator, вам нужно будет сделать это снова с новым xpi, но вы сможете просто заменить этот раздел в новой версии вашей отредактированной версией из старой.