Поговорим о горячих клавишах редактора Sublime.
Редактор очень нравится, радует что он есть под все системы, радует что плагины можно на Python писать. Но пока не до плагинов, сегодня я столкнулся с небольшой проблемой — нужно было переконверировать большое количество файлов из cp1251 в utf-8. Сначала делал руками: открываю файл- вижу кодировка сломана — Reopen with encoding — Save with encoding. И так каждый файл. Сразу надоело, захотелось это делать чуть быстрее — хотя бы не лазить мышкой в меню File каждый раз.
Решил посмотреть какие горячие клавиши отвечают за «reopen with encoding» и за «save with encoding»: Preferences -> Key Bindings — Default
Но, к сожалению, там ничего подобного не нашел. И тут нам на помощь приходит логгер команд. Для начала, вызовим консоль: Ctrl-~ или View -> Show Console
Набираем руками или копируем отсюда команду: sublime.log_commands (True)
Теперь при работе в редакторе мы будем видеть команды, которые выполняет наш редактор. Вернемся к нашей задаче.
Открыли файл: Вместо cp1251 отображаются кракозябры. Выполняем File -> Reopen with encoding файл перекодируется, смотрим что нам консоль показала:
command: reopen {"encoding": "Cyrillic (Windows 1251)"}
При сохранении с кодировкой:
command: save {"encoding": "utf-8"}
Добавим это в конфиг (горячие клашиви можете поменять): Preferences -> Key Bindings — User
[
{ "keys": ["ctrl+alt+w"], "command": "reopen", "args": {"encoding": "Cyrillic (Windows 1251)" } },
{ "keys": ["ctrl+alt+s"], "command": "save", "args": {"encoding": "utf-8" } }
]
А вообще открытие Windows-1251 с кракозябрами зависит от этой настройки (Preferences -> Settings — Default)
"fallback_encoding": "Western (Windows 1252)",
Чтобы кракозябры не появлялись — можно поменять на:
"fallback_encoding": "Cyrillic (Windows 1251)",