Sublime Text: Zeile und Einzug vertauschen

Sublime Text: Zeile und Einzug vertauschen

Ich habe Atom kürzlich ausprobiert. Obwohl es zu langsam war, gefiel mir eines: die Art und Weise, wie die automatische Einrückung praktisch überall funktionierte.

ich fandHierwie man es Paste + Indent the defaultin erhabenem Text macht.

Aber ich hätte auch gerne, dass:

{ "keys": ["ctrl+shift+up"], "command": "swap_line_up" },
{ "keys": ["ctrl+shift+down"], "command": "swap_line_down" },

so werden swap_line_up_and_indent, dass wenn ich:

console.log('hello');
function() {

}

und ich ctrl+shift+downbekomme:

function() {
  console.log('hello'); // indented yai!!
}

Irgendeine Chance?

Antwort1

Der einfachste Weg, dies zu tun (abgesehen vom Schreiben eines ziemlich umfangreichen Plugins), ist alsoMakro. Hier ist swap_line_down_and_indent.sublime-macro:

[
    {
        "command": "swap_line_down"
    },
    {
        "command": "indent"
    }
]

Und swap_line_up_and_indent.sublime-macro:

[
    {
        "command": "swap_line_up"
    },
    {
        "command": "move",
        "args":
        {
            "by": "lines",
            "forward": true
        }
    },
    {
        "command": "indent"
    }
]

Speichern Sie die Dateien dort, Packages/Userwo Packagesder Ordner geöffnet wird, wenn SiePreferences → Browse Packages…. Bearbeiten Sie als Nächstes Ihre benutzerdefinierte Tastenbelegung wie folgt:

{ 
    "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"
    } 
}

und Sie sollten fertig sein. Es gibt jedoch ein paar Einschränkungen. Diese Makros rücken nur eine Ebene ein, daher müssen Sie möglicherweise verwenden, Ctrl]um die Zeile weiter einzurücken. Außerdem wird davon ausgegangen, dass die einzurückende Zeile die untere Zeile ist, nachdem der swap_line_[up|down]Befehl ausgeführt wurde.

Antwort2

Sie können dies auch mit dem Paket „Chain of Command“ tun. Installieren Sie das Paket und fügen Sie der Datei mit den Benutzertastenbelegungen einfach Folgendes hinzu:

{
   "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}]
    ],
  },
}

verwandte Informationen