ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Type​Short

by jfcherng ST3

Replace placeholders into corresponding replacements in real-time while typing.

Details

  • 2.0.0
    1.5.2
  • github.​com
  • github.​com
  • 2 years ago
  • 36 minutes ago
  • 9 years ago

Installs

  • Total 2K
  • Win 982
  • Mac 303
  • Linux 249
Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5 Apr 4 Apr 3 Apr 2 Apr 1 Mar 31 Mar 30 Mar 29 Mar 28 Mar 27 Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13 Mar 12 Mar 11 Mar 10 Mar 9 Mar 8 Mar 7
Windows 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Linux 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

ST-TypeShort

Required ST Build GitHub Actions Package Control GitHub tag (latest by date) Project license GitHub stars Donate to this project using Paypal

TypeShort is a snippet-like plugin for Sublime Text. It replaces placeholders into corresponding replacements in real-time while typing.

Why This Plugin

Have you ever considered $, ->, * or &, etc to be uncomfortable to type? Typing them usually requires you to move your fingers farther.

screenshot Oh, OOP PHP uses $this-> so often… How long it takes you to type it?

Take the screenshot above as an example, you can set fj█ ( represents space here just for visibility) as a placeholder for $ in PHP. This plugin will automatically replace fj█ with $ in PHP whenever you type it. Although fj█ is 3-char, it can be typed faster than a single $ and you do not have to move any of your finger due to QWERTY keyboard layout.

The ST Built-in Way

You can kind of having the same results with the following keybinding. So actually nowadays you may not need this plugin any more.

[
  // HTML
  {
      "keys": ["c", "m", "t", " "],
      "command": "insert_snippet",
      "args": { "contents": "" },
      "context": [{
          "key": "selector",
          "operand": "text.html.basic - source.php",
      }],
  },
  // PHP
  {
      "keys": ["f", "j", " "],
      "command": "insert",
      "args": { "characters": "$" },
      "context": [{
          "key": "selector",
          "operand": "source.php",
      }],
  },
  {
      "keys": ["d", "k", " "],
      "command": "insert",
      "args": { "characters": "->" },
      "context": [{
          "key": "selector",
          "operand": "source.php",
      }],
  },
]

Installation

This package is available on Package Control by the name of TypeShort. Note that you have to set your own (placeholder, replacement) pairs to make this plugin work properly.

Settings

This plugin does not have any default binding since obviously they are very personal. To add a binding, edit settings from the menu Preferences » Package Settings » TypeShort » Settings.

Example Settings

{
    // This file is an example settings.
    // You should write your own settings in "Preferences » Package Settings » TypeShort » Settings"

    // the symbol used to represent the new cursor position after a replacement
    "cursor_placeholder": "{|}",

    // You can alternatively use either syntax file name, syntax name or scopes in the "syntax_list".
    // But scopes are recommended and the use of syntax (file) name may be removed in the future.
    //
    // - syntax file name: The syntax file name without extension.
    // - syntax name: It's package-dependent and as shown on the bottom-right corner of your ST windows.
    // - scope: ctrl+alt+shift+p shows it which usually starts with "source.xxx" or "text.xxx".
    //          You can use any ST selectors here. See https://www.sublimetext.com/docs/3/selectors.html
    "bindings": [
        {
            // only works in HTML
            "syntax_list": ["text.html.basic"],
            // convert 'cmt ' into '' and place the cursor at its mid
            "keymaps": {
                "cmt ": "",
            },
        },
        {
            // only works in PHP
            "syntax_list": ["source.php"],
            // convert 'fj ' into '$'
            // convert 'dk ' into '->'
            "keymaps": {
                "fj ": "$",
                "dk ": "->",
            },
        },
        {
            // only works in C/C++
            "syntax_list": [
                "source.c", "source.c++",
                "source.objc", "source.objc++",
                "source.c++11", // C++11 package
            ],
            // convert 'fj ' into '*'
            // convert 'dk ' into '->',
            "keymaps": {
                "fj ": "*",
                "dk ": "->",
            },
        },
    ],
}