Image

Personalizaciones de Sublime Text - Configuración y Key Bindings

Desarrollo

Este blog es la continuación y tercera parte de la serie acerca de desarrollo, hoy hablaré de la personalización del, para mí, mejor Editor de Texto. Existen varias formas de personalizar este genial editor para adecuarse al uso que le vamos a dar, hoy hablaremos de 2 de estas formas: configuraciones (Settings) y los atajos de teclado (Key Bindings).

CONFIGURACIONES:

"Para investigar la verdad es preciso dudar, en cuanto sea posible, de todas las cosas." René Descartes.

Sublime Text tiene muchas configuraciones diferentes para personalizar su comportamiento. La configuración se cambia editando archivos de texto de tipo JSON con extensión .sublime-settings , si bien esto es un poco más complicado que usar una GUI, Sublime nos recompensa con mucha flexibilidad, así que duden y prueben todo lo que vean en estos archivos.

Se accede a la configuración a través del elemento de menú Preferences. En la pantalla dividida, el panel de la izquierda contiene todas las configuraciones predeterminadas, junto con una descripción de cada una. El panel de la derecha es donde se puede guardar la personalización. Los ajustes de Sublime Text están organizados en tres categorías. El archivo de configuración predeterminada organiza la configuración en secciones para facilitar la distinción:

  • Configuración del editor: esta configuración afecta el comportamiento y la funcionalidad que se presentan al editar texto en un archivo. Los ejemplos incluyen font_face, tab_size y spell_check. Esta configuración se presenta en la primera sección del archivo de configuración predeterminada.
  • Configuración de la interfaz de usuario: esta configuración afecta la interfaz de usuario general, en todas las ventanas abiertas. Los ejemplos incluyen el tema, animation_enabled y overlay_scroll_bars. Esta configuración se presenta en la segunda sección del archivo de configuración predeterminada.
  • Configuración de comportamiento de la aplicación: esta configuración afecta el comportamiento de la aplicación en todas las ventanas abiertas. Los ejemplos incluyen hot_exit, index_files y ignored_packages. Esta configuración se presenta en la tercera sección del archivo de configuración predeterminada.

Las configuraciones que yo uso son a nivel Configuración del editor, y son las siguientes:

{
  "color_scheme": "Packages/Color Scheme - Default/Monokai.sublime-color-scheme",
  "fade_fold_buttons": false,
  "font_size": 11,
  "ignored_packages":
  [
    "Vintage"
  ],
  "tab_size": 2,
  "theme": "Adaptive.sublime-theme",
  "word_wrap": true
}

Con esta configuración, tengo todo lo necesario para programar de forma cómoda y sin cansancio en una pantalla Full HD, en una pantalla diferente, se debe modificar "font_size" hasta que se pueda tener un equilibrio entre ver la mayor cantidad de código y poder leer lo que dice.

ATAJOS DE TECLADO (KEY BINDINGS):

Los Key Bindings de Sublime Text se manejan a partir de archivos con extensión .sublime-keymap . Su función es que a través de combinaciones de teclas de comando como "CTRL, SHIFT, ALT" y las demás teclas, se puedan realizar diferentes acciones variadas de forma rápida y sin la necesidad de muchas acciones.

Se accede a los Key Bindings a través del elemento de menú Preferences. En la pantalla dividida, el panel de la izquierda contiene todos los Key Bindings predeterminados. El panel de la derecha es donde se puede agregar los Key Bindings personalizados, minimizando las acciones más comunes que podemos realizar como desarrolladores. Cada Key Binding requiere dos atributos, "keys" y "command". Para pasar argumentos a un comando, se debe especificar el atributo "args". Para restringir un Key Binding a una situación específica, se debe incluir el atributo "context".

Aquí les dejo un video de nuestro canal de YouTube en el que se detalla el uso de los Key Binding compartidos más abajo.


Las Key Bindings que yo uso son las siguientes:

[
  // -- General --
    // Guarda todos archivos abiertos con modificaciones
    { "keys": ["ctrl+alt+s"], "command": "save_all" },
    // Minimiza todas las secciones seleccionadas
    { "keys": ["ctrl+shift+q"], "command": "fold" },
    // Minimiza todo
    { "keys": ["ctrl+shift+x"], "command": "fold_all" },
    // Maximiza todo
    { "keys": ["ctrl+shift+w"], "command": "unfold_all" },
  // -- -- --

  // -- PHP --
    // Impresión de arrays
    { 
      "keys": ["ctrl+alt+b"], "command": "insert_snippet",
      "args": {
        "contents": "print(\"<pre>\".print_r(${0:$SELECTION},true).\"</pre>\");"
      }, 
      "context": [
        { 
          "key": "setting.auto_match_enabled", 
          "operator": "equal", "operand": true
        },
        { 
          "key": "selection_empty", 
          "operator": "equal", "operand": false, "match_all": true
        }
      ]
    },
    // Laravel - Input Declaration
    { 
      "keys": ["ctrl+alt+i"], "command": "insert_snippet",
      "args": {
        "contents": "request->input(\"${0:$SELECTION}\");"
      }, 
      "context":[
        { 
          "key": "setting.auto_match_enabled",
          "operator": "equal", "operand": true
        },
        { 
          "key": "selection_empty", 
          "operator": "equal", "operand": false, "match_all": true
        }
      ]
    },
    // Laravel - Añadir grupos controller
    { "keys": ["ctrl+alt+g"], "command": "insert_snippet",
      "args": {
        "contents": "#group: ${0:$SELECTION}\n#endgroup"
      },
      "context": [
        { 
          "key": "setting.auto_match_enabled",
          "operator": "equal", "operand": true
        },
        { 
          "key": "selection_empty",
          "operator": "equal", "operand": false, "match_all": true
        }
      ]
    },
  // -- -- --

  // -- JS --
    // Impresión de variable js
    { "keys": ["ctrl+alt+r"], "command": "insert_snippet",
      "args": {
        "contents": "console.log(${0:$SELECTION});\nreturn false;"
      },
      "context": [
        { 
          "key": "setting.auto_match_enabled",
          "operator": "equal", "operand": true
        },
        { 
          "key": "selection_empty",
          "operator": "equal", "operand": false, "match_all": true
        }
      ]
    },
    // Añadir grupos js
    { "keys": ["ctrl+alt+t"], "command": "insert_snippet",
      "args": {
        "contents": "// ${0:$SELECTION}\n// *** ${0:$SELECTION}"
      },
      "context": [
        { 
          "key": "setting.auto_match_enabled",
          "operator": "equal", "operand": true
        },
        { 
          "key": "selection_empty",
          "operator": "equal", "operand": false, "match_all": true
        }
      ]
    }
  // -- -- --
]

Segunda parte de esta serie de Blogs.

Cuarta parte de esta serie de Blogs.

0 Commentario(s)

Deja un comentario