Требование состоит в том, чтобы создать константу и сохранить ее в vscode и назначить ей ярлык, и всякий раз, когда ярлык используется, сохраненный блок кода вставляется автоматически.
Например: приведенный ниже код - это то, что мне нужно добавить в несколько файлов
if __name__ == "__main__":
s = [1,2,3,4,5]
print(fun(s))
Итак, мне нужно сохранить это в одном месте только один раз в vscode и назначить ему горячую клавишу, в следующий раз, используя горячую клавишу, кодовый блок должен быть вставлен как есть. Кроме того, не хотелось бы, чтобы содержимое, которое в настоящее время копируется в буфер обмена, было затронуто.
Есть ли способ сделать это?
просто введите __name__
и VSC предложит строку if
вы можете использовать Шаблоны файлов для создания файла скелета
Вы можете использовать Фрагменты. Создайте любой фрагмент кода, который вам нравится, а затем добавьте к нему сочетание клавиш. Это дает возможность вставлять сниппет не только по ярлыку, но и с префиксом (например, ifmain).
Сначала вы создаете фрагмент кода. Перейдите к Файл > Настройки > Пользовательские фрагменты > python.json (или ctrl+shift+p «настроить пользовательские фрагменты»). Создайте любой фрагмент здесь (в синтаксисе json), затем сохраните файл. Пример фрагмента кода, который вы предоставили:
{
"if name main": {
"prefix": "ifmain",
"body": [
"if __name__ == '__main__':",
" s = [1, 2, 3, 4, 5]",
" print(fun(s))"
],
"description": "my cool snippet"
}
}
Во-вторых, вы добавляете сочетание клавиш в сниппет. Файл > Настройки > Горячие клавиши (ctrl+k ctrl+s). Затем щелкните маленький значок «Открыть сочетания клавиш» в правом верхнем углу, как показано здесь:
Добавьте ярлык к команде вставки фрагмента, затем сохраните файл. Пример:
{
"key": "ctrl+k 1",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"langId": "python",
"name": "if name main"
}
Нажмите ctrl+к 1 > он вставит фрагмент. Начните вводить «ifmain», затем разбейте Вкладка > он вставит фрагмент.
Вам может подойти что-то вроде marketplace.visualstudio.com/…. Я не проверял, не забивает ли он буфер обмена. Это не должно быть необходимо.