Я хочу создать макрос Sublime Text 3, чтобы выбрать 111 строк из курсора и удалить их. Я попытался записать это, но все, что он сделал, это удалить один символ назад, и я все еще смущен. Затем я просмотрел макрос вручную и соответствующие команды here, но мне до сих пор не удалось выяснить с этой страницы, возможно ли, что я хочу, и если да, то каким образом. Было бы очень полезно помочь с этим.Sublime Text 3 macro для удаления x строк из каретки
ответ
Нет внутренней команды Sublime Text, которая, к сожалению, сделает несколько ходов одновременно. Однако вы можете определить свою собственную команду перемещения через код плагина, что позволяет вам обойти это.
Для этого маршрута выберите Tools > Developer > New Plugin...
из меню и замените код по умолчанию следующим, затем сохраните файл как файл python (например, move_repeat.py
). Используя этот пункт меню, Sublime гарантирует, что ваш плагин будет сохранен в вашем User
.
import sublime
import sublime_plugin
class MoveRepeatCommand(sublime_plugin.TextCommand):
def run(self, edit, repeat=1, **kwargs):
for num in range(repeat):
self.view.run_command("move", kwargs)
Это реализует новую команду с именем move_repeat
который является падением для замены команды move
, обеспечивая дополнительный аргумент repeat
, который определяет, сколько раз выполнять движения, которые вы предоставляете.
В качестве замены, это может использоваться для перемещения курсора (линий, слов и т. Д.).
Использование этого макроса становится следующее:
[
{
"command": "move_repeat",
"args":
{
"by": "lines",
"extend": true,
"forward": true,
"repeat": 111
}
},
{
"command": "left_delete"
}
]
Здесь я только что создал макрос вручную кодирования его. Если вы хотите сделать это с помощью фактической записи макросов, вам нужно будет пойти по этому другому пути.
Например, вы можете записать макрос, спускаемый только на одну строку и удаляющий, а затем вручную добавить дополнительное значение после факта или вы можете привязать привязку клавиш к повторяющейся команде сначала, а затем выполнить макросъемку.
запутанных Путь
Я с тех пор удалось выяснить способ для записи макросов. По какой-то причине рекордер не регистрирует выбор текста мышью, поэтому мне пришлось выбирать текст с помощью сочетания клавиш во время записи макроса. Это делает работу в том, что он создает макрос, который я описываю, хотя он также приводит к тому, что сценарий, который я предполагаю, намного менее изящный, чем если бы он был написан кем-то в курсе.
Вот сокращенный вариант сценария я закончил с:
[
{
"args":
{
"by": "lines",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args":
{
"by": "lines",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args":
{
"by": "lines",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args":
{
"by": "lines",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args":
{
"by": "lines",
"extend": true,
"forward": true
},
"command": "move"
},
{
"args": null,
"command": "left_delete"
}
]
Это как нефть, как это добирается. Он работает с помощью команды move
для выбора одной строки за раз. Это означает, что этот командный блок необходимо повторить для каждой строки, которую вы хотите выбрать для удаления. В моем случае мне было нужно 111 человек. Надеюсь, кто-то придет и предложит более приятное решение, но до тех пор это делает работу.
- 1. Sublime Text regex для удаления разрывов строк из выделения?
- 2. Sublime Text 3 - Изменить ширину столбцов строк
- 3. Sublime Text 3 для Rust
- 4. Проект Sublime Text 3
- 5. Sublime Text 3 SFTP
- 6. Sublime Text 3 C++ Build System для OS X
- 7. SublimeClang on Sublime text 3
- 8. система сборки Verilog для Sublime Text 3
- 9. Sublime Text 3 Output Python
- 10. Sublime Text 3 - Clean Paste
- 11. Sublime text text text
- 12. Удалить синтаксис из Sublime Text 3
- 13. Как запустить python из Sublime text 3?
- 14. индексация в Sublime Text 3
- 15. Пользовательские откидные для Sublime Text 3
- 16. Sublime Text 3 - встроенный терминал?
- 17. Sublime Text 3 Java autocomplete
- 18. Sublime Text 3 Code autoformatting
- 19. Sublime text 3 Notepad ++ theme
- 20. Sublime Text 3 - профили плагина
- 21. sublime text 3 emmet customization
- 22. Sublime Text 3 функции helper
- 23. NodeJS EADDRINUSE Sublime Text 3
- 24. Sublime Text 3 Incremental Selection
- 25. Sublime Text 3 JSX пылеобразования
- 26. Toggle menubar Sublime Text 3
- 27. Переменные Sublime Text 3 Отрывки
- 28. Sublime Text 3 Не работает.
- 29. Autoprefixer Sublime text 3 error
- 30. Плагин Sublime Text 3: SublimeLinter
Большое спасибо! Мне даже не приходило в голову, что ST3 не позволит повторять команды, и странно, что он не поставляется с таким способом, но это блестящее решение. Я только что вернулся к этому вопросу в нужное время, потому что с тех пор я нашел еще одну необходимость повторить макрокоманду. Один вопрос - заменит «run_command (« move »)' другой работой команды для повторения других команд или специально разработан для работы с 'move'? – Hashim
То, как оно написано, будет повторять любую команду, которую вы положили в 'run_command', да. Хотя вы можете захотеть также переименовать класс в этом случае, так что имя команды имеет больше смысла. – OdatNurd
Блестящий, именно то, что я хотел услышать. Еще одна вещь - как бы эта функция была, если вы повторили ее для произвольного большого числа, и она подошла к концу документа? В настоящее время я ищу что-то, что перестанет работать, как только дело дойдет до конца документа, чтобы гарантировать, что дальнейшие строки не будут удалены, но не знаю, как это будет вести себя в этом сценарии. – Hashim