我最近尝试了一下 atom。尽管速度太慢,但有一点我很喜欢:自动缩进的方式,基本上在任何地方都有效。
我发现这里如何Paste + Indent the default
在 Sublime Text 中制作。
但我还希望:
{ "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}]
],
},
}