I hate Java. I hate Java IDEs. They’re slow and bloated. I really want to give JetBrains PhpStorm a chance, but they lost me on the settings screen.
I use Sublime Text 3. It’s fast as hell. And thanks to Package Control you can build your own development environment. Even though it’s just a text editor.
An overview of the packages I use:
- Alignment: A simple key-binding for aligning multi-line and multiple selections.
- ApacheConf: Syntax highlighting for Apache configuration files.
- Autoprefixer: You shouldn’t have to care about vendor prefixes.
- Case Conversion: Convert a word between pascal, camel, snake, dot, dash (hyphen) cases.
- DocBlockr: Makes writing documentation a breeze.
- EditorConfig: Helps to maintain coding styles per project, see EditorConfig.
- Emmet: Ultra-fast coding.
- FileDiffs: Lets you compare two tabs for diffs.
- HTML5: HTML5 snippets.
- jQuery: Syntax highlighting for jQuery, includes also snippets.
- LaTeXTools: Not just development, I write my thesis with Sublime too!
- nginx: Syntax highlighting for Nginx configuration files.
- Sass: Syntax highlighting for Sass files.
- rsub: One of three simple (one-time) steps to get the
subl
command working on your remote server. - SideBarEnhancements: Improves the context menu with entries like new file/folder, rename, move, copy, refresh etc.
- SublimeLinter: The framework for linters.
- SublimeLinter-jshint: Lints your JavaScript files with JSHint.
- SublimeLinter-php: Lints your PHP files with
php -l
. - SublimeLinter-phpcs: Lints your PHP files with Code Sniffer. (Rules for WordPress coding standards)
Sublime supports custom themes too. I’m using the Spacegray theme.
Another feature of Sublime Text are the JSON-based settings files. For example this is my Preferences.sublime-settings
:
{
"auto_find_in_selection": true,
"bold_folder_labels": true,
"close_windows_when_empty": true,
"create_window_at_startup": false,
"draw_white_space": "all",
"enable_telemetry": "disabled",
"ensure_newline_at_eof_on_save": true,
"file_exclude_patterns":
[
"*.min.*",
"*.toc",
"*.lol",
"*.log",
"*.lot",
"*.aux",
"*.lof",
"*.nlo",
"*.out",
"*.pyc",
"*.pyo",
"*.exe",
"*.dll",
"*.obj",
"*.o",
"*.a",
"*.lib",
"*.so",
"*.dylib",
"*.ncb",
"*.sdf",
"*.suo",
"*.pdb",
"*.idb",
".DS_Store",
"*.class",
"*.psd",
"*.db",
"*.sublime-workspace"
],
"theme": "Spacegray.sublime-theme",
"color_scheme": "Packages/User/base16-ocean.dark (SL).tmTheme",
"font_face": "Source Code Pro Medium",
"font_size": 12,
"highlight_line": true,
"highlight_modified_tabs": true,
"open_files_in_new_window": false,
"save_on_focus_lost": true,
"show_encoding": true,
"show_line_endings": true,
"trim_trailing_white_space_on_save": true,
"word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?",
"ignored_packages":
[
"Vintage"
]
}
It’s also possible to use a custom keymap. My map includes shortcuts for the linter, a huge time saver for copy and pasting while maintaining the indentation and a custom shortcut for the go to definition/declaration feature in Sublime. (super
is the Windows key or Command key.)
[
{ "keys": ["ctrl+super+l"], "command": "sublimelinter_lint" },
{ "keys": ["ctrl+super+e"], "command": "sublimelinter_goto_error", "args": {"direction": "next"} },
{ "keys": ["ctrl+super+shift+e"], "command": "sublimelinter_goto_error", "args": {"direction": "previous"} },
{ "keys": ["ctrl+super+b"], "command": "sublimelinter_show_all_errors" },
{ "keys": ["super+ctrl+a"], "command": "alignment" },
{ "keys": ["shift+super+m"], "command": "goto_definition" },
// swap the keybindings for paste and paste_and_indent
{ "keys": ["super+v"], "command": "paste_and_indent" },
{ "keys": ["shift+super+v"], "command": "paste" }
]
Your turn. Do you use Sublime Text? Let me know what your favorite packages are!
If you like help with PhpStorm, ask me or other of the team ;)
Also helpful a set of configurations: https://github.com/inpsyde/Codex/tree/master/ide/phpstorm
I like after a small time for start with the IDE, but it is so much helpful.