Подтвердить что ты не робот

Горячая клавиша для завершения строки точкой с запятой и перехода к новой строке в Sublime Text 2

Я пытаюсь найти горячую клавишу на работе. Я просто получил эту работу, и я использую Mac более или менее первый раз в жизни.

Вернувшись домой на моем ноутбуке, при использовании Eclipse я, кажется, помню, что есть одна горячая клавиша, которая будет:

  • Добавьте ; к концу моей текущей строки (независимо от того, где карет находился в указанной строке)
  • Поместите мой курсор в начало новой строки, с тем же уровнем отступов, что и строка, которую я только что добавил точку с запятой, чтобы

Кто-нибудь знает, была ли эта горячая клавиша для Eclipse, или знаете способ репликации указанной горячей клавиши в Sublime Text 2?

4b9b3361

Ответ 1

Лучшее решение для этого - запись макроса в Sublime Text, а затем присвоение его ярлыку на клавиатуре. Выполните следующие действия:

  • Создайте строку, такую ​​как alert ('hello') и оставьте курсор вправо после буквы "o".
  • Затем перейдите в Инструменты > Записать макрос, чтобы начать запись.
  • Нажмите Command + , чтобы перейти в конец строки.
  • Нажмите ; и нажмите Enter
  • Остановите запись макроса, выбрав "Инструменты" > "Остановить запись макроса"
  • Теперь вы можете протестировать свой макрос с помощью инструментов > Макрос просмотра (необязательно)
  • Сохраните макрос, перейдя в Инструменты > Сохранить макрос (например: EndOfLine.sublime-macro)
  • Создайте ярлык, добавив это между квадратными скобками в вашем в настройках > Ключевые привязки - Файл пользователя:

    {
    "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
    }
    
  • Теперь, каждый раз, когда вы нажимаете Command + ;, он будет волшебным образом поместите точку с запятой в конец текущей строки и переместите курсор на следующую строку.

Счастливое кодирование!

Ответ 2

Прочитав ваш вопрос примерно три раза, я наконец понял, что вы искали одну горячую клавишу для выполнения обеих операций. Упс.

Ваш запрос звучит как Ctrl + Shift + ; горячая клавиша Smart Semicolon Плагин Eclipse. Добавляя точки с запятой гениального IQ, возможно, потребуется совершенно новый плагин Sublime Text 2, вы можете легко создать привязку ключа smart semicolon-esque с Sublime Text Macros. Я до сих пор не знал о них!

В этом случае сама запись макроса на самом деле является самым быстрым способом его создания, а не копированием и вставкой нового файла (и теперь у вас будет возможность сделать больше). Сначала откройте новый файл и введите свою любимую строку мусора:

Lord Vetinari cat|

Затем переместите курсор в любую точку линии:

Lord Veti|nari cat

Теперь нажмите Ctrl + Q, горячую клавишу для Tools -> Record Macro. Если строка состояния включена, она сообщит вам, что это "Начало записи [a] макроса". Нажмите End (если у вас нет клавиши End, пропустите ниже), затем ;, затем Enter. Наконец, нажмите Ctrl + Q снова, чтобы остановить запись. Когда вы это сделаете, в строке состояния отобразится "Остановленный макрос записи". Убедитесь, что ваш макрос работает, нажав Ctrl + Shift + Q на сегмент кода по вашему выбору.

Просто нажатие Enter отрегулирует отступ на следующей строке соответственно, если для параметра "auto_indent" установлено значение true. См. Preferences -> Settings – Default, строка 59.

Когда вы будете довольны, сохраните новый макрос Tools -> Save Macro.... Я сохранил мой как Packages/User/smart-semicolon.sublime-macro. Мой файл выглядел примерно так: не стесняйтесь копировать его, если вы не можете или не будете делать макрос вручную:

[
    {
        "args":
        {
            "extend": false,
            "to": "eol"
        },
        "command": "move_to"
    },
    {
        "args":
        {
            "characters": ";"
        },
        "command": "insert"
    },
    {
        "args":
        {
            "characters": "\n"
        },
        "command": "insert"
    }
]

"extend": false, означает, что макрос не будет добавлять текст в рабочий отбор. Подробнее о вариантах команд на странице Страница неофициальных документов Docs.

Теперь, когда у вас есть свой макрос, мы можем присвоить ему привязку клавиш. Добавьте следующие строки в файл Preferences -> Key Bindings – User:

 { "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"}, "context":
      [
           { "key": "selector", "operator": "equal", "operand": "source.java" }
      ]
 },

Замените Ctrl + Shift + ; тем, что вы предпочитаете, сохраните свой файл и сделайте снимок. Массив "context" ограничивает привязку ключа к файлам Java (см. страница "Ссылки на неофициальные документы" для получения дополнительной информации о контекстах); если вы хотите, чтобы привязка клавиш была активна повсюду, используйте эту строку вместо:

 { "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"} },

Этот NetTuts + статья содержит гораздо больше информации о макросах и привязывает их к ключам; Я часто ссылался на него. Этот UserEcho post выглядит так, что у него есть дополнительная информация о том, как сделать вставку более расширяемой.

Ответ 3

Вы также можете использовать готовый возвышенный пакет, созданный для этой цели: AppendSemiColon

Вы можете использовать контроль пакетов, чтобы установить его, просто выполните поиск "AppendSemiColon".

Place a semicolon at the end of the cursor current line(s) by pressing:
Command+; on OS X
Ctrl+; on Windows and Linux

и

You can also automatically go to the next line at the same time like this:
Command+Shift+; on OS X
Ctrl+Shift+; on Windows and Linux

Я использую этот пакет некоторое время, и он отлично работает.

UPDATE: Как упоминалось автором в комментарии, вы также можете изменить горячие клавиши по умолчанию, если хотите (лично мне нравятся значения по умолчанию). В качестве примера просто измените:

[
  { "keys": ["ctrl+;"], "command": "append_semi_colon" }, 
  { "keys": ["ctrl+shift+;"], "command": "append_semi_colon", "args": {"enter_new_line": "true"} }
]

в вашей дорожной карте, чтобы использовать любые нужные клавиши.

Я тестировал последнюю версию, и эта функция тоже отлично работает. Была ошибка, когда лишние точки с запятой были добавлены неправильно на дополнительных нажатиях горячих клавиш - эта незначительная досада также исправлена. Спасибо, MauriceZ/mzee99!

Ответ 4

Ctrl + Enter создаст новую строку с тем же уровнем отступов.

Я не мог найти ничего подобного Ctrl + A, о котором вы говорили

Ответ 5

Я на Sublime Text 3... вдохновленный вашим сообщением, я добавил следующее в мою .sublime-keymap:

{ "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "Packages/User/endOfLine.sublime-macro"} },

Я поражен тем, сколько времени это экономит.

Ответ 6

@Фелипе рассмотрел второй пункт. Вы можете имитировать поведение первого с помощью простого макроса или плагина. Я говорю или потому, что вы не описали позицию курсора после того, как вы нажмете комбинацию клавиш. Перемещает ли курсор на следующую строку? Вставляет ли она новую строку? Я думаю, вы поняли.

Я уверен, что eclipse работает как на OS X, так и на окнах, поэтому, если вам более удобно, почему бы не использовать его (если ваша работа не требует ST)? Большинство привязок клавиш, вероятно, одно и то же/похожее (ну, вероятно, это скорее команда, а не управление ярлыками).

http://www.eclipse.org/downloads/?osType=macosx

Если вы продолжаете использовать ST, вероятно, стоит изучить основы плагинов. Многое можно построить так, чтобы у вас было такое же поведение, как и у других редакторов, это просто требует дополнительных усилий (путем создания плагина или поиска плагина, который делает это) спереди.