Skip to content

Instantly share code, notes, and snippets.

Steven Lu unphased

View GitHub Profile
unphased /
Created May 19, 2017
A command line (shell) tool for grokking git merge conflicts
# set -x
# PS4='{$LINENO}+'
if [ -t 1 ]; then
# echo "in terminal"
View objectMap.js
function mapObj(obj, cb) {
var mappedObject = null;
var mappedArray = Object.keys(obj).map(function(e, i, a) {
var mapped = cb(e, obj[e], i);
if (mappedObject !== false && Array.isArray(mapped) && mapped.length === 2) {
if (!mappedObject) {
mappedObject = { };
mappedObject[mapped[0]] = mapped[1];
// always do the work of normal array mapping, I guess
View autohotkey.ahk
; This script has a special filename and path because it is automatically
; launched when you run the program directly. Also, any text file whose
; name ends in .ahk is associated with the program, which means that it
; can be launched simply by double-clicking it. You can have as many .ahk
; files as you want, located in any folder. You can also run more than
; one ahk file simultaneously and each will get its own tray icon.
Menu, MyMenu, Add, 4K @30, MenuHandler4K30
Menu, MyMenu, Add, 4K @60, MenuHandler4K
Menu, MyMenu, Add

I use tmux splits (panes). Inside one of these panes there's a Vim process, and it has its own splits (windows).

In Vim I have key bindings C-h/j/k/l set to switch windows in the given direction. (Vim default mappings for windows switching are the same, but prefixed with C-W.) I'd like to use the same keystrokes for switching tmux panes.

An extra goal that I've solved with a dirty hack is to toggle between last active panes with C-\.

Here's how it should work:

unphased / .gitconfig
Last active Dec 15, 2015
This is a good place to start when setting up git
View .gitconfig
name = Steven Lu
email =
editor = vim
whitespace = cr-at-eol
excludesfile = /Users/lust/.gitignore
ui = true
View Preferences.sublime-settings
"color_scheme": "Packages/Color Scheme - Default/Tomorrow Night Eighties.tmTheme",
"highlight_line": true,
"overlay_scroll_bars": "enabled",
"show_tab_close_buttons": false,
"theme": "Soda Dark.sublime-theme",
"default_line_ending": "unix",
"word_wrap": true,
"trim_trailing_white_space_on_save": true,
"scroll_past_end": true
unphased / Default (Windows).sublime-keymap
Last active Dec 15, 2015
My Windows ST2 User keymap
View Default (Windows).sublime-keymap
// map ctrl+l to go to line
{ "keys": ["ctrl+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
// and ctrl+g does what F3 does
{ "keys": ["ctrl+g"], "command": "find_next" },
{ "keys": ["ctrl+shift+g"], "command": "find_prev" },
// overrides F-key functionality (only really used on Windows as OSX overloads f-keys with useful functionality)
{ "keys": ["f1"], "command": "new_file"},
{ "keys": ["f2"], "command": "next_view_in_stack"},
unphased / .tmux.conf
Last active Dec 14, 2015
This started out as a config that was mostly pulled from one of the first Google results for fmux.conf, and one of the first results for tmux. But now weighing in at 150 lines it is a force to be reckoned with.
View .tmux.conf
# Report that we can handle 256 colors
# set -g default-terminal "xterm-256color"
# Rebind prefix to avoid conflicts
unbind C-b
set -g prefix C-a
# this is for convenience
bind C-d detach-client
View lust.zsh-theme.zsh.markdown

GO HERE for theme file

Independent tweaks for zsh (put in .zshrc) follow:

# for oh my zsh plugins that are nice
plugins=(git cp osx zsh-syntax-highlighting) 

# no idea why oh my zsh does not take the existing path. hardcoding this is *bad*
export PATH=~/bin:~/util:$PATH:/usr/local/share/npm/bin
export PAGER=vimpager
You can’t perform that action at this time.