Texto sublime: intercambiar línea y sangría

Texto sublime: intercambiar línea y sangría

Recientemente probé Atom. A pesar de ser demasiado lento, hubo una cosa que me gustó: la forma en que funcionaba la sangría automática, básicamente en todas partes.

encontréaquícómo hacer Paste + Indent the defaulten texto sublime.

Pero también me gustaría que:

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

llegar a ser swap_line_up_and_indentde modo que si tengo:

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

}

y yo ctrl+shift+down, obtengo:

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

¿Cualquier oportunidad?

Respuesta1

Entonces, la forma más fácil de hacer esto (aparte de escribir un complemento bastante extenso) es mediantemacro. Aquí está swap_line_down_and_indent.sublime-macro:

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

y swap_line_up_and_indent.sublime-macro:

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

Guarde los archivos en Packages/Userdonde Packagesse abre la carpeta al seleccionarPreferences → Browse Packages…. A continuación, edite su mapa de teclas personalizado con lo siguiente:

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

y deberías estar todo listo. Sin embargo, hay un par de advertencias. Estas macros solo aplicarán sangría a un nivel, por lo que es posible que tengas que utilizarlas Ctrl]para sangrar más la línea. Además, se supone que la línea a sangrar es la línea inferior después de swap_line_[up|down]ejecutar el comando.

Respuesta2

También puedes hacer esto utilizando el paquete 'Cadena de mando'. Instale el paquete y simplemente agregue lo siguiente al archivo de combinaciones de teclas del usuario:

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

información relacionada