Горячая клавиша для завершения строки точкой с запятой и перехода к новой строке в Sublime Text 2
Я пытаюсь найти горячую клавишу на работе. Я просто получил эту работу, и я использую Mac более или менее первый раз в жизни.
Вернувшись домой на моем ноутбуке, при использовании Eclipse я, кажется, помню, что есть одна горячая клавиша, которая будет:
- Добавьте
;
к концу моей текущей строки (независимо от того, где карет находился в указанной строке)
- Поместите мой курсор в начало новой строки, с тем же уровнем отступов, что и строка, которую я только что добавил точку с запятой, чтобы
Кто-нибудь знает, была ли эта горячая клавиша для Eclipse, или знаете способ репликации указанной горячей клавиши в Sublime Text 2?
Ответы
Ответ 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, вероятно, стоит изучить основы плагинов. Многое можно построить так, чтобы у вас было такое же поведение, как и у других редакторов, это просто требует дополнительных усилий (путем создания плагина или поиска плагина, который делает это) спереди.