Отмена нескольких курсоров Sublime Text в режиме винтажной вставки

#sublimetext2 #sublimetext

#sublimetext2 #sublimetext

Вопрос:

Вопрос:

Есть ли способ добавить новую команду (клавиатура, я знаю, что щелчок делает это), чтобы отменить многострочные курсоры, или, может быть, переназначить командный режим на что-то, кроме ESC, чтобы его можно было использовать для отмены многострочных курсоров?

Подробные сведения:

Мне действительно нравится использовать sublime text, и недавно я узнал о пакете vintage, который вы можете использовать, где у вас есть доступ к модальному текстовому редактору, похожему на vim. Мне тоже очень понравилось это использовать, но я продолжаю сталкиваться с этой незначительной проблемой:

В режиме sublime text без винтажного режима ESC можно использовать для отключения нескольких курсоров строки (например, ctrl-alt-вверх / вниз). Однако при включенном vintage это переводит меня в командный режим, но на самом деле я хочу остаться в режиме вставки и отменить многострочные курсоры.

Мне интересно услышать, сталкивался ли кто-нибудь еще с этим, и что они сделали, чтобы это исправить, поскольку я чувствую, что это может произойти довольно часто. Спасибо!

Ответ

Добавьте привязку ключа (см. Принятый ответ). Мне пришлось немного поиграть с настройками в принятом ответе, чтобы заставить его работать, но это определенно правильный путь для решения этой проблемы.

Ответ №1:

Вы можете сделать это, создав новое сопоставление ключей. Перейдите к Preferences -> Key Bindings-User , чтобы открыть свой пользовательский файл раскладки. Это должен быть действительный JSON, поэтому, если у него еще нет содержимого, убедитесь, что в первой строке есть открытая скобка [ , а в последней строке — закрывающая скобка ] . Привязки отдельных клавиш представляют собой слова, заключенные в фигурные скобки {} и разделенные запятыми , .

Создайте новую запись со следующим содержимым:

     { "keys": ["shift escape"], "command": "single_selection",
        "context":
        [
            { "key": "setting.command_mode", "operand": false },
            { "key": "setting.is_widget", "operand": false },
            {"key": "selection_empty", "operator": "equal", "operand": false}
        ]
    }
  

По сути, это создает привязку ключа для ShiftEsc, которая возвращается к одному выделению только в режиме вставки, когда виджет не активен и при наличии нескольких выделений. Я выбрал эту комбинацию клавиш, потому что CtrlEsc мой первый выбор, похоже, вызывает меню «Пуск» Metro в Win8 и AltEsc участвует в переключении окон. Не стесняйтесь устанавливать для него любую привязку ключа, которую вы пожелаете — список допустимых имен ключей находится здесь.

Это должно работать как с Sublime Text 2, так и с ST3.

Комментарии:

1. Хорошо, спасибо за это решение. Я вставил то, что у вас было, и это не работало, пока { "key": "setting.is_widget", "operand": false } не было изменено на { "key": "setting.is_widget", "operand": true } . После этого все работало нормально. Не могли бы вы немного расширить информацию о том, что на самом деле проверяет строка виджета? Это зависит от версии ST или это какое-то системное свойство? Кстати, я на w7.