
Недавно я попробовал Atom. Несмотря на то, что он слишком медленный, мне понравилось одно: как работает автоотступ, в общем-то, везде.
я нашелздеськак сделать Paste + Indent the default
возвышенный текст.
Но мне бы также хотелось, чтобы:
{ "keys": ["ctrl+shift+up"], "command": "swap_line_up" },
{ "keys": ["ctrl+shift+down"], "command": "swap_line_down" },
стать swap_line_up_and_indent
таким, что если у меня есть:
console.log('hello');
function() {
}
и я ctrl+shift+down
, я получаю:
function() {
console.log('hello'); // indented yai!!
}
Любой шанс?
решение1
Итак, самый простой способ сделать это (помимо написания довольно объемного плагина) — этомакрос. Вот swap_line_down_and_indent.sublime-macro
:
[
{
"command": "swap_line_down"
},
{
"command": "indent"
}
]
и swap_line_up_and_indent.sublime-macro
:
[
{
"command": "swap_line_up"
},
{
"command": "move",
"args":
{
"by": "lines",
"forward": true
}
},
{
"command": "indent"
}
]
Сохраните файлы в папке, Packages/User
которая открывается при выбореPackages
Preferences → Browse Packages…
. Затем отредактируйте свою пользовательскую раскладку следующим образом:
{
"keys": ["ctrl+shift+up"],
"command": "run_macro_file",
"args":
{
"file": "res://Packages/User/swap_line_up_and_indent.sublime-macro"
}
},
{
"keys": ["ctrl+shift+down"],
"command": "run_macro_file",
"args":
{
"file": "res://Packages/User/swap_line_down_and_indent.sublime-macro"
}
}
и все должно быть готово. Однако есть пара оговорок. Эти макросы сделают отступ только на один уровень, поэтому вам может понадобиться использовать Ctrl]для дальнейшего отступа строки. Кроме того, предполагается, что строка, для которой будет сделан отступ, является нижней строкой после swap_line_[up|down]
выполнения команды.
решение2
Вы также можете сделать это с помощью пакета «Chain of Command». Установите пакет и просто добавьте следующее в файл привязок клавиш пользователя:
{
"keys": ["ctrl+super+up"],
"command": "chain",
"args": {
"commands": [
["swap_line_up"],
["reindent", {"single_line": false}]
],
},
},
{
"keys": ["ctrl+super+down"],
"command": "chain",
"args": {
"commands": [
["swap_line_down"],
["reindent", {"single_line": false}]
],
},
}