Fix issue with folders

This commit is contained in:
Julien Le Coupanec
2018-02-06 02:10:51 +00:00
parent 34124c1731
commit 22613b2185
11 changed files with 0 additions and 0 deletions

66
tools/docker.sh Normal file
View File

@@ -0,0 +1,66 @@
##############################################################################
# DOCKER
##############################################################################
docker build -t friendlyname . # Create image using this directory's Dockerfile
docker run -p 4000:80 friendlyname # Run "friendlyname" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyname # Same thing, but in detached mode
docker exec -it [container-id] bash # Enter a running container
docker ps # See a list of all running containers
docker stop <hash> # Gracefully stop the specified container
docker ps -a # See a list of all containers, even the ones not running
docker kill <hash> # Force shutdown of the specified container
docker rm <hash> # Remove the specified container from this machine
docker rm $(docker ps -a -q) # Remove all containers from this machine
docker images -a # Show all images on this machine
docker rmi <imagename> # Remove the specified image from this machine
docker rmi $(docker images -q) # Remove all images from this machine
docker login # Log in this CLI session using your Docker credentials
docker tag <image> username/repository:tag # Tag <image> for upload to registry
docker push username/repository:tag # Upload tagged image to registry
docker run username/repository:tag # Run image from a registry
##############################################################################
# DOCKER COMPOSE
##############################################################################
docker-compose up
docker-compose up -d
docker-compose down
docker-compose logs
##############################################################################
# DOCKER STACK
##############################################################################
docker stack ls # List all running applications on this Docker host
docker stack deploy -c <composefile> <appname> # Run the specified Compose file
docker stack services <appname> # List the services associated with an app
docker stack ps <appname> # List the running containers associated with an app
docker stack rm <appname> # Tear down an application
##############################################################################
# DOCKER MACHINE
##############################################################################
docker-machine create --driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux)
docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10
docker-machine env myvm1 # View basic information about your node
docker-machine ssh myvm1 "docker node ls" # List the nodes in your swarm
docker-machine ssh myvm1 "docker node inspect <node ID>" # Inspect a node
docker-machine ssh myvm1 "docker swarm join-token -q worker" # View join token
docker-machine ssh myvm1 # Open an SSH session with the VM; type "exit" to end
docker-machine ssh myvm2 "docker swarm leave" # Make the worker leave the swarm
docker-machine ssh myvm1 "docker swarm leave -f" # Make master leave, kill swarm
docker-machine start myvm1 # Start a VM that is currently not running
docker-machine stop $(docker-machine ls -q) # Stop all running VMs
docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images
docker-machine scp docker-compose.yml myvm1:~ # Copy file to node's home dir
docker-machine ssh myvm1 "docker stack deploy -c <file> <app>" # Deploy an app

250
tools/nanobox_boxfile.yml Normal file
View File

@@ -0,0 +1,250 @@
# *****************************************************************************
# SECTIONS OF THE BOXFILE
# *****************************************************************************
# Boxfiles consist of a handful of sections or "nodes": run.config, deploy.config, web, worker, data.
# These are covered in detail in the next few docs, but here are some quick descriptions:
# run.config - Defines the build, environment, and configuration for web and worker components.
# deploy.config - Defines deploy hooks and possible code transformations.
# web - Defines settings unique to each web component.
# worker - Defines settings unique to each worker component.
# data - Defines settings unique to a specific data component.
# *****************************************************************************
# RUN.CONFIG
# https://docs.nanobox.io/boxfile/run-config/
# *****************************************************************************
run.config:
# Engine
engine: engine-name
# Configuration used by the engine
engine.config:
runtime: ruby-2.3
# Contents of these dirs to be cached inside of Nanobox
cache_dirs:
- vendor
- packages
# Extra Packages (in addition to what the engine installs)
extra_packages:
- nodejs
- newrelic
# Dev Packages
dev_packages:
- psutils
# Build Triggers - Changes to these files automatically
# trigger a new build the next time a build is required.
build_triggers:
- Gemfile
- Gemfile.lock
- package.json
# Additions to $PATH
extra_path_dirs:
- vendor/bin
# Custom commands to prepare the environment
extra_steps:
- npm install
# Enable filesystem watcher
fs_watch: true
# *****************************************************************************
# DEPLOY.CONFIG
# https://docs.nanobox.io/boxfile/deploy-config/
# *****************************************************************************
deploy.config:
# Custom commands to prepare the production environment
extra_steps:
- mv config-prod.yml config.yml
# Run after your code has been deployed to your live app,
# but before everything is locked down with read-only permissions and distributed into new containers/servers.
transform:
- 'sed -i /HOST/$DATA_DB_HOST/g config/database.xml'
- 'if [ "$ENV" = "prod" ]; then mv config-prod.yml config.yml; fi'
# Run command on any one instance of web.main component before activation
before_live:
web.main:
- 'bundle exec rake clear-cache'
# Run command on all instances of web.main component before activation
before_live_all:
web.main:
- 'bundle exec rake register-nodes'
# Run command on any one instance of web.main component after activation
after_live:
worker.mail:
- 'bundle exec rake prime-cache'
# Run command on all instances of web.main component after activation
after_live_all:
worker.mail:
- 'bundle exec rake prime-local-cache'
# Set a timeout for your deploy hooks
hook_timeout: 300
# *****************************************************************************
# WEB
# https://docs.nanobox.io/boxfile/web/
# *****************************************************************************
web.site:
# Start Command
start: start-command
# Stop Config
stop: stop-command
stop_force: false
stop_timeout: 60
# Current Working Directory
cwd: directory
# Routing
routes:
- 'sub:/path/'
- '/admin/'
# Port Mapping
ports:
- tcp:21:3420
- udp:53:3000
# Network Storage
network_dirs:
data.files:
- path/to/directoryA
- path/to/directoryB
data.unfs:
- path/to/directoryC
# Writable Dirs
writable_dirs:
- path/to/dirA
- path/to/dirB
# Custom Logs
log_watch:
app[error]: /app/path/to/error.log
# Cron
cron:
- id: flush_cache
schedule: '0 0 * * *'
command: rm -rf app/cache/*
- id: echo_msg
schedule: '*/3 */2 1-3 2,6,7 2'
command: echo i\'m a little teapot
# Only provision component locally
local_only: true
# *****************************************************************************
# WORKER
# https://docs.nanobox.io/boxfile/worker/
# *****************************************************************************
worker.jobs:
# Start Command
start: ruby worker.rb
# Stop Config
stop: stop-command
stop_force: false
stop_timeout: 30
# Current Working Directory
cwd: directory
# Network Storage
network_dirs:
data.storage1:
- path/to/directoryA
- path/to/directoryB
data.storage2:
- path/to/directoryC
# Writable Dirs
writable_dirs:
- path/to/dirA
- path/to/dirB
# Custom Logs
log_watch:
job[error]: /app/path/to/error.log
# Cron
cron:
- id: flush_cache
schedule: '0 0 * * *'
command: rm -rf app/cache/*
- id: echo_msg
schedule: '*/3 */2 1-3 2,6,7 2'
command: echo i\'m a little teapot
# Only provision component locally
local_only: true
# *****************************************************************************
# DATA
# https://docs.nanobox.io/boxfile/data/
# *****************************************************************************
data.db:
# Image
image: nanobox/mysql:5.6
# Config Options Exposed by the Image
config:
plugins:
- federated
- audit_log
event_scheduler: 'Off'
# Cron
cron:
- id: backup
schedule: '0 0 * * *'
command: 'bash /path/to/scripts/backup.sh'
- id: echo_msg
schedule: '*/3 */2 1-3 2,6,7 2'
command: 'echo i\'m a little teapot'
# Extra Packages (in addition to what the image installs)
extra_packages:
- perl
- curl
# Additions to $PATH
extra_path_dirs:
- /custom/bin
# Custom commands to prepare the environment
extra_steps:
- wget -o /path/to/scripts/cron.sh http://example.com/cron.sh
# Only provision component locally
local_only: true

174
tools/nanobox_cli.sh Normal file
View File

@@ -0,0 +1,174 @@
# *****************************************************************************
# CLI COMMANDS SUMMARY
# https://docs.nanobox.io/cli/
# *****************************************************************************
# Update your Nanobox CLI to the most recent version
nanobox-update
# Starts your local environment, allowing you to run your app
nanobox run [<command>]
# Builds your app's runtime
nanobox build
# Compiles your app's code into a deployable package
nanobox compile
# Manages connections to remote applications
nanobox remote add <app-name> [<remote-alias>]
nanobox remote rm <remote-alias>
nanobox remote ls
# Deploys your app to a live app
nanobox deploy [<dry-run | {remote-alias}>] [-m <message>]
# Opens an interactive terminal from inside a component in your live app
nanobox console [<local | dry-run | {remote-alias}>] <component.id>
# Displays information about the app and its components
nanobox info [<local | dry-run | {remote-alias}>]
# Establishes a secure tunnel from your local machine to a running service
nanobox tunnel [<remote-alias>] <component.id> [-p <local-port>[:[<remote-port>]]]
# Manages environment variables on your production environment
nanobox evar add [<local | dry-run | {remote-alias}>] <key1>=<value1> <key2>=<value2>
nanobox evar load [<local | dry-run | {remote-alias}>] path/to/file
nanobox evar rm [<local | dry-run | {remote-alias}>] <key1> <key2>
nanobox evar ls [<local | dry-run | {remote-alias}>]
# Manage DNS aliases for local applications
nanobox dns add <local | dry-run> <hostname>
nanobox dns rm <local | dry-run> <hostname>
nanobox dns ls <local | dry-run>
# View and streams application logs
nanobox log [<dry-run | {remote-alias}>]
nanobox log [<dry-run | {remote-alias}>] -f
nanobox log [<dry-run | {remote-alias}>] -n <number>
# Walks through prompts to configure Nanobox
nanobox config set <config-key> <config-value>
nanobox config get <config-key>
nanobox config ls
# Downloads the most recent versions of Nanobox docker images
nanobox update-images
# Authenticates your Nanobox client with your nanobox.io account
nanobox login
# Removes your nanobox.io api token from your local nanobox client
nanobox logout
# Starts the Nanobox container
nanobox start
# Stops the Nanobox container
nanobox stop
# Display the status of Nanobox & apps
nanobox status
# Destroys the current project and removes it from Nanobox
nanobox destroy [<local | dry-run>]
# Clean out any environments that no longer exist
nanobox clean
# Removes all Nanobox-created containers, files, & data
nanobox implode
# Show the current Nanobox version
nanobox version
--help # Displays help information about the CLI and specific commands
--debug # In the event of a failure, drop into a debug context
-t, --trace # Increases display output and sets level to 'trace'
-v, --verbose # Increases display output and sets level to 'debug'
-f, --force # Forces the command to run without any confirmation. Use responsibly!
# *****************************************************************************
# LOCAL ENVIRONMENT
# https://docs.nanobox.io/workflow/modifying-your-app/
# *****************************************************************************
# Add a convenient way to access your app from the browser
nanobox dns add local vue.dev
nanobox dns add local django.dev
# Run your app as you would normally, with Nanobox
nanobox run npm run dev --host 0.0.0.0
nanobox run python manage.py runserver 0.0.0.0:8000
# View info about the app and its components for a given environment
nanobox info local
# *****************************************************************************
# DRY RUN ENVIRONMENT
# https://docs.nanobox.io/workflow/dry-run/
# *****************************************************************************
# Add a DNS Alias to a dry-run app
nanobox dns add dry-run django.preview
# Preview your app locally
nanobox deploy dry-run
# Add environment variables to dry-run
nanobox evar add dry-run ENV=staging PROCESS_JOBS=true
# Console into web.site in a dry-run app
nanobox console dry-run web.site
# Output the connection credentials for your dry-run components
nanobox info dry-run
# *****************************************************************************
# PRODUCTION ENVIRONMENT
# https://docs.nanobox.io/workflow/deploy-code/
# *****************************************************************************
# Add your live app as a remote
nanobox remote add app-name
# Deploy to your remote server(s)
nanobox deploy
# Drop you into an interactive console inside a component running on production
nanobox console <component.id>
# View logs from your app
nanobox log [<dry-run | {remote-alias}>]
nanobox log [<dry-run | {remote-alias}>] -n 100
# Creates a secure tunnel from your local machine to a production data component
# Local port can be omitted
nanobox tunnel <component.id> -p <local_port>
# *****************************************************************************
# ENVIRONMENT VARIABLES
# https://docs.nanobox.io/cli/evar/
# *****************************************************************************
# Add an environment variable
nanobox evar add local KEY1=VALUE1 KEY2=VALUE2
# Add environment variables from a file
nanobox evar load local path/to/evar-file
# Remove an environment variable
nanobox evar rm local KEY1
# List all variables for a given environment
nanobox evar ls local

647
tools/vim.txt Normal file
View File

@@ -0,0 +1,647 @@
##############################################################################
# VIM CHEATSHEET
# http://www.vim.org/
# https://vim.sourceforge.io/docs.php
##############################################################################
##############################################################################
# CURSOR MOVEMENTS
##############################################################################
h move left
j move down
k move up
l move right
w jump by start of words (punctuation considered words)
W jump by words (spaces separate words)
e jump to end of words (punctuation considered words)
E jump to end of words (no punctuation)
b jump backward by words (punctuation considered words)
B jump backward by words (no punctuation)
ge jump backward to end of words
0 (zero) start of line
^ first non-blank character of line
$ end of line
- move line upwards, on the first non blank character
+ move line downwards, on the first non blank character
<enter> move line downwards, on the first non blank character
gg go to first line
G go to last line
nG go To line n
:n go To line n
) move the cursor forward to the next sentence.
( move the cursor backward by a sentence.
{ move the cursor a paragraph backwards
} move the cursor a paragraph forwards
]] move the cursor a section forwards or to the next {
[[ move the cursor a section backwards or the previous {
CTRL-f move the cursor forward by a screen of text
CTRL-b move the cursor backward by a screen of text
CTRL-u move the cursor up by half a screen
CTRL-d move the cursor down by half a screen
H move the cursor to the top of the screen.
M move the cursor to the middle of the screen.
L move the cursor to the bottom of the screen.
fx search line forward for 'x'
Fx search line backward for 'x'
tx search line forward before 'x'
Tx search line backward before 'x'
##############################################################################
# BOOKMARKS
##############################################################################
:marks list all the current marks
ma make a bookmark named a at the current cursor position
`a go to position of bookmark a
'a go to the line with bookmark a
`. go to the line that you last edited
##############################################################################
# INSERT MODE
##############################################################################
i start insert mode at cursor
I insert at the beginning of the line
a append after the cursor
A append at the end of the line
o open (append) blank line below current line
O open blank line above current line
Esc exit insert mode
##############################################################################
# EDITING
##############################################################################
r replace a single character (does not use insert mode)
R enter Insert mode, replacing characters rather than inserting
J join line below to the current one
cc change (replace) an entire line
cw change (replace) to the end of word
c$ change (replace) to the end of line
s delete character at cursor and substitute text
S delete line at cursor and substitute text (same as cc)
xp transpose two letters (delete and paste, technically)
u undo
CTRL-r redo
. repeat last command
~ switch case
g~iw switch case of current word
gUiw make current word uppercase
guiw make current word lowercase
gU$ make uppercase until end of line
gu$ make lowercase until end of line
>> indent line one column to right
<< indent line one column to left
== auto-indent current line
ddp swap current line with next
ddkp swap current line with previous
:%retab fix spaces / tabs issues in whole file
:r [name] insert the file [name] below the cursor.
:r !{cmd} execute {cmd} and insert its standard output below the cursor.
##############################################################################
# DELETING TEXT
##############################################################################
x delete current character
X delete previous character
dw delete the current word
dd delete (cut) a line
D delete from cursor to end of line
:[range]d delete [range] lines
##############################################################################
# COPYING AND MOVING TEXT
##############################################################################
yw yank word
yy yank (copy) a line
2yy yank 2 lines
y$ yank to end of line
p put (paste) the clipboard after cursor/current line
P put (paste) before cursor/current line
:set paste avoid unexpected effects in pasting
:registers display the contents of all registers
"xyw yank word into register x
"xyy yank line into register x
:[range]y x yank [range] lines into register x
"xp put the text from register x after the cursor
"xP put the text from register x before the cursor
"xgp just like "p", but leave the cursor just after the new text
"xgP just like "P", but leave the cursor just after the new text
:[line]put x put the text from register x after [line]
##############################################################################
# MACROS
##############################################################################
qa start recording macro 'a'
q end recording macro
@a replay macro 'a'
@: replay last command
##############################################################################
# VISUAL MODE
##############################################################################
v start visual mode, mark lines, then do command (such as y-yank)
V start linewise visual mode
o move to other end of marked area
U upper case of marked area
CTRL-v start visual block mode
O move to other corner of block
aw mark a word
ab a () block (with braces)
ab a {} block (with brackets)
ib inner () block
ib inner {} block
Esc exit visual mode
VISUAL MODE COMMANDS
--------------------
> shift right
< shift left
c change (replace) marked text
y yank (copy) marked text
d delete marked text
~ switch case
##############################################################################
# SPELLING
##############################################################################
]s next misspelled word
[s previous misspelled word
zg add word to wordlist
zug undo last add word
z= suggest word
##############################################################################
# EXITING
##############################################################################
:q quit Vim. This fails when changes have been made.
:q! quit without writing.
:cq quit always, without writing.
:wq write the current file and exit.
:wq! write the current file and exit always.
:wq {file} write to {file}. Exit if not editing the last
:wq! {file} write to {file} and exit always.
:[range]wq[!] same as above, but only write the lines in [range].
ZZ write current file, if modified, and exit.
ZQ quit current file and exit (same as ":q!").
##############################################################################
# SEARCH/REPLACE
##############################################################################
/pattern search for pattern
?pattern search backward for pattern
n repeat search in same direction
N repeat search in opposite direction
* search forward, word under cursor
# search backward, word under cursor
:%s/old/new/g replace all old with new throughout file
:%s/old/new/gc replace all old with new throughout file with confirmation
:argdo %s/old/new/gc | wq open multiple files and run this command to replace old
with new in every file with confirmation, save and quit
##############################################################################
# MULTIPLE FILES
##############################################################################
:e filename edit a file in a new buffer
:tabe filename edit a file in a new tab (Vim7, gVim)
:ls list all buffers
:bn go to next buffer
:bp go to previous buffer
:bd delete a buffer (close a file)
:b1 show buffer 1
:b vimrc show buffer whose filename begins with "vimrc"
##############################################################################
# WINDOWS
##############################################################################
:sp f split open f
:vsp f vsplit open f
CTRL-w s split windows
CTRL-w w switch between windows
CTRL-w q quit a window
CTRL-w v split windows vertically
CTRL-w x swap windows
CTRL-w h left window
CTRL-w j down window
CTRL-w k up window
CTRL-w l right window
CTRL-w + larger window
CTRL-w - smaller window
CTRL-w = equal window
CTRL-w o close other windows
##############################################################################
# QUICKFIX WINDOW
##############################################################################
copen open quickfix window
cclose close quickfix window
cc [nr] display error [nr]
cfirst display the first error
clast display the last error
[count]cn display [count] next error
[count]cp display [count] previous error
##############################################################################
# PROGRAMMING
##############################################################################
% show matching brace, bracket, or parenthese
gf edit the file whose name is under or after the cursor
gd when the cursor is on a local variable or function, jump to its declaration
'' return to the line where the cursor was before the latest jump
gi return to insert mode where you inserted text the last time
CTRL-o move to previous position you were at
CTRL-i move to more recent position you were at
##############################################################################
# PLUGINS > ACK
##############################################################################
:Ack Search recursively in directory
o to open (same as enter)
go to preview file (open but maintain focus on ack.vim results)
t to open in new tab
T to open in new tab silently
q to close the quickfix window
##############################################################################
# PLUGINS > CHEAT
##############################################################################
:Cheat open cheat sheet (with autocomplete)
<leader>ch open cheat sheet for word under the cursor
##############################################################################
# PLUGINS > GIST
##############################################################################
:Gist post whole text to gist
:Gist XXXXX get gist XXXXX
:Gist -l list my gists
##############################################################################
# PLUGINS > GUNDO
##############################################################################
:GundoToggle show undo tree
##############################################################################
# PLUGINS > LUSTYJUGGLER
##############################################################################
<Leader>lj show open buffers
##############################################################################
# PLUGINS > NERDCOMMENTER
##############################################################################
<leader>cc comment out line(s)
<leader>c<space> toggle the comment state of the selected line(s)
##############################################################################
# PLUGINS > NERDTREE
##############################################################################
:NERDTreeToggle show / hide file browser
:NERDTreeFind show current file in file browser
:Bookmark name bookmark the current node as "name"
FILE
----
o open in prev window
go preview
t open in new tab
T open in new tab silently
i open split
gi preview split
s open vsplit
gs preview vsplit
DIRECTORY
---------
o open & close node
O recursively open node
x close parent of node
X close all child nodes of current node recursively
e explore selected dir
BOOKMARK
--------
o open bookmark
t open in new tab
T open in new tab silently
D delete bookmark
TREE NAVIGATION
---------------
P go to root
p go to parent
K go to first child
J go to last child
CTRL-j go to next sibling
CTRL-k go to prev sibling
FILESYSTEM
----------
C change tree root to the selected dir
u move tree root up a dir
U move tree root up a dir but leave old root open
r refresh cursor dir
R refresh current root
m show menu
cd change the CWD to the selected dir
TREE FILTERING
--------------
I hidden files
f file filters
F files
B bookmarks
OTHER
-----
q close the NERDTree window
A zoom (maximize-minimize) the NERDTree window
? toggle help
##############################################################################
# PLUGINS > PDV
##############################################################################
CTRL-P generate PHP DOC
##############################################################################
# PLUGINS > PICKACOLOR
##############################################################################
:PickHEX choose color in system color picker
##############################################################################
# PLUGINS > SNIPMATE
##############################################################################
<tab> expand snippet
##############################################################################
# PLUGINS > SPARKUP
##############################################################################
CTRL-e execute sparkup (zen coding expansion)
CTRL-n jump to the next empty tag / attribute
##############################################################################
# PLUGINS > SURROUND
##############################################################################
cs'" change surrounding quotes to double-quotes
cs(} change surrounding parens to braces
cs({ change surrounding parens to braces with space
ds' delete surrounding quotes
dst delete surrounding tags
ysiw[ surround inner word with brackets
vees' surround 2 words (ee) with quotes '
##############################################################################
# PLUGINS > TABULAR
##############################################################################
:Tabularize /, line the selected lines up on the commas
##############################################################################
# PLUGINS > TAGLIST
##############################################################################
:TlistToggle open / close taglist window
<enter> jump to tag or file
<space> display the tag prototype
##############################################################################
# PLUGINS > UNIMPAIRED
##############################################################################
[space new line above
]space new line below
[e exchange line above
]e exchange line below
[x XML encode
]x XML decode (with htmlentities)
[q jump to previous quickfix item
]q jump to next quickfix item
[Q jump to first quickfix item
]Q jump to last quickfix item
##############################################################################
# PLUGINS > VIM-FUGITIVE
##############################################################################
:Git run a git command
:Gstatus git status : - to (un)stage , p to patch, C to commit
:Gcommit git commit
:Gread empty the buffer and revert to the last commit
:Gwrite write the current file and stage the results
:Gmove git mv
:Gremove git rm
:Glog git log
:Gdiff perform a vimdiff against the current file of a certain revision
:Gblame open blame information in a scroll bound vertical splitt
:Gbrowse open github
##############################################################################
# PLUGINS > VIM-MARKDOWN-PREVIEW
##############################################################################
:Mm preview markdown document in webbrowser
##############################################################################
# PLUGINS > VIM-PEEPOPEN
##############################################################################
<Leader>p open the current directory with the peepopen application (fuzzy search)
##############################################################################
# PLUGINS > VIM-SYMFONY
##############################################################################
:Sview open template file
:Saction open action file
:Smodel open model file
:Sfilter open filter file
:Sform open form file
:Spartial open partial file / write selected content in partial + include
:Scomponent open component file / write selected content in component + include
:Salternate open alternate model file (class - table class)
:Symfony execute task
##############################################################################
# PERSONAL .VIMRC
##############################################################################
<leader>ev edit vimrc file
<leader>sv reload vimrc file
<leader>sh show syntax highlighting groups for word under cursor
<space> page down
jj exit insertion mode
<leader>q close the current window
<leader>/ clear the search register
<leader>h toggle hidden characters
<leader>W strip all trailing whitespace
CTRL-h go to left window
CTRL-j go to down window
CTRL-k go to top window
CTRL-l go to right window
<leader>w open vertical split window and activate
%% will expand to current directory
<leader>ew open file from current directory
<leader>es open file in split window from current directory
<leader>cd change directory to parent dir of current file
## will expand to webroot
:Wrap wrap text
<F2> toggle wrapped text
<F3> toggle spell check
<F4> toggle light/dark background
<F5> underline with dashes
<F6> underline with double lines
<leader><up> bubble line(s) up
<leader><down> bublle line(s) down
:Ltag load tags file
:Project cd to project and load tags file
<leader>t show current tag for word under cursor
<leader>st show current tag for word under cursor in split window
<leader>tj show current tag list for word under cursor
<leader>stj show current tag list for word under cursor in split window
CTRL-<space> show omnicomplete menu
<leader>b surround with strong tags
<leader>i surround with em tags
CTRL-p generate PHP DOC
<leader>a run Ack
<leader>md preview markdown
<leader>s preview in safari
<leader>x colorpicker
<leader>n toggle Nerdtree
<leader>N close Nerdtree
<leader>f find current file in Nerdtree
<leader>l toggle Taglist
<leader>L close Taglist
<leader>ph set filetype to php.html
<leader>r reload all snipmate snippets
CTRL-<tab> switch between buffers
CTRL-y go to next tag of attribute in sparkup plugin
<leader>g toggle Gundo window
IMG<CR> show image browser to insert image tag with src, width and height
b insert image tag with dimensions from NERDTree
(http://stackoverflow.com/questions/5707925/vim-image-placement)