/sublimious

Sublime configuration kit inspired by spacemacs and focused around VIM

Primary LanguagePython

Rock your SublimeText with VIM keybindings and Sublimious!

Join the chat at https://gitter.im/dvcrn/sublimious

Sublimious is SublimeText 3 configuration system inspired by spacemacs and based around VIM.

Shortcuts

Install

Install sublimious through package control.

Currently sublimious is using the Hack font face. If you don't have it installed, change font_face inside your .sublimious or download it here - https://github.com/chrissimpkins/Hack/releases. I can highly recommend you to install it though!

Alternatively, clone this repository into your Packages/ directory if you prefer this method (good if you want to contribute :)!)

Be warned! Sublimious is a complete configuration system and will nuke your existing configuration. Make sure to backup your configs before trying sublimious!

Features

  • Preconfigured: sublimious instantly makes sublime text better by shipping with a handful of hand-tested settings
  • VIM everywhere!: All packages included with sublimious have been remapped to fit with vim keybindings
  • Easy to remember mnemonic: Each command is mapped to a category / key combination that fits the action. <spc> w v for example splits the [w]indow [v]ertically.
  • Layer based configuration: Check layers/ for all configuration sets shipping with sublimious. Just add it to your ~/.sublimious config and they will be included upon restart
  • Easy to use with dotfiles: Just take your ~/.sublimious config to your new pc and it will act exactly the same way as it did on your other pc
  • Central configuration: Instead of maintaining 10 files, you only have 1 to put your settings in

Keybindings

git

keybindings

Sublimious comes with a keybinding helper to ease you in with everything. Just hit space and a popup will tell you what you can perform.

In general, sublimious follows the spacemacs mnemonic:

  • <spc> p is for project commands
  • <spc> b is for actions on the current buffer
  • <spc> g is for git (needs git layer)
  • <spc> w for window (splits and co)
  • <spc> s for the current (visual) selection
  • <spc> e for errors (linting)
  • <spc> t is for toggles (sidebar, statusbar)
  • <spc> _ is for meta commands (sublimious reload)

Sublimious tries to add vim-like keybindings for every plugin possible. Sidebar navigation for example has been remapped to j/k.

Tips and Tricks

  • after changing your .sublimious file, hit <spc> _ r to re-feed your .sublimious config into sublimetext. All changes will be reloaded immediately. This includes packages, settings and layers.

To-Dos:

  • get a basic version with space keybindings running
  • implement spacemacs-like shortcut helper
  • add README files for each layer
  • add a simple screenshot to README.md
  • add config for helper timeout to .sublimious
  • find a way to configure layers right out of .sublimious config
  • make f <spc> work
  • make <spc> p f work
  • add easier descriptions for commands
  • submit to package control
  • add install instructions to README
  • add a better default .sublimious
  • find a way to tell Package Control to reload (wbond/package_control#997 (comment)). This is needed to trigger pc after sublimious modified the pc settings file.
  • add option to reload .sublimious (trigger all layer collections, writings, and package control reload)
  • add option to bind custom bindings to sublimious (e.g. user wants to bind action_123 to combination yyy). Should support both, sublimes system and sublimious system
  • add option to execute / register functions from within .sublimious (e.g. user adds def xxx and wants to bind that function to combination yyy)
  • allow multiple commands bound to the same key combination
  • fix initial installation process (currently throwing a ton of errors)
  • adjust the shortcut helper's width automagically
  • add better README files for each layer
  • ship Hack as default font and use it (possible?). If not, find a good preinstalled font and use that as default
  • find a way to bind content specific actions to a keybinding. (e.g. <space> m will always list actions based on the current syntax. In javascript this could list format javascript code and in python autoflake8)