2017-02-12 5 views
2

Я пишу некоторый питон, и я хотел бы вставить пустую строку без какого-либо отступа, например. Нажатие Enter или Enter + CMDВставить пустую строку без отступа

if foo == "foo": 
    foo.bar() 
    foo.bar() 
    foo.bar() 
    # cursor is here 
    foo.baz() 
    foo.baz() 
    foo.baz() 
    foo.baz() 

Я хотел бы, чтобы это было

if foo == "foo": 
    foo.bar() 
    foo.bar() 
    foo.bar() 
# cursor is here 
    foo.baz() 
    foo.baz() 
    foo.baz() 
    foo.baz() 

Я считаю, что это похоже на Visual Studio CTRL + Enter

В возвышенном я создал команду

[ 
    { 
     "args": 
     { 
      "characters": "\n" 
     }, 
     "command": "insert" 
    }, 
    { 
     "args": 
     { 
      "to": "hardbol" 
     }, 
     "command": "move_to" 
    }, 
    { 
     "args": 
     { 
      "file": "res://Packages/Default/Delete to Hard EOL.sublime-macro" 
     }, 
     "command": "run_macro_file" 
    } 
] 

ответ

-1

Чего вы пытаетесь достичь?

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

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

if foo == 'foo': 
    pass 

Pass говорит системе явно продолжить, не делая ничего.

Если вы хотите сделать это по стилистическим соображениям, тогда вы лаете неправильное дерево. Для работы Python ДОЛЖЕН иметь следующую строку после того, как оператор if будет отступом. Когда отступы уходят, это говорит python, что это делается с этим блоком и оставляет оператор if.

+0

Существует несколько причин использовать это, например, У меня встроенный html внутри python, или я хотел бы добавить несколько пустых строк для чтения. –

+0

Если это так, по-прежнему выходите в обычное место, но после него не помещайте текст. Таким образом, у вас есть то, что похоже на пустую строку, но Python все еще имеет этот отступ, чтобы распознать, что он все еще является частью блока. –

+0

Какой редактор вы используете? Возможно, это то, что я недопонимаю. Это может быть специальный редактор. –

1

Что вы ищете является комбинацией из двух команд:

  • Ctrl +введитеeditor.action.insertLineAfter
  • Ctrl + кCtrl + хeditor.action.trimTrailingWhitespace

Существует feature request for macro like keybindings. В то же время вы можете попробовать the macros extension, используйте ярлыки один за другим, или ...

Добавьте следующие строки в файл keybindings.json, который по существу представляет собой Ctrl +введитеCtrl + м ярлык, который делает именно то, что вам нужно.

[ 
    { 
     "key": "ctrl+m", 
     "command": "editor.action.trimTrailingWhitespace", 
     "when": "editorTextFocus && !editorReadonly" 
    } 
]