MyTetra Share
Делитесь знаниями!
Что настроить в редакторе Micro, чтобы его интерфейс стал удобнее и привычнее
Время создания: 20.11.2017 13:42
Текстовые метки: micro editor, micro, editor, редактор, настройка, первичная, привязка, клавиши, клавиатура, keys, binding
Раздел: Компьютер - Linux - Редакторы текста - Текстовый редактор micro
Запись: xintrea/mytetra_syncro/master/base/1511174536fwax013mmg/text.html на raw.github.com

Общие настройки редактора


Общие настройки находятся в файле:



/home/<user>/.config/micro/settings.json



Желательно установить опции:



  • "savecursor": true - запоминать положение курсора в открываемых/закрываемых файлах
  • "useprimary": false - запретить копирование в буфер обмена при выделении мышкой при каждом движении мышки. Полезно, если micro используется в терминале в удаленной сессии. Копирование в буфер обмена будет происходить только после нажатия Ctrl+C.



Настройки клавиатуры



Внимание! Все нижеописанные настройки клавиатуры производились в терминале Konsole. В других терминалах определение и поведение сочетаний клавиш может отличаться.



По-умолчанию, в старых версиях редактора micro, файл настройки клавиатуры не создан. Его можно создать вручную:



touch ~/.config/micro/bindings.json



В более новых версиях, как минимум в 2.0.3, этот файл созадется автоматически.


Его содержимое должно быть в формате Json, примерно так:



{

"CtrlY": "Undo",

"CtrlZ": "Redo"

}



Получить помощь по возможным комбинациям клавиш можно в самом редакторе, нажав Ctrl+E (переход в командный режим), и введя команду:



help keybindings



Начиная с версии 1.3.2 появилась проблема, которую обещают исправить в версии 1.3.4. Проблема в том, что решили использовать клавишу ESC для ввода магических кодов со стартовым кодом 27. Кому это надо - отдельный вопрос. Факт в том, что в Micro перестали работать:


  • выход из редактора по ESC
  • выход из помощи по ESC
  • выход из командного режима по ESC
  • различные отмены по ESC


Для того, чтобы вернуть нормальное поведение ESC, необходимо: установить micro 1.3.1 или ниже (автор статьи использует вообще 1.2.0). И в файле bindings.json надо прописать опцию:



"Esc": "Quit"



После такой настройки клавиша ESC заработает как положено. Другими словами: в версиях 1.3.2 - 1.3.x данная настройка не работает.


UPD: Проверено, что настройка заработала в версии 1.4.0.


Еще стоит прописать такие опции для более привычного поведения курсора во время выделения:



"ShiftHome": "SelectToStartOfLine",

"ShiftEnd": "SelectToEndOfLine",

"CtrlShiftRight": "SelectWordRight",

"CtrlShiftLeft": "SelectWordLeft",

"CtrlRight": "WordRight",

"CtrlLeft": "WordLeft"



Эти опции заставят работать выделение до конца/начала строки при нажатии Shift-Home/End. А так же заработает перепрыгивание и выделение по словам при нажатой клавише Ctrl.


Так же можно настроить выделение больших кусков текста (размером с экранную страницу) по клавишам Shift+PgUp / Shift+PgDown. Для этого необходимо прописать следующие биндинги клавиш:



"ShiftPageDown": "SelectPageDown",

"ShiftPageUp": "SelectPageUp"



Внимание! Если редактор micro используется в консоли Konsole, то нужно произвести дополнительные настройки, так как Konsole имеет застаревший баг, который тянется аж с 2004 года (подробности здесь: https://github.com/zyedidia/micro/issues/1637). Для того, чтобы заставить работать сочетания Shift+PgUp / Shift+PgDown в Konsole, надо открыть меню:



"Edit Current Profile..." -> "Keyboard" -> "Edit..." -> "Add"



В появившемся списке необходимо добавить сочетания:



PgUp+Shift+AppScreen \E[5;2~

PgDown+Shift+AppScreen \E[6;2~



Следует обратить внимание, что в данном списке уже существуют комбинации PgDown+Shift-AppScreen и PgUp+Shift-AppScreen и их трогать не надо, так как это другие сочетания. Для невнимательных: разница в том, что написано перед AppScreen - плюс (+) или минус (-).



Настройка поиска


По-умолчанию, в micro работает поиск и при нажатии F7 и при нажатии Ctrl+F. Вроде бы удобно, зато продолжение поиска вперед и назад сделано самобытными комбинациями Ctrl+N и Ctrl+P. Видимо, имелись в виду VI-подобные комбинации /n (next) и /p (previous). Мало того, по-дефолту клавиша поиска занимает даже не две, а три комбинации: помимо F7 и Ctrl+F вызвать поиск можно клавишей F3, о чем написано в документации на шорткаты:



| F3 | Find |

| ... | ... |

| F7 | Find |



Но зачем нужно такое разнообразие вызова поиска, если при этом не работает по привычным клавишам продолжение поиска вперед и назад? Это исправляется следующим образом.


В файле bindings.json надо добавить следующую строчку (надо не забывать следить за запятыми в конце JSON строк), чтобы заработало продолжение поиска вперед:



"F3": "FindNext",



Продолжение поиска вперед по клавише F3 настроено. А что насчет других комбинаций? А что насчет комбинаций для продолжения поиска назад?


Навесить продолжение поиска вперед в старом DOS-стиле не получается вообще:



"ShiftF7": "FindNext", - не работает

"Shift-F7": "FindNext", - не работает



Выходит, что для продолжения поиска вперед остается использовать только кнопку F3.


Для поиска назад обычно используется либо комбинация Shift+F3, либо Shift+F7. Коль выше определено, что работает только F3, значит логично сделать и поиск назад по Shift+F3. В явном виде данная комбинация работать не будет. А все потому, что в Konsole при нажатии этой комбинации вместо стандартных скан-кодов генерируется следующая последовательность, которую можно увидеть в RAW-режиме (Ctrl+E > "raw" > Enter):



EventKey: Alt-O: "\x1bO"

EventKey: 2: "2"

EventKey: R: "R"



Поэтому, чтобы обойти данную проблему, можно вместо "Shift+F3" написать последовательность "<\x1bO><2><R>". Однако данную последовательность надо писать в виде кодов UTF-символов. Таким образом, строка настройки продолжения поиска назад по Shift+F3 будет выглядеть так:



"\u003c\u001bO\u003e\u003c2\u003e\u003cR\u003e": "FindPrevious"



Установка редактора Micro в качестве системного


Если установить редактор Micro как системный, его подхватит MidnightCommander (mc) и начнет его использовать при редактировании файлов. Нужно только не забыть снять галку "Встроенный редактор" в настройках MC (в англоязычном интерфейсе она называется "Use internal edit").


Чтобы указать редактор как системный, нужно в каталоге пользователя в файле .bashrc прописать строчку:



export EDITOR=micro



Для принятия изменений надо перезапустить сессию bash. Предполагается, что редактор Micro размещен в директории /usr/bin.



 
MyTetra Share v.0.59
Яндекс индекс цитирования