[
  {
    "path": ".bundle/config",
    "content": "---\nBUNDLE_BIN: \".bundle/bin\"\nBUNDLE_JOBS: '4'\n"
  },
  {
    "path": ".caprc",
    "content": "# vim:set ft=ruby:\n\nbegin\n  require 'capistrano_colors'\nrescue LoadError\nend\n"
  },
  {
    "path": ".colordiffrc",
    "content": "# Example colordiffrc file for dark backgrounds\n#\n# Set banner=no to suppress authorship info at top of\n# colordiff output\nbanner=no\n# By default, when colordiff output is being redirected\n# to a file, it detects this and does not colour-highlight\n# To make the patch file *include* colours, change the option\n# below to 'yes'\ncolor_patches=no\n# Sometimes it can be useful to specify which diff command to\n# use: that can be specified here\ndiff_cmd=diff\n# \n# available colours are: white, yellow, green, blue,\n#                        cyan, red, magenta, black,\n#                        darkwhite, darkyellow, darkgreen,\n#                        darkblue, darkcyan, darkred,\n#                        darkmagenta, darkblack\n#\n# Can also specify 'none', 'normal' or 'off' which are all\n# aliases for the same thing, namely \"don't colour highlight\n# this, use the default output colour\"\n#\nplain=off\nnewtext=darkgreen\noldtext=red\ndiffstuff=magenta\ncvsstuff=green\n"
  },
  {
    "path": ".config/ghostty/config",
    "content": "font-family = \"Cascadia Code\"\nfont-family = \"HackGen Console\"\nfont-size = 18\ntheme = \"/Applications/Ghostty.app/Contents/Resources/ghostty/themes/One Half Light\"\ncursor-style-blink = true\ncopy-on-select = false\nmacos-titlebar-style = transparent\nmacos-option-as-alt = true\n"
  },
  {
    "path": ".dotfiles.ignore",
    "content": ".git\n.gitmodules\n.travis.yml\n.dotfiles.ignore\n"
  },
  {
    "path": ".gemrc",
    "content": "---\n:backtrace: true\n:benchmark: false\n:verbose: true\ngem: -N\nsearch: -r\n"
  },
  {
    "path": ".gitconfig",
    "content": "[user]\n\temail = trasty.loose@gmail.com\n\tname = aereal\n\n[gui]\n\tencoding = utf-8\n\n[github]\n\tuser = aereal\n\n[alias]\n\tabort-rebase       = rebase --abort\n\tbranch-name        = name-rev --name-only\n\tci                 = commit -v\n\tco                 = checkout\n\tcontinue-rebase    = rebase --continue\n\tcp                 = cherry-pick\n\tdf                 = diff\n\tds                 = diff --staged\n\tfdf                = diff --function-context\n\tfetch-pulls        = fetch origin +refs/pull/*:refs/remotes/pull/*\n\tfix                = commit --amend\n\tgr = grep\n\tinteractive-rebase = rebase --interactive\n\tnetwork            = log --graph --all --decorate --oneline\n\tonelog             = log --oneline\n\tsquashed-merge     = merge --squash\n\tst                 = status --branch --short --untracked-files=normal --ignore-submodules=dirty\n\tls                 = ls-files\n\tdelete-branch      = branch -d\n\tcurrent-branch = symbolic-ref --short HEAD\n\tcurret-remote-branch = rev-parse --abbrev-ref --symbolic-full-name @{u}\n\thard-revert-merge-commit = reset --hard ORIG_HEAD\n\tmedetai = !git rev-list HEAD | rg -P '(.)\\\\1\\\\1'\n\tmedetai4 = !git rev-list HEAD | rg -P '(.)\\\\1\\\\1\\\\1'\n\tmedetai5 = !git rev-list HEAD | rg -P '(.)\\\\1\\\\1\\\\1\\\\1'\n\tmedetai6 = !git rev-list HEAD | rg -P '(.)\\\\1\\\\1\\\\1\\\\1\\\\1'\n\tmedetai7 = !git rev-list HEAD | rg -P '(.)\\\\1\\\\1\\\\1\\\\1\\\\1\\\\1'\n\tpr = pull-request\n\trecently-added = log --grep \\\"Revert\\\" --invert-grep --diff-filter=A --format=\\\"\\\" --name-only\n\n[color]\n\tbranch      = true\n\tdiff        = true\n\tgrep        = true\n\tinteractive = true\n\tpager       = true\n\tstatus      = true\n\n[color \"branch\"]\n\tcurrent = green reverse\n\tlocal   = green\n\tremote  = yellow\n\n[color \"status\"]\n\tchanged   = green\n\tuntracked = cyan\n\tupdated   = yellow\n\n[i18n]\n\tcommitencoding= utf-8\n\n[core]\n\tquotepath = false\n\twhitespace = cr-at-eol\n\tpager = $PAGER\n\tprecomposeunicode = true\n\texcludesfile = ~/.global.gitignore\n\n[push]\n\tdefault = simple\n\tautoSetupRemote = true\n\n[branch]\n\tautosetuprebase = always\n\n[grep]\n\tlineNumber = true\n\tpatternType = perl\n\n[rebase]\n\tstat = true\n\n[diff \"gzip\"]\n\ttextconv = gzcat\n\n[log]\n\tdate = iso\n\n[merge]\n\tstat = true\n\n[interactive]\n\tsinglekey = true\n\n[ghq]\n\troot = /Users/aereal/devel/src\n\n[diff]\n\talgorithm = histogram\n[include]\n\tpath = ~/.secret.gitconfig\n[advice]\n\tstatusHints = false\n[pager]\n\tlog = git-diff-highlight | less\n\tshow = git-diff-highlight | less\n\tdiff = git-diff-highlight | less\n\tgrep = false\n[url \"git@github.com:\"]\n\tpushInsteadOf = https://github.com/\n\tpushInsteadOf = git://github.com/\n[pull]\n\trebase = true\n[init]\n\tdefaultBranch = main\n"
  },
  {
    "path": ".gitignore",
    "content": ".vim/cookies/\n.vim/netrwhist\n.vim/.netrwhist\n.vim/swp/*\n.vim/.neocon/*\n.vim/.ref/*\n.vim/.unite/*\n.vim/undo/*\n.vim/bundle/*\nsrc\n.zcompcache/\n.zcompdump\n/.vimperator/info/default/\n/.vim/snippets/*/private/\n.vim/.eskk/log\n.vim/cache\n"
  },
  {
    "path": ".gitmodules",
    "content": "[submodule \"colors/dircolors-solarized\"]\n\tpath = colors/dircolors-solarized\n\turl = git://github.com/seebi/dircolors-solarized.git\n"
  },
  {
    "path": ".global.gitignore",
    "content": "MYMETA.json\nMYMETA.yml\n/vendor/bundle\n/.bundle/\n.DS_Store\ntags\n.envrc\n.local.vimrc\n"
  },
  {
    "path": ".hammerspoon/init.lua",
    "content": "hs.window.animationDuration = 0\n\nviKey = hs.hotkey.modal.new('ctrl-cmd-option', 'space', 'hammerspoon')\nfunction viKey:entered() hs.alert'Enter' end\nfunction viKey:exited() hs.alert'Exit' end\nviKey:bind('', 'escape', function() viKey:exit() end)\nunits = {\n  enter = { x = 0.0, y = 0.0, w = 1.0, h = 1.0 },\n  spc   = { x = 0.125, y = 0.125, w = 0.75, h = 0.75 },\n  h     = { x = 0.0, y = 0.0, w = 0.5, h = 1.0 },\n  l     = { x = 0.5, y = 0.0, w = 0.5, h = 1.0 },\n  j     = { x = 0.0, y = 0.5, w = 1.0, h = 0.5 },\n  k     = { x = 0.0, y = 0.0, w = 1.0, h = 0.5 },\n  i     = { x = 0.0, y = 0.0, w = 0.5, h = 0.5 },\n  o     = { x = 0.5, y = 0.0, w = 0.5, h = 0.5 },\n  n     = { x = 0.0, y = 0.5, w = 0.5, h = 0.5 },\n  m     = { x = 0.5, y = 0.5, w = 0.5, h = 0.5 },\n}\nviKey:bind('', 'return', function()\n  hs.window.focusedWindow():move(units.enter)\nend)\nviKey:bind('', 'space', function()\n  hs.window.focusedWindow():move(units.spc)\nend)\nviKey:bind('', 'h', function()\n  hs.window.focusedWindow():move(units.h)\nend)\nviKey:bind('', 'l', function()\n  hs.window.focusedWindow():move(units.l)\nend)\nviKey:bind('', 'j', function()\n  hs.window.focusedWindow():move(units.j)\nend)\nviKey:bind('', 'k', function()\n  hs.window.focusedWindow():move(units.k)\nend)\nviKey:bind('', 'i', function()\n  hs.window.focusedWindow():move(units.i)\nend)\nviKey:bind('', 'o', function()\n  hs.window.focusedWindow():move(units.o)\nend)\nviKey:bind('', 'n', function()\n  hs.window.focusedWindow():move(units.n)\nend)\nviKey:bind('', 'm', function()\n  hs.window.focusedWindow():move(units.m)\nend)\n"
  },
  {
    "path": ".my.cnf",
    "content": "[mysql]\nprompt=\"\\u@\\h[\\d]> \"\nauto-rehash\n"
  },
  {
    "path": ".peco/config.json",
    "content": "{\n  \"Prompt\": \">\",\n  \"Keymap\": {\n    \"M-x\": \"peco.ToggleSelectionAndSelectNext\",\n    \"C-g\": \"peco.Cancel\"\n  },\n  \"Style\": {\n    \"SavedSelection\": [\n      \"bold\"\n    ],\n    \"Selected\": [\n      \"underline\"\n    ],\n    \"Query\": [\n      \"yellow\"\n    ],\n    \"Matched\": [\n      \"cyan\",\n      \"reverse\"\n    ]\n  }\n}\n"
  },
  {
    "path": ".powenv",
    "content": "# vim:set ft=sh:\n\nexport PATH=$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH\n"
  },
  {
    "path": ".proverc",
    "content": "--color\n--lib\n--failure\n--recurse\n--timer\n--trap\n"
  },
  {
    "path": ".pryrc",
    "content": "# vim:set ft=ruby:\n\ndef pbcopy(str)\n  IO.popen('pbcopy', 'r+') {|io| io.puts str }\nend\n\nPry.config.commands.command 'hcopy', 'Copy a history to clipboard' do |n|\n  pbcopy _pry_.input_array[n ? n.to_i : -1]\nend\n\nPry.config.commands.command 'copy', 'Copy a text to clipboard' do |str|\n  pbcopy str\nend\n\nPry.config.commands.command 'lastcopy', 'Copy the last result to clipboard' do\n  pbcopy _pry_.last_result.chomp\nend\n\nif defined?(Hirb)\n  Hirb::View.instance_eval do\n    def enable_output_method\n      @output_method = true\n      @original_print = Pry.config.print\n      Pry.config.print = -> (output, value) {\n        Hirb::View.view_or_page_output(value) || @original_print.call(output, value)\n      }\n    end\n\n    def disable_output_method\n      Pry.config.print = @original_print\n      @output_method = nil\n    end\n  end\n\n  Hirb.enable\nend\n"
  },
  {
    "path": ".screenrc",
    "content": "escape ^tt\ndefscrollback 10000\ndefutf8 on\ndefkanji utf-8\nencoding utf-8 utf-8\ndefencoding utf-8\nstartup_message off\nautodetach on\nlogfile \"/tmp/screen-log-%Y%m%d-%n.log\"\nlog on\ndeflog on\naltscreen on\ndefbce on\ntermcapinfo xterm-256color|xterm-color|screen-256color ti@:te@\nterm screen-256color\nvbell off\nbell_msg \"Bell in window %^G\"\n\nbind j focus down\nbind k focus up\nbind w eval 'echo \"Operate window\"' 'command -c operate'\nbind -c operate ^] command\nbind -c operate j  eval 'focus down'   'command -c operate'\nbind -c operate k  eval 'focus up'     'command -c operate'\nbind -c operate \\^ eval 'focus top'    'command -c operate'\nbind -c operate $  eval 'focus bottom' 'command -c operate'\nbind -c operate x  eval 'remove'       'command -c operate'\nbind -c operate s  eval 'split'        'command -c operate'\nbind -c operate v  eval 'split -v'     'command -c operate'\nbind -c operate +  eval 'resize +1'    'command -c operate'\nbind -c operate -  eval 'resize -1'    'command -c operate'\n\ncaption splitonly \"%3n %f %t\"\nhardstatus alwayslastline \"%{.wk}[%S] %-w %{.rd}%{!}%n %f%t%{.wk} %+w\"\n"
  },
  {
    "path": ".slate.d/google_chrome.sh",
    "content": "#!/bin/sh\n\nopen -a \"Google Chrome\"\n"
  },
  {
    "path": ".slate.js",
    "content": "S.configAll({\n  defaultToCurrentScreen: true,\n  checkDefaultsOnLoad: true,\n  modalEscapeKey: 'esc'\n});\n\nvar VI_LIKE_WINDOW_PLACEMENT_PREFIX_KEY = ['delete', 'ctrl', 'cmd'].join(',');\n\nvar vi = function(key) {\n  return [key, VI_LIKE_WINDOW_PLACEMENT_PREFIX_KEY, 'toggle'].join(':');\n};\n\nvar pushLeftOp = slate.op('push', {\n  direction: 'left',\n  style: 'bar-resize:screenSizeX/2'\n});\nvar pushDownOp = slate.op('push', {\n  direction: 'down',\n  style: 'bar-resize:screenSizeY/2'\n});\nvar pushUpOp = slate.op('push', {\n  direction: 'up',\n  style: 'bar-resize:screenSizeY/2'\n});\nvar pushRightOp = slate.op('push', {\n  direction: 'right',\n  style: 'bar-resize:screenSizeX/2'\n});\nvar moveTopLeftOp = slate.op('move', {\n  x: 0,\n  y: 0,\n  width: 'screenSizeX/2',\n  height: 'screenSizeY/2'\n});\nvar moveTopRightOp =  slate.op('move', {\n  x: 'screenSizeX/2',\n  y: 0,\n  width: 'screenSizeX/2',\n  height: 'screenSizeY/2'\n});\nvar moveBottomRightOp =  S.op('move', {\n  x: 'screenSizeX/2',\n  y: 'screenSizeY/2',\n  width: 'screenSizeX/2',\n  height: 'screenSizeY/2'\n});\nvar moveBottomLeftOp = slate.op('move', {\n  x: 0,\n  y: 'screenSizeY/2',\n  width: 'screenSizeX/2',\n  height: 'screenSizeY/2'\n});\nvar moveFullOp = slate.op('move', {\n  x: 0,\n  y: 0,\n  width: 'screenSizeX',\n  height: 'screenSizeY'\n});\nvar moveCenterOp = (function () {\n  var ratio = 0.75;\n  var op = slate.op('move', {\n    x: function () {\n      return slate.screen().rect().width * ((1 - ratio) / 2);\n    },\n    y: function () {\n      return slate.screen().rect().height * ((1 - ratio) / 2);\n    },\n    width: 'screenSizeX*0.75',\n    height: 'screenSizeY*0.75',\n  });\n  return op;\n})();\n\nvar viLikeWindowPlacements = {\n  h: pushLeftOp,\n  j: pushDownOp,\n  k: pushUpOp,\n  l: pushRightOp,\n  i: moveTopLeftOp,\n  o: moveTopRightOp,\n  m: moveBottomRightOp,\n  n: moveBottomLeftOp,\n  'return': moveFullOp,\n  'space': moveCenterOp,\n};\n\nfor (var key in viLikeWindowPlacements) {\n  var op = viLikeWindowPlacements[key];\n  S.bind(vi(key), op);\n}\n\nS.bindAll({\n  'r:ctrl,cmd': S.op('relaunch'),\n  'f:ctrl,cmd,shift': S.op('hint'),\n});\n"
  },
  {
    "path": ".tigrc",
    "content": "set commit-order = topo\nset tab-size = 2\n\nbind generic g move-first-line\nbind generic G move-last-line\nbind main    o !@hub browse -- commit/%(commit)\nbind diff    o !@hub browse -- commit/%(commit)\nbind log     o !@hub browse -- commit/%(commit)\nbind generic C !@sh -c '/bin/echo -n %(commit) | pbcopy'\nbind diff    C !@sh -c '/bin/echo -n %(commit) | pbcopy'\nbind diff    r !git rebase --interactive %(commit)~1\n"
  },
  {
    "path": ".tmux.conf",
    "content": "# key bindings\n## prefix key\nunbind C-b\nbind C-k send-prefix\nset -g prefix C-k\n\nbind ^n next-window\nbind ^p previous-window\nbind ^c new-window\n\nbind n next-window\nbind p previous-window\nbind c new-window\nbind r source-file ~/.tmux.conf\nbind k confirm-before 'kill-window'\nbind -r ^\"[\" copy-mode\nbind -r ^] paste-buffer -s ''\nbind | split-window -h\nbind _ split-window -v\n\n## copy mode\nunbind -T copy-mode-vi Space\nbind -T copy-mode-vi v send -X begin-selection\nbind -T copy-mode-vi y send -X copy-pipe \"pbcopy\"\n\n# options\nset -g history-limit 1000000\nset -g default-terminal screen-256color\n\n## status\nset -g status on\nset -g status-interval 1\nset -g status-justify left\nset -g status-position top\nset -g status-left  \"\"\nset -g status-left-length 20\nset -g status-right \"Battery:#($HOME/.tmux.d/scripts/macbook-battery) #($HOME/.tmux.d/scripts/today)\"\nset -g status-bg black\nset -g status-fg white\n\n# window options\nsetw -g automatic-rename off\nsetw -g allow-rename on\nsetw -g mode-keys vi\n\nsetw -g window-status-current-style reverse\nsetw -g window-status-current-format \"#{window_index} #{window_name}\"\nsetw -g window-status-format \"#{window_index} #{window_name}\"\n\nset -g default-command 'reattach-to-user-namespace -l $SHELL'\n\nset -sg escape-time 30\n"
  },
  {
    "path": ".tmux.d/scripts/macbook-battery",
    "content": "#!/bin/bash\n\n/usr/bin/pmset -g ps | /usr/bin/tail -1 | /usr/bin/awk '{ print $3 }' | /usr/bin/sed -e 's/;//g'\n"
  },
  {
    "path": ".tmux.d/scripts/today",
    "content": "#!/bin/bash\n\nset -ue\nexport PATH=/usr/bin:/usr/sbin:/bin:/sbin\n\ndate +'%H:%M'\n"
  },
  {
    "path": ".travis.yml",
    "content": "---\nlanguage: ruby\nrvm:\n  - 2.1.1\ninstall:\n  - echo \"Install\"\nbefore_script:\n  - mkdir -p $INSTALL_DIRECTORY\nscript:\n  - rake\nenv:\n  - INSTALL_DIRECTORY=tmp/home\n"
  },
  {
    "path": ".uim",
    "content": ";; vim:set ft=scheme:\n\n(define default-im-name 'skk)\n(define skk-use-skkserv? #t)\n(define skk-serv-hostname \"localhost\")\n(define skk-serv-portnum 1178)\n"
  },
  {
    "path": ".vim/.eskk/.keep",
    "content": ""
  },
  {
    "path": ".vim/after/ftplugin/go.vim",
    "content": "inoremap <buffer><expr> = smartchr#loop(' := ', ' = ', ' == ', ' != ')\ninoremap <buffer><expr> , smartchr#loop(', ', '<-', ',')\n"
  },
  {
    "path": ".vim/after/ftplugin/haskell.vim",
    "content": "inoremap <buffer><expr> = smartchr#loop(' = ', '=')\ninoremap <buffer><expr> . smartchr#one_of('.', ' -> ', ' => ', '.')\ninoremap <buffer><expr> , smartchr#one_of(', ', ' <- ', ',')\n\nsetlocal et\n"
  },
  {
    "path": ".vim/after/ftplugin/html.vim",
    "content": "inoremap <buffer> = =\n"
  },
  {
    "path": ".vim/after/ftplugin/javascript.vim",
    "content": "inoremap <buffer><expr> = smartchr#loop(' = ', ' == ', ' === ')\ninoremap <buffer><expr> \\ smartchr#one_of(' => ', '\\')\n\nnnoremap <silent><buffer> <Space>kj :<C-u>Unite -start-insert -default-action=split ref/javascript<CR>\nnnoremap <silent><buffer> <Space>kq :<C-u>Unite -start-insert -default-action=split ref/jquery<CR>\n"
  },
  {
    "path": ".vim/after/ftplugin/perl.vim",
    "content": "let b:tap_run_command = expand('~/.vim/bin/prove-wrapper')\n\ninoremap <buffer><expr> . smartchr#one_of('.', '->', '.')\ninoremap <buffer><expr> , smartchr#one_of(', ', ' => ', ',')\ninoremap <buffer><expr> = smartchr#loop(' = ', ' == ', ' != ', ' =~ ', ' !~ ', ' <=> ', '=')\n"
  },
  {
    "path": ".vim/after/ftplugin/ruby.vim",
    "content": "inoremap <buffer><expr> = smartchr#loop(' = ', ' == ', ' === ', ' != ')\ninoremap <buffer><expr> , smartchr#loop(', ', ' => ', ',')\n\nnnoremap <silent><buffer> <Space>k :<C-u>Unite -start-insert -default-action=split ref/refe<CR>\nnnoremap <silent><buffer> <S-k>    :<C-u>UniteWithCursorWord -default-action=split ref/refe<CR>\n"
  },
  {
    "path": ".vim/after/ftplugin/scala.vim",
    "content": "inoremap <buffer> ,t :EnType<CR>\n"
  },
  {
    "path": ".vim/after/ftplugin/sh.vim",
    "content": "inoremap <buffer><expr> = smartchr#loop('=', ' = ', ' != ')\n"
  },
  {
    "path": ".vim/after/ftplugin/tt2html.vim",
    "content": "autocmd MyInit FileType tt2html inoremap <buffer> = =\n"
  },
  {
    "path": ".vim/after/ftplugin/typescript.vim",
    "content": "inoremap <buffer><expr> \\ smartchr#one_of(' => ', '\\')\n"
  },
  {
    "path": ".vim/after/ftplugin/vim.vim",
    "content": "inoremap <buffer> = =\n"
  },
  {
    "path": ".vim/after/syntax/sh.vim",
    "content": "\" exclude `--foo)` matches from within `$(cmd --foo)`\nsyntax match shOption \"\\s\\zs--[^ \\t$`'\"|)]\\+\"\n"
  },
  {
    "path": ".vim/bin/prove-wrapper",
    "content": "#!/bin/bash\n\nset -e\n\nenv PERL5LIB=\"$PWD/lib:$PWD/local/lib/perl5\" \\\n  plenv exec perl $@\n"
  },
  {
    "path": ".vim/colors/freya.vim",
    "content": "set background=dark\n\nhi clear\n\nif exists(\"syntax_on\")\n    syntax reset\nendif\n\nlet colors_name = \"freya\"\n\nhi Normal ctermbg=0 ctermfg=7 cterm=none guibg=#2a2a2a guifg=#dcdccc gui=none\n\nhi Cursor guibg=fg guifg=bg gui=none\nhi CursorColumn guibg=#3f3f3f gui=none\nhi CursorLine guibg=#3f3f3f gui=none\nhi DiffAdd guibg=#008b00 guifg=fg gui=none\nhi DiffChange guibg=#00008b guifg=fg gui=none\nhi DiffDelete guibg=#8b0000 guifg=fg gui=none\nhi DiffText guibg=#0000cd guifg=fg gui=bold\nhi Directory guibg=bg guifg=#d4b064 gui=none\nhi ErrorMsg guibg=bg guifg=#f07070 gui=bold\nhi FoldColumn ctermbg=bg guibg=bg guifg=#c2b680 gui=none\nhi Folded guibg=#101010 guifg=#c2b680 gui=none\nhi IncSearch guibg=#866a4f guifg=fg gui=none\nhi LineNr guibg=bg guifg=#9f8f80 gui=none\nhi ModeMsg guibg=bg guifg=fg gui=bold\nhi MoreMsg guibg=bg guifg=#dabfa5 gui=bold\nhi NonText ctermfg=8 guibg=bg guifg=#9f8f80 gui=bold\nhi Pmenu guibg=#a78869 guifg=#000000 gui=none\nhi PmenuSbar guibg=#B99F86 guifg=fg gui=none\nhi PmenuSel guibg=#c0aa94 guifg=bg gui=none\nhi PmenuThumb guibg=#f7f7f1 guifg=bg gui=none\nhi Question guibg=bg guifg=#dabfa5 gui=bold\nhi Search guibg=#c0aa94 guifg=bg gui=none\nhi SignColumn ctermbg=bg guibg=bg guifg=#c2b680 gui=none\nhi SpecialKey guibg=bg guifg=#d4b064 gui=none\nif has(\"spell\")\n    hi SpellBad guisp=#f07070 gui=undercurl\n    hi SpellCap guisp=#7070f0 gui=undercurl\n    hi SpellLocal guisp=#70f0f0 gui=undercurl\n    hi SpellRare guisp=#f070f0 gui=undercurl\nendif\nhi StatusLine ctermbg=7 ctermfg=0 guibg=#736559 guifg=#f7f7f1 gui=bold\nhi StatusLineNC ctermbg=8 ctermfg=0 guibg=#564d43 guifg=#f7f7f1 gui=none\nhi TabLine guibg=#564d43 guifg=#f7f7f1 gui=underline\nhi TabLineFill guibg=#564d43 guifg=#f7f7f1 gui=underline\nhi TabLineSel guibg=bg guifg=#f7f7f1 gui=bold\nhi Title ctermbg=0 ctermfg=15 guifg=#f7f7f1 gui=bold\nhi VertSplit ctermbg=7 ctermfg=0 guibg=#564d43 guifg=#f7f7f1 gui=none\nif version >= 700\n    hi Visual ctermbg=7 ctermfg=0 guibg=#5f5f5f gui=none\nelse\n    hi Visual ctermbg=7 ctermfg=0 guibg=#5f5f5f guifg=fg gui=none\nendif\nhi VisualNOS guibg=bg guifg=#c0aa94 gui=bold,underline\nhi WarningMsg guibg=bg guifg=#f07070 gui=none\nhi WildMenu guibg=#c0aa94 guifg=bg gui=bold\n\nhi Comment guibg=bg guifg=#c2b680 gui=none\nhi Constant guibg=bg guifg=#afe091 gui=none\nhi Error guibg=bg guifg=#f07070 gui=none\nhi Identifier guibg=bg guifg=#dabfa5 gui=none\nhi Ignore guibg=bg guifg=bg gui=none\nhi lCursor guibg=#c0aa94 guifg=bg gui=none\nhi MatchParen guibg=#008b8b gui=none\nhi PreProc guibg=bg guifg=#c2aed0 gui=none\nhi Special guibg=bg guifg=#d4b064 gui=none\nhi Statement guibg=bg guifg=#e0af91 gui=bold\nhi Todo guibg=#aed0ae guifg=bg gui=none\nhi Type guibg=bg guifg=#dabfa5 gui=bold\nhi Underlined guibg=bg guifg=#d4b064 gui=underline\n\nhi htmlBold ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold\nhi htmlItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=italic\nhi htmlUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline\nhi htmlBoldItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,italic\nhi htmlBoldUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline\nhi htmlBoldUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline,italic\nhi htmlUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline,italic\n"
  },
  {
    "path": ".vim/colors/github.vim",
    "content": "\" Vim color file\n\"\n\" Author: Anthony Carapetis <anthony.carapetis@gmail.com>\n\"\n\" Note: Based on github's syntax highlighting theme\n\"       Used Brian Mock's darkspectrum as a starting point/template\n\"       Thanks to Ryan Heath for an easy list of some of the colours:\n\"       http://rpheath.com/posts/356-github-theme-for-syntax-gem\n\nhi clear\n\nset background=light\nif version > 580\n    \" no guarantees for version 5.8 and below, but this makes it stop\n    \" complaining\n    hi clear\n    if exists(\"syntax_on\")\n\tsyntax reset\n    endif\nendif\nlet g:colors_name=\"github\"\n\nhi Normal       guifg=#000000 guibg=#F8F8FF\n\n\" {{{ Cursor\nhi Cursor\t\tguibg=#444454 guifg=#F8F8FF\nhi CursorLine\tguibg=#D8D8DD\nhi CursorColumn\tguibg=#E8E8EE\n\" }}}\n\n\" {{{ Diff\nhi DiffAdd         guifg=#003300 guibg=#DDFFDD gui=none\nhi DiffChange                    guibg=#ececec gui=none\nhi DiffText        guifg=#000033 guibg=#DDDDFF gui=none\nhi DiffDelete      guifg=#DDCCCC guibg=#FFDDDD gui=none\n\" }}}\n\n\" {{{ Folding / Line Numbering / Status Lines\nhi Folded\t\tguibg=#ECECEC guifg=#808080 gui=bold\nhi vimFold\t\tguibg=#ECECEC guifg=#808080 gui=bold\nhi FoldColumn\tguibg=#ECECEC guifg=#808080 gui=bold\n\nhi LineNr\t\tguifg=#959595 guibg=#ECECEC gui=bold\nhi NonText\t\tguifg=#808080 guibg=#ECECEC\nhi Folded\t\tguifg=#808080 guibg=#ECECEC gui=bold\nhi FoldeColumn  guifg=#808080 guibg=#ECECEC gui=bold\n\nhi VertSplit\tguibg=#bbbbbb guifg=#bbbbbb gui=none\nhi StatusLine   guibg=#bbbbbb guifg=#404040 gui=bold\nhi StatusLineNC guibg=#d4d4d4 guifg=#404040 gui=italic\n\" }}}\n\n\" {{{ Misc\nhi ModeMsg\t\tguifg=#990000\nhi MoreMsg\t\tguifg=#990000\n\nhi Title\t\tguifg=#ef5939\nhi WarningMsg\tguifg=#ef5939\nhi SpecialKey   guifg=#177F80 gui=italic\n\nhi MatchParen\tguibg=#cdcdfd guifg=#000000\nhi Underlined\tguifg=#000000 gui=underline\nhi Directory\tguifg=#990000\n\" }}}\n\n\" {{{ Search, Visual, etc\nhi Visual\t\tguifg=#FFFFFF guibg=#3465a4 gui=none\nhi VisualNOS    guifg=#FFFFFF guibg=#204a87 gui=none\nhi IncSearch\tguibg=#cdcdfd guifg=#000000 gui=italic\nhi Search\t\tguibg=#cdcdfd guifg=#000000 gui=italic\n\" }}}\n\n\" {{{ Syntax groups\nhi Ignore\t\tguifg=#808080\nhi Identifier\tguifg=#0086B3\nhi PreProc\t\tguifg=#A0A0A0 gui=bold\nhi Comment\t\tguifg=#999988\nhi Constant\t\tguifg=#177F80 gui=none\nhi String\t\tguifg=#D81745\nhi Function\t\tguifg=#990000 gui=bold\nhi Statement\tguifg=#000000 gui=bold\nhi Type\t\t\tguifg=#445588 gui=bold\nhi Number\t\tguifg=#1C9898\nhi Todo\t\t\tguifg=#FFFFFF guibg=#990000 gui=bold\nhi Special\t\tguifg=#159828 gui=bold\nhi rubySymbol   guifg=#960B73\nhi Error        guibg=#f8f8ff guifg=#ff1100 gui=undercurl\nhi Todo         guibg=#f8f8ff guifg=#ff1100 gui=underline\nhi Label        guifg=#000000 gui=bold\nhi StorageClass guifg=#000000 gui=bold\nhi Structure    guifg=#000000 gui=bold\nhi TypeDef      guifg=#000000 gui=bold\n\" }}}\n\n\" {{{ Completion menus\nhi WildMenu     guifg=#7fbdff guibg=#425c78 gui=none\n\nhi Pmenu        guibg=#808080 guifg=#ffffff gui=bold\nhi PmenuSel     guibg=#cdcdfd guifg=#000000 gui=italic\nhi PmenuSbar    guibg=#000000 guifg=#444444\nhi PmenuThumb   guibg=#aaaaaa guifg=#aaaaaa\n\" }}}\n\n\" {{{ Spelling\nhi spellBad     guisp=#fcaf3e\nhi spellCap     guisp=#73d216\nhi spellRare    guisp=#fcaf3e\nhi spellLocal   guisp=#729fcf\n\" }}}\n\n\" {{{ Aliases\nhi link cppSTL          Function\nhi link cppSTLType      Type\nhi link Character\t\tNumber\nhi link htmlTag\t\t\thtmlEndTag\n\"hi link htmlTagName     htmlTag\nhi link htmlLink\t\tUnderlined\nhi link pythonFunction\tIdentifier\nhi link Question\t\tType\nhi link CursorIM\t\tCursor\nhi link VisualNOS\t\tVisual\nhi link xmlTag\t\t\tIdentifier\nhi link xmlTagName\t\tIdentifier\nhi link shDeref\t\t\tIdentifier\nhi link shVariable\t\tFunction\nhi link rubySharpBang\tSpecial\nhi link perlSharpBang\tSpecial\nhi link schemeFunc      Statement\n\"hi link shSpecialVariables Constant\n\"hi link bashSpecialVariables Constant\n\" }}}\n\n\" {{{ Tabs (non-gui0\nhi TabLine\t\tguifg=#404040 guibg=#dddddd gui=none\nhi TabLineFill\tguifg=#404040 guibg=#dddddd gui=none\nhi TabLineSel\tguifg=#404040 gui=bold\n\" }}}\n\"\n\" vim: sw=4 ts=4 foldmethod=marker\n"
  },
  {
    "path": ".vim/colors/liquidcarbon.vim",
    "content": "\" File: liquidcarbon.vim\n\" Author: Jeet Sukumaran\n\" Description: Vim color file\n\" Last Modified: October 06, 2010\n\n\" Initialization and Setup {{{1\n\" ============================================================================\nset background=dark\nhighlight clear\nif exists(\"syntax_on\")\n  syntax reset\nendif\nlet colors_name = \"liquidcarbon\"\n\" 1}}}\n\n\" Normal Color {{{1\n\" ============================================================================\nif exists(\"g:liquidcarbon_high_contrast\") && g:liquidcarbon_high_contrast\n    hi Normal          guifg=#bdcdcd   guibg=#202020\n    hi CursorLine      guifg=NONE      guibg=#292929   gui=NONE\n    hi ColorColumn     guifg=NONE      guibg=#292929\nelse\n    hi Normal          guifg=#bdcdcd   guibg=#303030\n    hi CursorLine      guifg=NONE      guibg=#3a3a3a   gui=NONE\n    hi ColorColumn     guifg=NONE      guibg=#3a3a3a\nendif\n\n\" 1}}}\n\n\" Core Highlights {{{1\n\" ============================================================================\nhi  Cursor          guifg=bg        guibg=fg        gui=NONE\nhi  CursorIM        guifg=bg        guibg=fg        gui=NONE\nhi  lCursor         guifg=bg        guibg=fg        gui=NONE\nhi  DiffAdd         guifg=#000000   guibg=#3cb371   gui=NONE\nhi  DiffChange      guifg=#000000   guibg=#4f94cd   gui=NONE\nhi  DiffDelete      guifg=#000000   guibg=#8b3626   gui=NONE\nhi  DiffText        guifg=#000000   guibg=#8ee5ee   gui=NONE\nhi  Directory       guifg=#1e90ff   guibg=bg        gui=NONE\nhi  ErrorMsg        guifg=#ff6a6a   guibg=NONE      gui=bold\nhi  FoldColumn      guifg=#68838b   guibg=#4B4B4B   gui=bold\nhi  Folded          guifg=#68838b   guibg=#4B4B4B   gui=NONE\nhi  IncSearch       guifg=#ffffff   guibg=#ff4500   gui=bold\nhi  LineNr          guifg=#767676   guibg=#000000   gui=NONE\nhi  MatchParen      guifg=#fff000   guibg=#000000   gui=bold\nhi  ModeMsg         guifg=#000000   guibg=#00ff00   gui=bold\nhi  MoreMsg         guifg=#2e8b57   guibg=bg        gui=bold\nhi  NonText         guifg=#9ac0cd   guibg=bg        gui=NONE\nhi  Pmenu           guifg=#0000ff   guibg=#c0c8cf   gui=bold\nhi  PmenuSel        guifg=#c0c8cf   guibg=#0000ff   gui=bold\nhi  PmenuSbar       guifg=#ffffff   guibg=#c1cdc1   gui=NONE\nhi  PmenuThumb      guifg=#ffffff   guibg=#838b83   gui=NONE\nhi  Question        guifg=#00ee00   guibg=NONE      gui=bold\nhi  Search          guifg=#000000   guibg=#fff68f   gui=bold\nhi  SignColumn      guifg=#ffffff   guibg=#cdcdb4   gui=NONE\nhi  SpecialKey      guifg=#666666   guibg=NONE      gui=NONE\nhi  SpellBad        guisp=#ee2c2c   gui=undercurl\nhi  SpellCap        guisp=#0000ff   gui=undercurl\nhi  SpellLocal      guisp=#008b8b   gui=undercurl\nhi  SpellRare       guisp=#ff00ff   gui=undercurl\nhi  StatusLine      guifg=#ddeeff   guibg=#445566   gui=NONE\nhi  StatusLineNC    guifg=#999999   guibg=#445566   gui=italic\nhi  TabLine         guifg=fg        guibg=#d3d3d3   gui=underline\nhi  TabLineFill     guifg=fg        guibg=bg        gui=reverse\nhi  TabLineSel      guifg=fg        guibg=bg        gui=bold\nhi  Title           guifg=#009acd   guibg=bg        gui=bold\nhi  VertSplit       guifg=#445566   guibg=#445566\nhi  Visual          guifg=#000000   guibg=#90ccff   gui=NONE\nhi  WarningMsg      guifg=#ee9a00   guibg=bg        gui=NONE\nhi  WildMenu        guifg=#000000   guibg=#87ceeb   gui=NONE\n\" 1}}}\n\n\" Syntax {{{1\n\" ============================================================================\n\n\"  General {{{2\n\" -----------------------------------------------------------------------------\nhi  Comment         guifg=#809090   guibg=NONE      gui=italic\nhi  Constant        guifg=#cdad00   guibg=NONE      gui=NONE\nhi  String          guifg=#559b70   guibg=NONE      gui=NONE\nhi  Boolean         guifg=#cd69c9   guibg=NONE      gui=NONE\nhi  Identifier      guifg=#9f79ee   guibg=NONE      gui=NONE\nhi  Function        guifg=#92a5de   guibg=NONE      gui=NONE\nhi  Statement       guifg=#009acd   guibg=NONE      gui=NONE\nhi  PreProc         guifg=#009acd   guibg=NONE      gui=NONE\nhi  Keyword         guifg=#7ac5cd   guibg=NONE      gui=NONE\nhi  Type            guifg=#4169e1   guibg=NONE      gui=NONE\nhi  Special         guifg=#7f9f44   guibg=NONE      gui=NONE\nhi  Ignore          guifg=bg        guibg=NONE      gui=NONE\nhi  Error           guifg=#ff3030   guibg=NONE      gui=underline\nhi  Todo            guifg=#ff88ee   guibg=NONE      gui=bold\n\" 2}}}\n\n\" Vim {{{2\n\" -----------------------------------------------------------------------------\nhi VimError         guifg=#ff0000   guibg=#000000   gui=bold\nhi VimCommentTitle  guifg=#528b8b   guibg=bg        gui=bold,italic\n\" 2}}}\n\n\" QuickFix {{{2\n\" -----------------------------------------------------------------------------\nhi qfFileName       guifg=#607b8b   guibg=NONE      gui=italic\nhi qfLineNr         guifg=#0088aa   guibg=NONE      gui=bold\nhi qfError          guifg=#ff0000   guibg=NONE      gui=bold\n\" 2}}}\n\n\" Python {{{2\n\" -----------------------------------------------------------------------------\nhi pythonDecorator  guifg=#cd8500   guibg=NONE      gui=NONE\nhi link pythonDecoratorFunction pythonDecorator\n\" 2}}}\n\n\" Diff {{{2\n\" -----------------------------------------------------------------------------\nhi diffOldFile      guifg=#da70d6   guibg=NONE      gui=italic\nhi diffNewFile      guifg=#ffff00   guibg=NONE      gui=italic\nhi diffFile         guifg=#ffa500   guibg=NONE      gui=italic\nhi diffLine         guifg=#ff00ff   guibg=NONE      gui=italic\nhi link             diffOnly        Constant\nhi link             diffIdentical   Constant\nhi link             diffDiffer      Constant\nhi link             diffBDiffer     Constant\nhi link             diffIsA         Constant\nhi link             diffNoEOL       Constant\nhi link             diffCommon      Constant\nhi diffRemoved      guifg=#cd5555   guibg=NONE      gui=NONE\nhi diffChanged      guifg=#4f94cd   guibg=NONE      gui=NONE\nhi diffAdded        guifg=#00cd00   guibg=NONE      gui=NONE\nhi link             diffSubname     diffLine\nhi link             diffComment     Comment\n\" 2}}}\n\n\" 1}}}\n"
  },
  {
    "path": ".vim/colors/navajo-night.vim",
    "content": "\" Vim colour file\n\" Maintainer: Matthew Hawkins <matt@mh.dropbear.id.au>\n\" Last Change:\tMon, 22 Apr 2002 15:28:04 +1000\n\" URI: http://mh.dropbear.id.au/vim/navajo-night.png\n\"\n\" This colour scheme uses a \"navajo-black\" background\n\" I have added colours for the statusbar and for spell checking \n\" as taken from Cream (http://cream.sf.net/) \n\n\nset background=dark\nhi clear\nif exists(\"syntax_on\")\n  syntax reset\nendif\n\nlet g:colors_name = \"navajo-night\"\n\n\" This is the list of colour changes from Navajo that\n\" weren't a simple mathematical subtraction from 0xffffff\n\" DarkBlue -> #ffff74\n\" DarkRed -> #74ffff \n\" DarkGreen -> #ff9bff \n\" DarkCyan -> #ff7474 \n\" DarkMagenta -> #74ff74 \n\" DarkYellow -> #7474ff \n\" DarkGray -> #565656 \n\" Blue -> Yellow\n\" Red -> Cyan \n\" Yellow -> Blue \n\" Gray -> #414141 \n\" Brown -> #5ad5d5 \n\" #ff8060 -> #007f9f \n\" #f6e8d0 -> #09172f \n\" #edb5cd -> #124a32 \n\" #c0c0c0 -> #3f3f3f \n\" #907050 -> #6f8faf \n\" #808080 -> #7f7f7f\n\" #707070 -> #8f8f8f\n\" SeaGreen -> #d174a8 \n\" LightRed (assuming #ee9090) -> #116f6f \n\" LightBlue -> #522719 \n\nhi Normal ctermfg=White guifg=White guibg=#35536f\n\nhi SpecialKey term=bold ctermfg=darkblue guifg=Yellow\nhi NonText term=bold ctermfg=darkblue cterm=bold gui=bold guifg=#7f7f7f\nhi Directory term=bold ctermfg=darkblue guifg=Yellow\nhi ErrorMsg term=standout ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan\nhi IncSearch term=reverse cterm=reverse gui=reverse\nhi Search term=reverse ctermbg=White ctermfg=Black cterm=reverse guibg=Black guifg=Yellow\nhi MoreMsg term=bold ctermfg=green gui=bold guifg=#d174a8\nhi ModeMsg term=bold cterm=bold gui=bold\nhi LineNr term=underline ctermfg=darkcyan ctermbg=grey guibg=#7f7f7f gui=bold guifg=White\nhi Question term=standout ctermfg=darkgreen gui=bold guifg=#d174a8\nhi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=Black guibg=White\nhi StatusLineNC term=reverse cterm=reverse gui=bold guifg=#116f6f guibg=#8f8f8f\nhi VertSplit term=reverse cterm=reverse gui=bold guifg=Black guibg=#8f8f8f\nhi Title term=bold ctermfg=green gui=bold guifg=#74ff74\n\"+++ Cream:\n\"hi Visual term=reverse cterm=reverse gui=reverse guifg=#3f3f3f guibg=White\n\"+++\nhi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=#414141 guibg=Black\nhi WarningMsg term=standout ctermfg=darkred gui=bold guifg=Cyan\nhi WildMenu term=standout ctermfg=White ctermbg=darkyellow guifg=White guibg=Blue\nhi Folded term=standout ctermfg=darkblue ctermbg=grey guifg=White guibg=NONE guifg=#afcfef\nhi FoldColumn term=standout ctermfg=darkblue ctermbg=grey guifg=#ffff74 guibg=#3f3f3f\nhi DiffAdd term=bold ctermbg=darkblue guibg=Black\nhi DiffChange term=bold ctermbg=darkmagenta guibg=#124a32\nhi DiffDelete term=bold ctermfg=darkblue ctermbg=blue cterm=bold gui=bold guifg=#522719 guibg=#09172f\nhi DiffText term=reverse ctermbg=darkblue cterm=bold gui=bold guibg=#007f9f\nhi Cursor gui=reverse guifg=#bfbfef guibg=Black\nhi lCursor guifg=fg guibg=bg\nhi Match term=bold,reverse ctermbg=Blue ctermfg=Yellow cterm=bold,reverse gui=bold,reverse guifg=Blue guibg=Yellow\n\n\n\" Colours for syntax highlighting\nhi Comment term=bold ctermfg=darkblue guifg=#e7e77f\nhi Constant term=underline ctermfg=darkred guifg=#3fffa7\nhi Special term=bold ctermfg=darkgreen guifg=#bfbfef\nhi Identifier term=underline ctermfg=darkcyan cterm=NONE guifg=#ef9f9f\nhi Statement term=bold ctermfg=darkred cterm=bold gui=bold guifg=#5ad5d5\nhi PreProc term=underline ctermfg=darkmagenta guifg=#74ff74\nhi Type term=underline ctermfg=green gui=bold guifg=#d174a8\nhi Ignore ctermfg=grey cterm=bold guifg=bg\n\nhi Error term=reverse ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan\nhi Todo term=standout ctermfg=darkblue ctermbg=Blue guifg=Yellow guibg=Blue\n\n\"+++ Cream: statusbar\n\" Colours for statusbar\n\"hi User1        gui=bold guifg=#565656  guibg=#0c0c0c\n\"hi User2        gui=bold guifg=White     guibg=#0c0c0c\n\"hi User3        gui=bold guifg=Yellow      guibg=#0c0c0c\n\"hi User4        gui=bold guifg=Cyan       guibg=#0c0c0c\nhighlight User1        gui=bold guifg=#999933  guibg=#45637f\nhighlight User2        gui=bold guifg=#e7e77f     guibg=#45637f\nhighlight User3        gui=bold guifg=Black      guibg=#45637f\nhighlight User4        gui=bold guifg=#33cc99       guibg=#45637f\n\"+++\n\n\"+++ Cream: selection\nhighlight Visual    gui=bold    guifg=Black guibg=#aacc77\n\"+++\n\n\"+++ Cream: bookmarks\nhighlight Cream_ShowMarksHL ctermfg=blue ctermbg=lightblue cterm=bold guifg=Black guibg=#aacc77 gui=bold\n\"+++\n\n\"+++ Cream: spell check\n\" Colour misspelt words\n\"hi BadWord ctermfg=White ctermbg=darkred cterm=bold guifg=Yellow guibg=#522719 gui=bold\n\" mathematically correct:\n\"highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=White guibg=#003333\n\" adjusted:\nhighlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=#ff9999 guibg=#003333\n\"+++\n\n\n"
  },
  {
    "path": ".vim/colors/railscasts.vim",
    "content": "\" Vim color scheme\n\"\n\" Name:         railscasts.vim\n\" Maintainer:   Nick Moffitt <nick@zork.net>\n\" Last Change:  01 Mar 2008\n\" License:      WTFPL <http://sam.zoy.org/wtfpl/>\n\" Version:      2.1\n\"\n\" This theme is based on Josh O'Rourke's Vim clone of the railscast\n\" textmate theme.  The key thing I have done here is supply 256-color\n\" terminal equivalents for as many of the colors as possible, and fixed\n\" up some of the funny behaviors for editing e-mails and such.\n\"\n\" To use for gvim:\n\" 1: install this file as ~/.vim/colors/railscasts.vim\n\" 2: put \"colorscheme railscasts\" in your .gvimrc\n\"\n\" If you are using Ubuntu, you can get the benefit of this in your\n\" terminals using ordinary vim by taking the following steps:\n\"\n\" 1: sudo apt-get install ncurses-term\n\" 2: put the following in your .vimrc\n\"     if $COLORTERM == 'gnome-terminal'\n\"         set term=gnome-256color\n\"         colorscheme railscasts\n\"     else\n\"         colorscheme default\n\"     endif\n\" 3: if you wish to use this with screen, add the following to your .screenrc:\n\"     attrcolor b \".I\"\n\"     termcapinfo xterm 'Co#256:AB=\\E[48;5;%dm:AF=\\E[38;5;%dm'\n\"     defbce \"on\"\n\"     term screen-256color-bce\n\nset background=dark\nhi clear\nif exists(\"syntax_on\")\n  syntax reset\nendif\n\nlet g:colors_name = \"railscasts\"\n\nhi link htmlTag                     xmlTag\nhi link htmlTagName                 xmlTagName\nhi link htmlEndTag                  xmlEndTag\n\nhighlight Normal                    guifg=#E6E1DC guibg=#111111 \nhighlight Cursor                    guifg=#000000 ctermfg=0 guibg=#FFFFFF ctermbg=15\t\nhighlight CursorLine                guibg=#000000 ctermbg=233 cterm=NONE\n\nhighlight Comment                   guifg=#BC9458 ctermfg=180 gui=italic\nhighlight Constant                  guifg=#6D9CBE ctermfg=73\nhighlight Define                    guifg=#CC7833 ctermfg=173\nhighlight Error                     guifg=#FFC66D ctermfg=221 guibg=#990000 ctermbg=88\nhighlight Function                  guifg=#FFC66D ctermfg=221 gui=NONE cterm=NONE\nhighlight Identifier                guifg=#6D9CBE ctermfg=73 gui=NONE cterm=NONE\nhighlight Include                   guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE\nhighlight PreCondit                 guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE\nhighlight Keyword                   guifg=#CC7833 ctermfg=173 cterm=NONE\nhighlight LineNr                    guifg=#2B2B2B ctermfg=159 guibg=#C0C0FF\nhighlight Number                    guifg=#A5C261 ctermfg=107\nhighlight PreProc                   guifg=#E6E1DC ctermfg=103\nhighlight Search                    guifg=NONE ctermfg=NONE guibg=#2b2b2b ctermbg=235 gui=italic cterm=underline\nhighlight Statement                 guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE\nhighlight String                    guifg=#A5C261 ctermfg=107\nhighlight Title                     guifg=#FFFFFF ctermfg=15\nhighlight Type                      guifg=#DA4939 ctermfg=167 gui=NONE cterm=NONE\nhighlight Visual                    guibg=#5A647E ctermbg=60\n\nhighlight DiffAdd                   guifg=#E6E1DC ctermfg=7 guibg=#519F50 ctermbg=71\nhighlight DiffDelete                guifg=#E6E1DC ctermfg=7 guibg=#660000 ctermbg=52\nhighlight Special                   guifg=#DA4939 ctermfg=167 \n\nhighlight pythonBuiltin             guifg=#6D9CBE ctermfg=73 gui=NONE cterm=NONE\nhighlight rubyBlockParameter        guifg=#FFFFFF ctermfg=15\nhighlight rubyClass                 guifg=#FFFFFF ctermfg=15\nhighlight rubyConstant              guifg=#DA4939 ctermfg=167\nhighlight rubyInstanceVariable      guifg=#D0D0FF ctermfg=189\nhighlight rubyInterpolation         guifg=#519F50 ctermfg=107\nhighlight rubyLocalVariableOrMethod guifg=#D0D0FF ctermfg=189\nhighlight rubyPredefinedConstant    guifg=#DA4939 ctermfg=167\nhighlight rubyPseudoVariable        guifg=#FFC66D ctermfg=221\nhighlight rubyStringDelimiter       guifg=#A5C261 ctermfg=143\n\nhighlight xmlTag                    guifg=#E8BF6A ctermfg=179\nhighlight xmlTagName                guifg=#E8BF6A ctermfg=179\nhighlight xmlEndTag                 guifg=#E8BF6A ctermfg=179\n\nhighlight mailSubject               guifg=#A5C261 ctermfg=107\nhighlight mailHeaderKey             guifg=#FFC66D ctermfg=221\nhighlight mailEmail                 guifg=#A5C261 ctermfg=107 gui=italic cterm=underline\n\nhighlight SpellBad                  guifg=#D70000 ctermfg=160 ctermbg=NONE cterm=underline\nhighlight SpellRare                 guifg=#D75F87 ctermfg=168 guibg=NONE ctermbg=NONE gui=underline cterm=underline\nhighlight SpellCap                  guifg=#D0D0FF ctermfg=189 guibg=NONE ctermbg=NONE gui=underline cterm=underline\nhighlight MatchParen                guifg=#FFFFFF ctermfg=15 guibg=#005f5f ctermbg=23\n"
  },
  {
    "path": ".vim/colors/shandy.vim",
    "content": "set bg=dark\nhi clear\n\nif exists(\"syntax_on\")\n\tsyntax reset\nendif\n\nlet colors_name = \"shandy\"\n\n\" blue: #7d95a6\n\" red: #a67d7d\n\" yellow: #a6a67d\n\" green: #7da67d\n\" light green: #7da69d\n\" purple: #817da6\n\" violet: #997da6\n\" magenta: #a67d92\n\nhi Normal       guifg=#aaacb3 guibg=#1a1a1a\nhi Cursor       guifg=bg      guibg=fg\nhi MatchParen   guifg=fg      guibg=bg      gui=underline\nhi NonText      guifg=#454545\nhi SpecialKey   guifg=#454545\nhi LineNr       guifg=#626872\nhi Visual       guifg=fg      guibg=#738499\nhi Title        guifg=#a6a67d\n\nhi StatusLine   guifg=fg      guibg=#5b6477 gui=none\nhi StatusLineNC guifg=#000000 guibg=#c1c8d6 gui=none\n\" DiffAdd\n\" DiffChange\n\" DiffDelete\n\" DiffText\n\nhi ModeMsg      guifg=#98a3b2\nhi MoreMsg      guifg=#98a3b2\nhi ErrorMsg     guifg=#a67d7d guibg=fg      gui=reverse\nhi WarningMsg   guifg=#a6a67d guibg=fg      gui=reverse\n\nhi Pmenu        guibg=#5b6477\nhi PmenuSel     guifg=fg      guibg=bg      gui=reverse\n\nhi Comment      guifg=#575d66\nhi Constant     guifg=#7d95a6\nhi Identifier   guifg=#7d95a6\nhi Statement    guifg=#626872\nhi PreProc      guifg=#626872\nhi Type         guifg=#997da6\nhi Delimiter    guifg=#98a3b2\nhi Special      guifg=#a6a67d\nhi Error        guifg=#a67d7d guibg=fg      gui=reverse\nhi Todo         guifg=#98a3b2 gui=underline\n\n"
  },
  {
    "path": ".vim/colors/tiro_finale.vim",
    "content": "hi clear\nif exists(\"syntax_on\")\n\tsyntax reset\nendif\n\nlet colors_name = \"tiro_finale\"\n\nset background=dark\n\n\" #e7abc2 #e78baf #c2537e #754d5c #550726\n\" #633008 #876d59 #e19860 #f3bc92 #f3cfb4\n\" #053d39 #365351 #3b8a84 #7ed1cb #9bd1cd\n\" #345a08 #677a50 #96cc57 #c0eb8d #cfebae\n\nhi Normal guifg=#eaeaea guibg=#121111\nhi SpecialKey guifg=#555555\nhi Cursor guifg=bg guibg=fg\nhi CursorLine guifg=fg guibg=bg gui=underline\nhi LineNr guifg=#e7abc2\nhi MatchParen gui=underline cterm=underline\nhi NonText guifg=#872c2a\nhi DiffAdd guifg=#5f8486 guibg=bg\nhi DiffChange guifg=#e19860 guibg=bg\nhi DiffDelete guifg=#876d59 guibg=bg\nhi DiffText guifg=fg guibg=bg gui=underline\nhi Pmenu guibg=#6e0b23\nhi PmenuSel guifg=#121111 guibg=#dddddd gui=bold\nhi PmenuSbar guifg=#dddddd guibg=#dddddd\nhi Search guifg=bg guibg=#e39343 gui=underline,bold\nhi IncSearch guifg=bg guibg=#e39343 gui=underline,bold\nhi StatusLine guifg=#121111 guibg=#e19860 gui=NONE\nhi StatusLineNC guifg=#e19860 guibg=#121111 gui=underline\nhi MoreMsg guifg=#306ada\nhi ModeMsg guifg=#cccccc\nhi ErrorMsg guifg=white guibg=#6e0b23\nhi Todo guifg=fg guibg=bg gui=underline\nhi Title guifg=#c2537e\nhi WarningMsg guifg=#e39343\n\nhi Comment guifg=#876d59\nhi Constant guifg=#f3bc92\nhi Statement guifg=#e19860\nhi PreProc guifg=#e19860\nhi Identifier guifg=#5f8486\nhi Type guifg=#c2537e\nhi Delimiter guifg=#555555\nhi Special guifg=#e39343\n\n"
  },
  {
    "path": ".vim/colors/wombat256mod.vim",
    "content": "\" Vim color file\n\" Original Maintainer:  Lars H. Nielsen (dengmao@gmail.com)\n\" Last Change:  2010-07-23\n\"\n\" Modified version of wombat for 256-color terminals by\n\"   David Liang (bmdavll@gmail.com)\n\" based on version by\n\"   Danila Bespalov (danila.bespalov@gmail.com)\n\nset background=dark\n\nif version > 580\n\thi clear\n\tif exists(\"syntax_on\")\n\t\tsyntax reset\n\tendif\nendif\n\nlet colors_name = \"wombat256mod\"\n\n\n\" General colors\nhi Normal\t\tctermfg=252\t\tctermbg=234\t\tcterm=none\t\tguifg=#e3e0d7\tguibg=#242424\tgui=none\nhi Cursor\t\tctermfg=234\t\tctermbg=228\t\tcterm=none\t\tguifg=#242424\tguibg=#eae788\tgui=none\nhi Visual\t\tctermfg=251\t\tctermbg=239\t\tcterm=none\t\tguifg=#c3c6ca\tguibg=#554d4b\tgui=none\nhi VisualNOS\tctermfg=251\t\tctermbg=236\t\tcterm=none\t\tguifg=#c3c6ca\tguibg=#303030\tgui=none\nhi Search\t\tctermfg=177\t\tctermbg=241\t\tcterm=none\t\tguifg=#d787ff\tguibg=#636066\tgui=none\nhi Folded\t\tctermfg=103\t\tctermbg=237\t\tcterm=none\t\tguifg=#a0a8b0\tguibg=#3a4046\tgui=none\nhi Title\t\tctermfg=230\t\t\t\t\t\tcterm=bold\t\tguifg=#ffffd7\t\t\t\t\tgui=bold\nhi StatusLine\tctermfg=230\t\tctermbg=238\t\tcterm=none\t\tguifg=#ffffd7\tguibg=#444444\tgui=italic\nhi VertSplit\tctermfg=238\t\tctermbg=238\t\tcterm=none\t\tguifg=#444444\tguibg=#444444\tgui=none\nhi StatusLineNC\tctermfg=241\t\tctermbg=238\t\tcterm=none\t\tguifg=#857b6f\tguibg=#444444\tgui=none\nhi LineNr\t\tctermfg=241\t\tctermbg=232\t\tcterm=none\t\tguifg=#857b6f\tguibg=#080808\tgui=none\nhi SpecialKey\tctermfg=241\t\tctermbg=235\t\tcterm=none\t\tguifg=#626262\tguibg=#2b2b2b\tgui=none\nhi WarningMsg\tctermfg=203\t\t\t\t\t\t\t\t\t\tguifg=#ff5f55\nhi ErrorMsg\t\tctermfg=196\t\tctermbg=236\t\tcterm=bold\t\tguifg=#ff2026\tguibg=#3a3a3a\tgui=bold\n\n\" Vim >= 7.0 specific colors\nif version >= 700\nhi CursorLine\t\t\t\t\tctermbg=236\t\tcterm=none\t\t\t\t\t\tguibg=#32322f\nhi MatchParen\tctermfg=228\t\tctermbg=101\t\tcterm=bold\t\tguifg=#eae788\tguibg=#857b6f\tgui=bold\nhi Pmenu\t\tctermfg=230\t\tctermbg=238\t\t\t\t\t\tguifg=#ffffd7\tguibg=#444444\nhi PmenuSel\t\tctermfg=232\t\tctermbg=192\t\t\t\t\t\tguifg=#080808\tguibg=#cae982\nendif\n\n\" Diff highlighting\nhi DiffAdd\t\t\t\t\t\tctermbg=17\t\t\t\t\t\t\t\t\t\tguibg=#2a0d6a\nhi DiffDelete\tctermfg=234\t\tctermbg=60\t\tcterm=none\t\tguifg=#242424\tguibg=#3e3969\tgui=none\nhi DiffText\t\t\t\t\t\tctermbg=53\t\tcterm=none\t\t\t\t\t\tguibg=#73186e\tgui=none\nhi DiffChange\t\t\t\t\tctermbg=237\t\t\t\t\t\t\t\t\t\tguibg=#382a37\n\n\"hi CursorIM\n\"hi Directory\n\"hi IncSearch\n\"hi Menu\n\"hi ModeMsg\n\"hi MoreMsg\n\"hi PmenuSbar\n\"hi PmenuThumb\n\"hi Question\n\"hi Scrollbar\n\"hi SignColumn\n\"hi SpellBad\n\"hi SpellCap\n\"hi SpellLocal\n\"hi SpellRare\n\"hi TabLine\n\"hi TabLineFill\n\"hi TabLineSel\n\"hi Tooltip\n\"hi User1\n\"hi User9\n\"hi WildMenu\n\n\n\" Syntax highlighting\nhi Keyword\t\tctermfg=111\t\tcterm=none\t\tguifg=#88b8f6\tgui=none\nhi Statement\tctermfg=111\t\tcterm=none\t\tguifg=#88b8f6\tgui=none\nhi Constant\t\tctermfg=173\t\tcterm=none\t\tguifg=#e5786d\tgui=none\nhi Number\t\tctermfg=173\t\tcterm=none\t\tguifg=#e5786d\tgui=none\nhi PreProc\t\tctermfg=173\t\tcterm=none\t\tguifg=#e5786d\tgui=none\nhi Function\t\tctermfg=192\t\tcterm=none\t\tguifg=#cae982\tgui=none\nhi Identifier\tctermfg=192\t\tcterm=none\t\tguifg=#cae982\tgui=none\nhi Type\t\t\tctermfg=186\t\tcterm=none\t\tguifg=#d4d987\tgui=none\nhi Special\t\tctermfg=229\t\tcterm=none\t\tguifg=#eadead\tgui=none\nhi String\t\tctermfg=113\t\tcterm=none\t\tguifg=#95e454\tgui=italic\nhi Comment\t\tctermfg=246\t\tcterm=none\t\tguifg=#9c998e\tgui=italic\nhi Todo\t\t\tctermfg=101\t\tcterm=none\t\tguifg=#857b6f\tgui=italic\n\n\n\" Links\nhi! link FoldColumn\t\tFolded\nhi! link CursorColumn\tCursorLine\nhi! link NonText\t\tLineNr\n\n\" vim:set ts=4 sw=4 noet:\n"
  },
  {
    "path": ".vim/colors/xoria256.vim",
    "content": "\" Vim color file\n\"\n\" Name:       xoria256.vim\n\" Version:    1.5\n\" Maintainer:\tDmitriy Y. Zotikov (xio) <xio@ungrund.org>\n\"\n\" Should work in recent 256 color terminals.  88-color terms like urxvt are\n\" NOT supported.\n\"\n\" Don't forget to install 'ncurses-term' and set TERM to xterm-256color or\n\" similar value.\n\"\n\" Color numbers (0-255) see:\n\" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html\n\"\n\" For a specific filetype highlighting rules issue :syntax list when a file of\n\" that type is opened.\n\n\" Initialization {{{\nif &t_Co != 256 && ! has(\"gui_running\")\n  echomsg \"\"\n  echomsg \"err: please use GUI or a 256-color terminal (so that t_Co=256 could be set)\"\n  echomsg \"\"\n  finish\nendif\n\nset background=dark\n\nhi clear\n\nif exists(\"syntax_on\")\n  syntax reset\nendif\n\nlet colors_name = \"xoria256\"\n\"}}}\n\" Colours {{{1\n\"\" General {{{2\nhi Normal       ctermfg=252 guifg=#d0d0d0 ctermbg=234 guibg=#1c1c1c cterm=none gui=none\nhi Cursor                                 ctermbg=214 guibg=#ffaf00\nhi CursorColumn                           ctermbg=238 guibg=#444444\nhi CursorLine                             ctermbg=237 guibg=#3a3a3a cterm=none gui=none\nhi Error        ctermfg=15  guifg=#ffffff ctermbg=1   guibg=#800000\nhi ErrorMsg     ctermfg=15  guifg=#ffffff ctermbg=1   guibg=#800000\nhi FoldColumn   ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212\nhi Folded       ctermfg=255 guifg=#eeeeee ctermbg=60  guibg=#5f5f87\nhi IncSearch    ctermfg=0   guifg=#000000 ctermbg=223 guibg=#ffdfaf cterm=none gui=none\nhi LineNr       ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212\nhi MatchParen   ctermfg=188 guifg=#dfdfdf ctermbg=68  guibg=#5f87df cterm=bold gui=bold\n\" TODO\n\" hi MoreMsg\nhi NonText      ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 cterm=bold gui=bold\nhi Pmenu        ctermfg=0   guifg=#000000 ctermbg=250 guibg=#bcbcbc\nhi PmenuSel     ctermfg=255 guifg=#eeeeee ctermbg=243 guibg=#767676\nhi PmenuSbar                              ctermbg=252 guibg=#d0d0d0\nhi PmenuThumb   ctermfg=243 guifg=#767676\nhi Search       ctermfg=0   guifg=#000000 ctermbg=149 guibg=#afdf5f\nhi SignColumn   ctermfg=248 guifg=#a8a8a8\nhi SpecialKey   ctermfg=77  guifg=#5fdf5f\nhi SpellBad     ctermfg=160 guifg=fg      ctermbg=bg                cterm=underline               guisp=#df0000\nhi SpellCap     ctermfg=189 guifg=#dfdfff ctermbg=bg  guibg=bg      cterm=underline gui=underline\nhi SpellRare    ctermfg=168 guifg=#df5f87 ctermbg=bg  guibg=bg      cterm=underline gui=underline\nhi SpellLocal   ctermfg=98  guifg=#875fdf ctermbg=bg  guibg=bg      cterm=underline gui=underline\nhi StatusLine   ctermfg=15  guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold\nhi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none\nhi TabLine      ctermfg=fg  guifg=fg      ctermbg=242 guibg=#666666 cterm=none gui=none\nhi TabLineFill  ctermfg=fg  guifg=fg      ctermbg=237 guibg=#3a3a3a cterm=none gui=none\n\" FIXME\nhi Title        ctermfg=225 guifg=#ffdfff\nhi Todo         ctermfg=0   guifg=#000000 ctermbg=184 guibg=#dfdf00\nhi Underlined   ctermfg=39  guifg=#00afff                           cterm=underline gui=underline\nhi VertSplit    ctermfg=237 guifg=#3a3a3a ctermbg=237 guibg=#3a3a3a cterm=none gui=none\n\" hi VIsualNOS    ctermfg=24  guifg=#005f87 ctermbg=153 guibg=#afdfff cterm=none gui=none\n\" hi Visual       ctermfg=24  guifg=#005f87 ctermbg=153 guibg=#afdfff\nhi Visual       ctermfg=255 guifg=#eeeeee ctermbg=96  guibg=#875f87\n\" hi Visual       ctermfg=255 guifg=#eeeeee ctermbg=24  guibg=#005f87\nhi VisualNOS    ctermfg=255 guifg=#eeeeee ctermbg=60  guibg=#5f5f87\nhi WildMenu     ctermfg=0   guifg=#000000 ctermbg=150 guibg=#afdf87 cterm=bold gui=bold\n\n\"\" Syntax highlighting {{{2\nhi Comment      ctermfg=244 guifg=#808080\nhi Constant     ctermfg=229 guifg=#ffffaf\nhi Identifier   ctermfg=182 guifg=#dfafdf                           cterm=none\nhi Ignore       ctermfg=238 guifg=#444444\nhi Number       ctermfg=180 guifg=#dfaf87\nhi PreProc      ctermfg=150 guifg=#afdf87\nhi Special      ctermfg=174 guifg=#df8787\nhi Statement    ctermfg=110 guifg=#87afdf                           cterm=none gui=none\nhi Type         ctermfg=146 guifg=#afafdf                           cterm=none gui=none\n\n\"\" Special {{{2\n\"\"\" .diff {{{3\nhi diffAdded    ctermfg=150 guifg=#afdf87\nhi diffRemoved  ctermfg=174 guifg=#df8787\n\"\"\" vimdiff {{{3\nhi diffAdd      ctermfg=bg  guifg=bg      ctermbg=151 guibg=#afdfaf\n\"hi diffDelete   ctermfg=bg  guifg=bg      ctermbg=186 guibg=#dfdf87 cterm=none gui=none\nhi diffDelete   ctermfg=bg  guifg=bg      ctermbg=246 guibg=#949494 cterm=none gui=none\nhi diffChange   ctermfg=bg  guifg=bg      ctermbg=181 guibg=#dfafaf\nhi diffText     ctermfg=bg  guifg=bg      ctermbg=174 guibg=#df8787 cterm=none gui=none\n\"\"\" HTML {{{3\n\" hi htmlTag      ctermfg=146  guifg=#afafdf\n\" hi htmlEndTag   ctermfg=146  guifg=#afafdf\nhi htmlTag      ctermfg=244\nhi htmlEndTag   ctermfg=244\nhi htmlArg\tctermfg=182  guifg=#dfafdf\nhi htmlValue\tctermfg=187  guifg=#dfdfaf\nhi htmlTitle\tctermfg=254  ctermbg=95\n\" hi htmlArg\tctermfg=146\n\" hi htmlTagName\tctermfg=146\n\" hi htmlString\tctermfg=187\n\"\"\" django {{{3\nhi djangoVarBlock ctermfg=180\nhi djangoTagBlock ctermfg=150\nhi djangoStatement ctermfg=146\nhi djangoFilter ctermfg=174\n\"\"\" python {{{3\nhi pythonExceptions ctermfg=174\n\"\"\" NERDTree {{{3\nhi Directory      ctermfg=110  guifg=#87afdf\nhi treeCWD        ctermfg=180  guifg=#dfaf87\nhi treeClosable   ctermfg=174  guifg=#df8787\nhi treeOpenable   ctermfg=150  guifg=#afdf87\nhi treePart       ctermfg=244  guifg=#808080\nhi treeDirSlash   ctermfg=244  guifg=#808080\nhi treeLink       ctermfg=182  guifg=#dfafdf\n\n\"\"\" VimDebug {{{3\n\" FIXME\n\" you may want to set SignColumn highlight in your .vimrc\n\" :help sign\n\" :help SignColumn\n\n\" hi currentLine term=reverse cterm=reverse gui=reverse\n\" hi breakPoint  term=NONE    cterm=NONE    gui=NONE\n\" hi empty       term=NONE    cterm=NONE    gui=NONE\n\n\" sign define currentLine linehl=currentLine\n\" sign define breakPoint  linehl=breakPoint  text=>>\n\" sign define both        linehl=currentLine text=>>\n\" sign define empty       linehl=empty\n\n"
  },
  {
    "path": ".vim/colors/zenesque.vim",
    "content": "\" =============================================================================\n\" File:        zenesque.vim\n\" Description: Vim color scheme file\n\" Maintainer:  Paul L\n\" =============================================================================\nset background=light\nhighlight clear\nif exists(\"syntax_on\")\n  syntax reset\nendif\nlet colors_name = \"zenesque\"\n\" =============================================================================\n\n\" default scheme\n\nhi Normal       guifg=#000000          guibg=#e0e0d8   gui=NONE\nhi CursorLine   guifg=NONE             guibg=#e1e1d0   gui=NONE\nhi CursorColumn guifg=NONE             guibg=#e1e1d0   gui=NONE\nhi LineNr       guifg=#a9a99e          guibg=NONE      gui=NONE\nhi Constant     guifg=#353535          guibg=NONE      gui=bold\nhi Statement    guifg=#363636          guibg=NONE      gui=italic\nhi Function     guifg=fg               guibg=NONE      gui=bold\nhi String       guifg=#3c3c3c          guibg=NONE      gui=NONE\nhi Type         guifg=#616161          guibg=NONE      gui=bold,italic\nhi Conditional  guifg=#4d4d4d          guibg=NONE      gui=bold\nhi Todo         guifg=fg               guibg=NONE      gui=bold,underline\nhi Comment      guifg=#797979          guibg=NONE      gui=italic\nhi PmenuSel     guifg=fg               guibg=#a9a9aa   gui=bold\nhi ColorColumn  guifg=NONE             guibg=#e6e6e6\nhi Cursor       guifg=bg               guibg=fg        gui=NONE\nhi CursorIM     guifg=bg               guibg=fg        gui=NONE\nhi lCursor      guifg=bg               guibg=fg        gui=NONE\nhi DiffAdd      guifg=NONE             guibg=#d1d1d1   gui=NONE\nhi DiffChange   guifg=NONE             guibg=#9d9d9d   gui=NONE\nhi DiffDelete   guifg=NONE             guibg=#949494   gui=NONE\nhi DiffText     guifg=#000000          guibg=#bababa   gui=bold\nhi Directory    guifg=#525252          guibg=bg        gui=NONE\nhi ErrorMsg     guifg=#6f6f6f          guibg=NONE      gui=NONE\nhi FoldColumn   guifg=#555555          guibg=#cccbcb   gui=bold\nhi Folded       guifg=#555555          guibg=#cccccc   gui=italic\n\nhi IncSearch    guifg=#000000          guibg=#adadad   gui=NONE\nhi Search       guifg=#000000          guibg=#c5c3c3   gui=NONE\nhi MatchParen   guifg=#000000          guibg=#a8a8a8   gui=bold\nhi ModeMsg      guifg=#ffffff          guibg=#767676   gui=bold\nhi MoreMsg      guifg=#7c7c7c          guibg=bg        gui=bold\nhi NonText      guifg=#7e7e7e          guibg=bg        gui=bold\n\nhi Pmenu        guifg=#646564          guibg=#b1b2b1   gui=reverse\nhi PmenuSbar    guifg=#ffffff          guibg=#989898   gui=NONE\nhi PmenuThumb   guifg=#ffffff          guibg=#777777   gui=NONE\n\nhi Question     guifg=#454545          guibg=bg        gui=bold\nhi SignColumn   guifg=#ffffff          guibg=#696969   gui=NONE\n\nhi SpecialKey   guifg=#ffffff          guibg=#696969    gui=NONE\n\nhi SpellBad     guisp=#323232          guibg=#d1cdcd   gui=undercurl\nhi SpellCap     guisp=#5d5d5d                          gui=undercurl\nhi SpellLocal   guisp=#434343                          gui=undercurl\nhi SpellRare    guisp=#7d7d7d                          gui=undercurl\nhi StatusLine   guifg=#e8e8e8          guibg=#858585   gui=bold\nhi StatusLineNC guifg=#808080          guibg=#bbbbbb   gui=italic\nhi TabLine      guifg=fg               guibg=#898a8b   gui=underline\nhi TabLineFill  guifg=fg               guibg=bg        gui=reverse\nhi TabLineSel   guifg=fg               guibg=bg        gui=bold\nhi Title        guifg=#6d6d6d          guibg=bg        gui=bold\nhi VertSplit    guifg=#b9b9b9          guibg=#b9b9b9\nhi Visual       guifg=#ffffff          guibg=#9a9a9a   gui=NONE\nhi WarningMsg   guifg=#cfcfcf          guibg=#5b5b5b   gui=NONE\nhi WildMenu     guifg=#000000          guibg=#c2c2c2   gui=NONE\n\nhi Boolean      guifg=#616060          guibg=NONE      gui=bold\nhi Identifier   guifg=#141414          guibg=NONE      gui=bold\nhi Keyword      guifg=#666666          guibg=NONE      gui=underline\nhi PreProc      guifg=#6b6b6b          guibg=NONE      gui=NONE\nhi Special      guifg=#6e6e6e          guibg=NONE      gui=NONE\nhi Ignore       guifg=bg               guibg=NONE      gui=NONE\nhi Error        guifg=#727272          guibg=NONE      gui=undercurl\n\" -----------------------------------------------------------------------------\nhi VimError         guifg=#b6b6b6      guibg=#313131   gui=bold\nhi VimCommentTitle  guifg=#5c5c5c      guibg=bg        gui=bold,italic\nhi qfFileName       guifg=#6a6a6a      guibg=NONE      gui=italic\nhi qfLineNr         guifg=fg           guibg=NONE      gui=NONE\nhi qfError          guifg=fg           guibg=#c4c2c2   gui=undercurl\n\n\" -----------------------------------------------------------------------------\nhi pythonDecorator  guifg=#3b3b3b      guibg=NONE      gui=bold\nhi link pythonDecoratorFunction pythonDecorator\n\n\" -----------------------------------------------------------------------------\nhi htmlLink             guifg=#666666          guibg=NONE      gui=underline,italic\n\nif exists('g:zenesque_colors') && g:zenesque_colors==1\n    \" light scheme with colors\n    \n    hi Normal       guifg=#0b092c          guibg=#e5e5d8   gui=NONE\n    hi CursorLine   guifg=NONE             guibg=#d4d4c0   gui=NONE\n    hi CursorColumn guifg=NONE             guibg=#d4d4c0   gui=NONE\n    hi LineNr       guifg=#888875          guibg=NONE      gui=NONE\n    hi Constant     guifg=#73221A          guibg=NONE      gui=NONE\n    hi String       guifg=#073010          guibg=NONE      gui=NONE\n    hi Function     guifg=#3b1c5b          guibg=NONE      gui=bold\n    hi Statement    guifg=#100051          guibg=NONE      gui=italic\n    hi Conditional  guifg=#6e220e          guibg=NONE      gui=NONE\n    hi Type         guifg=#421b4d          guibg=NONE      gui=italic\n    hi Todo         guifg=#6c0303          guibg=NONE      gui=NONE\n    hi Comment      guifg=#6e6e6e          guibg=NONE      gui=italic\n    hi PmenuSel     guifg=fg               guibg=#c37a23   gui=bold\n    hi ColorColumn  guifg=NONE             guibg=#e6e6e6\n    hi Cursor       guifg=bg               guibg=fg        gui=NONE\n    hi CursorIM     guifg=bg               guibg=fg        gui=NONE\n    hi lCursor      guifg=bg               guibg=fg        gui=NONE\n\n    hi diffAdd      guifg=bg               guibg=#5a7e5d   gui=none\n    hi diffDelete   guifg=#bf6a6a          guibg=#3d2424   gui=none\n    hi diffChange   guifg=bg               guibg=#b55c5c   gui=none\n    hi diffText     guifg=bg               guibg=#264928   gui=none\n\n    hi Directory    guifg=#525252          guibg=bg        gui=NONE\n    hi ErrorMsg     guifg=#6f6f6f          guibg=NONE      gui=NONE\n    hi FoldColumn   guifg=#555555          guibg=#cccbcb   gui=bold\n    hi Folded       guifg=#555555          guibg=#cccccc   gui=italic\n\n    hi IncSearch    guifg=#000000          guibg=#adadad   gui=NONE\n    hi Search       guifg=#000000          guibg=#c5c3c3   gui=NONE\n    hi MatchParen   guifg=#000000          guibg=#a8a8a8   gui=bold\n    hi ModeMsg      guifg=#ffffff          guibg=#767676   gui=bold\n    hi MoreMsg      guifg=#7c7c7c          guibg=bg        gui=bold\n    hi NonText      guifg=#7e7e7e          guibg=bg        gui=bold\n\n    hi Pmenu        guifg=#646564          guibg=#b1b2b1   gui=reverse\n    hi PmenuSbar    guifg=#ffffff          guibg=#989898   gui=NONE\n    hi PmenuThumb   guifg=#ffffff          guibg=#777777   gui=NONE\n\n    hi Question     guifg=#454545          guibg=bg        gui=bold\n    hi SignColumn   guifg=#ffffff          guibg=#696969   gui=NONE\n\n    hi SpecialKey   guifg=#ffffff          guibg=#696969   gui=NONE\n\n    hi SpellBad     guisp=#323232          guibg=#d1cdcd   gui=undercurl\n    hi SpellCap     guisp=#5d5d5d                          gui=undercurl\n    hi SpellLocal   guisp=#434343                          gui=undercurl\n    hi SpellRare    guisp=#7d7d7d                          gui=undercurl\n    hi StatusLine   guifg=fg               guibg=#c0bebe   gui=bold\n    hi StatusLineNC guifg=#808080          guibg=#c5c5af   gui=italic\n    hi TabLine      guifg=fg               guibg=#898a8b   gui=underline\n    hi TabLineFill  guifg=fg               guibg=bg        gui=reverse\n    hi TabLineSel   guifg=fg               guibg=bg        gui=bold\n    hi Title        guifg=#6d6d6d          guibg=bg        gui=bold\n    hi VertSplit    guifg=#c5c5af          guibg=#c5c5af\n    hi Visual       guifg=#ffffff          guibg=#9a9a9a   gui=NONE\n    hi WarningMsg   guifg=#cfcfcf          guibg=#5b5b5b   gui=NONE\n    hi WildMenu     guifg=#000000          guibg=#c2c2c2   gui=NONE\n    hi Boolean      guifg=#616060          guibg=NONE      gui=bold\n    hi Identifier   guifg=#141414          guibg=NONE      gui=bold\n    hi Keyword      guifg=#666666          guibg=NONE      gui=underline\n    hi PreProc      guifg=#272c61          guibg=NONE      gui=NONE\n    hi Special      guifg=#6e6e6e          guibg=NONE      gui=NONE\n    hi Ignore       guifg=bg               guibg=NONE      gui=NONE\n    hi Error        guifg=#727272          guibg=NONE      gui=undercurl\n    \" -----------------------------------------------------------------------------\nhi VimError         guifg=#b6b6b6      guibg=#313131   gui=bold\nhi VimCommentTitle  guifg=#5c5c5c      guibg=bg        gui=bold,italic\nhi qfFileName       guifg=#6a6a6a      guibg=NONE      gui=italic\nhi qfLineNr         guifg=fg           guibg=NONE      gui=NONE\nhi qfError          guifg=fg           guibg=#c4c2c2   gui=undercurl\n\n\" -----------------------------------------------------------------------------\nhi pythonDecorator  guifg=#3b3b3b      guibg=NONE      gui=bold\nhi link pythonDecoratorFunction pythonDecorator\n\" -----------------------------------------------------------------------------\nhi htmlLink             guifg=#666666          guibg=NONE      gui=underline,italic\nelseif exists('g:zenesque_colors') && g:zenesque_colors==2\n    \" dark scheme without colors\n\n    set background=dark\n\n    hi Normal       guifg=#adadad          guibg=#1a1a1a   gui=NONE\n    hi CursorLine   guifg=NONE             guibg=#000000   gui=NONE\n    hi CursorColumn guifg=NONE             guibg=#000000   gui=NONE\n    hi LineNr       guifg=#555555          guibg=NONE      gui=NONE\n    hi Constant     guifg=#848484          guibg=NONE      gui=bold\n    hi Statement    guifg=#a6a6a6          guibg=NONE      gui=italic\n    hi Function     guifg=#919191          guibg=NONE      gui=bold\n    hi String       guifg=#838383          guibg=NONE      gui=italic\n    hi Type         guifg=#838383          guibg=NONE      gui=bold,italic\n    hi Conditional  guifg=#787878          guibg=NONE      gui=bold\n    hi Todo         guifg=#ffffff          guibg=NONE      gui=underline\n    hi Comment      guifg=#555555          guibg=NONE      gui=NONE\n    hi PmenuSel     guifg=#000000          guibg=#a9a9aa   gui=bold\n    hi Special      guifg=#868585          guibg=NONE      gui=NONE\n    hi Identifier   guifg=#626262          guibg=NONE      gui=bold\n    hi Keyword      guifg=#858585          guibg=NONE      gui=underline\n    hi PreProc      guifg=#6b6b6b          guibg=NONE      gui=italic\n\n\n    hi Visual       guifg=NONE             guibg=#313131   gui=NONE\n    hi ColorColumn  guifg=NONE             guibg=#e6e6e6 \n    hi Cursor       guifg=bg               guibg=fg        gui=NONE\n    hi CursorIM     guifg=bg               guibg=fg        gui=NONE\n    hi lCursor      guifg=bg               guibg=fg        gui=NONE\n\n    hi DiffAdd      guifg=fg               guibg=#444444   gui=NONE\n    hi DiffChange   guifg=bg               guibg=#909090   gui=NONE\n    hi DiffDelete   guifg=NONE             guibg=#292929   gui=NONE\n    hi DiffText     guifg=NONE             guibg=#383838   gui=NONE\n\n    hi Directory    guifg=#525252          guibg=bg        gui=NONE\n    hi ErrorMsg     guifg=#6f6f6f          guibg=NONE      gui=NONE\n    hi FoldColumn   guifg=#555555           guibg=#414141   gui=bold\n    hi Folded       guifg=#828282           guibg=#212121   gui=italic\n\n    hi IncSearch    guifg=#000000          guibg=#adadad   gui=NONE\n    hi Search       guifg=#000000          guibg=#c5c3c3   gui=NONE\n    hi MatchParen   guifg=#000000          guibg=#a8a8a8   gui=bold\n    hi ModeMsg      guifg=#ffffff          guibg=#767676   gui=bold\n    hi MoreMsg      guifg=#7c7c7c          guibg=bg        gui=bold\n    hi NonText      guifg=#7e7e7e          guibg=bg        gui=bold\n\n    hi Pmenu        guifg=#656565          guibg=#3f3f3f   gui=NONE\n    hi PmenuSbar    guifg=fg               guibg=#5d5d5d   gui=NONE\n    hi PmenuThumb   guifg=fg               guibg=#777777   gui=NONE\n\n    hi Question     guifg=#454545          guibg=bg        gui=bold\n    hi SignColumn   guifg=#ffffff          guibg=#696969   gui=NONE\n\n    hi SpecialKey   guifg=#ffffff          guibg=#696969   gui=NONE\n\n    hi SpellBad     guisp=#ffffff          guibg=#000000   gui=undercurl\n    hi SpellCap     guisp=#5d5d5d                          gui=undercurl\n    hi SpellLocal   guisp=#434343                          gui=undercurl\n    hi SpellRare    guisp=#7d7d7d                          gui=undercurl\n    hi StatusLine   guifg=#000000          guibg=#727272   gui=bold\n    hi StatusLineNC guifg=#5a5959          guibg=#222222   gui=italic\n    hi TabLine      guifg=fg               guibg=#757575   gui=underline\n    hi TabLineFill  guifg=fg               guibg=bg        gui=reverse\n    hi TabLineSel   guifg=fg               guibg=bg        gui=bold\n    hi Title        guifg=#6d6d6d          guibg=bg        gui=bold\n    hi VertSplit    guifg=#222222          guibg=#222222\n    hi WarningMsg   guifg=#cfcfcf          guibg=#5b5b5b   gui=NONE\n    hi WildMenu     guifg=#000000          guibg=#828282   gui=NONE\n    hi Boolean      guifg=#616060          guibg=NONE      gui=bold\n    hi Ignore       guifg=bg               guibg=NONE      gui=NONE\n    hi Error        guifg=#727272          guibg=NONE      gui=undercurl\n    \" -----------------------------------------------------------------------------\n    hi VimError         guifg=#b6b6b6      guibg=#313131   gui=bold\n    hi VimCommentTitle  guifg=#5c5c5c      guibg=bg        gui=bold,italic\n    hi qfFileName       guifg=#6a6a6a      guibg=NONE      gui=italic\n    hi qfLineNr         guifg=fg           guibg=NONE      gui=NONE\n    hi qfError          guifg=fg           guibg=#000000   gui=undercurl\n\n    \" -----------------------------------------------------------------------------\n    hi pythonDecorator  guifg=#3b3b3b      guibg=NONE      gui=bold\n    hi link pythonDecoratorFunction pythonDecorator\n    \" -----------------------------------------------------------------------------\n    hi htmlLink         guifg=#666666      guibg=NONE      gui=underline,italic\n\nelseif exists('g:zenesque_colors') && g:zenesque_colors==3\n    \" dark scheme with colors\n    \n    set background=dark\n\n    hi Normal       guifg=#adadad          guibg=#0f1216   gui=NONE\n    hi CursorLine   guifg=NONE             guibg=#000000   gui=NONE\n    hi CursorColumn guifg=NONE             guibg=#000000   gui=NONE\n    hi LineNr       guifg=#4d4d44          guibg=NONE      gui=NONE\n    hi Constant     guifg=#8d5c57          guibg=NONE      gui=NONE\n    hi String       guifg=#5d7a64          guibg=NONE      gui=NONE\n    hi Function     guifg=#9784a2          guibg=NONE      gui=NONE\n    hi Statement    guifg=#5a89a4          guibg=NONE      gui=italic\n    hi Conditional  guifg=#8c7867          guibg=NONE      gui=NONE\n    hi Type         guifg=#518991          guibg=NONE      gui=italic\n    hi Todo         guifg=#9b3535          guibg=NONE      gui=NONE\n    hi Comment      guifg=#777777          guibg=NONE      gui=NONE\n    hi PmenuSel     guifg=bg               guibg=#9b601a   gui=bold\n    hi Special      guifg=#a7a863          guibg=NONE      gui=NONE\n    hi Identifier   guifg=#a16f51          guibg=NONE      gui=NONE\n    hi Keyword      guifg=#737354          guibg=NONE      gui=underline\n    hi PreProc      guifg=#5567a1          guibg=NONE      gui=NONE\n    hi Visual       guifg=NONE             guibg=#462e44   gui=NONE\n    hi ColorColumn  guifg=NONE             guibg=#e6e6e6\n    hi Cursor       guifg=bg               guibg=fg        gui=NONE\n    hi CursorIM     guifg=bg               guibg=fg        gui=NONE\n    hi lCursor      guifg=bg               guibg=fg        gui=NONE\n    hi diffAdd      guifg=bg               guibg=#5a7e5d   gui=none\n    hi diffDelete   guifg=#bf6a6a          guibg=#2d1212   gui=none\n    hi diffChange   guifg=bg               guibg=#7e4444   gui=none\n    hi diffText     guifg=bg               guibg=#345535   gui=none\n\n    \n    hi Directory    guifg=#525252          guibg=bg        gui=NONE\n    hi ErrorMsg     guifg=#6f6f6f          guibg=NONE      gui=NONE\n    hi FoldColumn   guifg=#555555          guibg=#414141   gui=bold\n    hi Folded       guifg=#828282          guibg=#212121   gui=italic\n\n    hi IncSearch    guifg=#000000          guibg=#adadad   gui=NONE\n    hi Search       guifg=#000000          guibg=#c5c3c3   gui=NONE\n    hi MatchParen   guifg=#000000          guibg=#a8a8a8   gui=bold\n    hi ModeMsg      guifg=#ffffff          guibg=#767676   gui=bold\n    hi MoreMsg      guifg=#7c7c7c          guibg=bg        gui=bold\n    hi NonText      guifg=#7e7e7e          guibg=bg        gui=bold\n\n    hi Pmenu        guifg=#656565          guibg=#3f3f3f   gui=NONE\n    hi PmenuSbar    guifg=fg               guibg=#5d5d5d   gui=NONE\n    hi PmenuThumb   guifg=fg               guibg=#777777   gui=NONE\n\n    hi Question     guifg=#454545          guibg=bg        gui=bold\n    hi SignColumn   guifg=#ffffff          guibg=#696969   gui=NONE\n\n    hi SpecialKey   guifg=#ffffff          guibg=#696969   gui=NONE\n\n    hi SpellBad     guisp=#ffffff          guibg=#000000   gui=undercurl\n    hi SpellCap     guisp=#5d5d5d                          gui=undercurl\n    hi SpellLocal   guisp=#434343                          gui=undercurl\n    hi SpellRare    guisp=#7d7d7d                          gui=undercurl\n    hi StatusLine   guifg=#000000          guibg=#727272   gui=bold\n    hi StatusLineNC guifg=#5a5959          guibg=#222222   gui=italic\n    hi TabLine      guifg=fg               guibg=#5f5f5f   gui=underline\n    hi TabLineFill  guifg=fg               guibg=bg        gui=reverse\n    hi TabLineSel   guifg=fg               guibg=bg        gui=bold\n    hi Title        guifg=#6d6d6d          guibg=bg        gui=bold\n    hi VertSplit    guifg=#222222          guibg=#222222\n    hi WarningMsg   guifg=#cfcfcf          guibg=#5b5b5b   gui=NONE\n    hi WildMenu     guifg=#000000          guibg=#828282   gui=NONE\n    hi Boolean      guifg=#616060          guibg=NONE      gui=bold\n    hi Ignore       guifg=bg               guibg=NONE      gui=NONE\n    hi Error        guifg=#727272          guibg=NONE      gui=undercurl\n    \" -----------------------------------------------------------------------------\n    hi VimError         guifg=#b6b6b6      guibg=#313131   gui=bold\n    hi VimCommentTitle  guifg=#5c5c5c      guibg=bg        gui=bold,italic\n    hi qfFileName       guifg=#6a6a6a      guibg=NONE      gui=italic\n    hi qfLineNr         guifg=fg           guibg=NONE      gui=NONE\n    hi qfError          guifg=fg           guibg=#000000   gui=undercurl\n\n    \" -----------------------------------------------------------------------------\n    hi pythonDecorator  guifg=#3b3b3b      guibg=NONE      gui=bold\n    hi link pythonDecoratorFunction pythonDecorator\n    \" -----------------------------------------------------------------------------\n    hi htmlLink             guifg=#666666          guibg=NONE      gui=underline,italic\nendif\n\nhi htmlTagName          guifg=NONE             guibg=NONE      gui=NONE\nhi link htmlScriptTag htmlTagName\nhi link htmlTagN htmlTagName\nhi link htmlEndTag htmlTagName\nhi link htmlSpecialTagName htmlTagName\n\nhi link cssRenderAttr Constant \nhi link cssTextAttr Constant\nhi link cssUIAttr Constant\nhi link cssTableAttr Constant\nhi link cssColorAttr Constant\nhi link cssBoxAttr Constant\nhi link cssCommonAttr Constant\nhi link cssFunctionName Constant\nhi link cssRenderProp Type\nhi link cssBoxProp cssRenderProp\n\nhi link cssTagName Statement\nhi link cssClassName cssTagName\nhi link cssIdentifier cssTagName\nhi link cssPseudoClass cssTagName\nhi link cssPseudoClassId cssTagName\n\nhi cssBraces            guifg=fg            guibg=bg              gui=NONE\nhi javaScript           guifg=fg            guibg=NONE\nhi link javaScriptFunction Statement\nhi link javaScriptMember Statement\nhi link javaScriptValue Constant\n\nhi link objcClass Type\nhi link cocoaClass objcClass\nhi link objcSubclass objcClass\nhi link objcSuperclass objcClass\nhi link cocoaFunction Function\nhi link objcMethodName Identifier\nhi link objcMethodArg Normal\nhi link objcMessageName Identifier\n\nhi link javaType Statement\nhi link cppStatement  Statement\n\n\n"
  },
  {
    "path": ".vim/etc/lazy.toml",
    "content": "[[plugins]]\nrepo = 'groenewege/vim-less'\non_ft = ['less']\n\n[[plugins]]\nrepo = 'hail2u/vim-css3-syntax'\non_ft = ['css']\n\n[[plugins]]\nrepo = 'hallison/vim-markdown'\non_ft = ['markdown']\n\n[[plugins]]\nrepo = 'motemen/hatena-vim'\non_ft = ['hatena']\n\n[[plugins]]\nrepo = 'othree/html5.vim'\non_ft = ['html']\n\n[[plugins]]\nrepo = 'pangloss/vim-javascript'\non_ft = ['typescript', 'javascript']\n\n[[plugins]]\nrepo = 'MaxMEllon/vim-jsx-pretty'\non_ft = ['javascript']\n\n[[plugins]]\nrepo = 'vim-perl/vim-perl'\non_ft = ['perl']\nhook_add = '''\nlet g:perl_fold = 0\n'''\n\n[[plugins]]\nrepo = 'vim-ruby/vim-ruby'\non_ft = ['ruby']\n\n[[plugins]]\nrepo = 'davidoc/taskpaper.vim'\non_ft = ['taskpaper']\n\n[[plugins]]\nrepo = 'motemen/tap-vim'\non_ft = ['perl']\nhook_add = '''\nlet g:tap#use_vimproc = 1\n'''\n\n[[plugins]]\nrepo = 'eagletmt/ghcmod-vim'\nexternal_commands = 'ghc-mod'\non_ft = ['haskell']\n\n[[plugins]]\nrepo = 'eagletmt/ghci-vim'\nexternal_commands = ['ghc']\non_ft = ['haskell']\n\n[[plugins]]\nrepo = 'eagletmt/neco-ghc'\non_ft = ['haskell']\nexternal_commands = ['ghc', 'ghc-mod']\n\n[[plugins]]\nrepo = 'itchyny/vim-haskell-indent'\non_ft = ['haskell']\n\n[[plugins]]\nrepo = 'ekalinin/Dockerfile.vim'\non_ft = 'dockerfile'\n\n[[plugins]]\nrepo = 'leafgarland/typescript-vim'\non_ft = ['typescript']\n\n[[plugins]]\nrepo = 'Quramy/tsuquyomi'\non_ft = ['typescript']\n\n[[plugins]]\nrepo = 'keith/swift.vim'\non_ft = ['swift']\n\n[[plugins]]\nrepo = 'derekwyatt/vim-scala'\non_ft = ['scala']\n\n[[plugins]]\nrepo = 'mattn/emmet-vim'\non_ft = ['html', 'haml', 'slim', 'css', 'tt2html']\nhook_add = '''\nlet g:user_emmet_leader_key = '<C-e>'\n'''\n\n[[plugins]]\nrepo = 'vim-scripts/sudo.vim'\non_cmd = ['SudoWrite', 'SudoRead']\n\n[[plugins]]\nrepo = 'haya14busa/incsearch.vim'\non_map = ['<Plug>']\nhook_add = '''\nlet g:incsearch#auto_nohlsearch = 1\nmap / <Plug>(incsearch-forward)\nmap ? <Plug>(incsearch-backward)\nmap g/ <Plug>(incsearch-stay)\n\nmap n <Plug>(incsearch-nohl-n)\nmap N <Plug>(incsearch-nohl-N)\nnmap n <Plug>(incsearch-nohl)<Plug>(anzu-n-with-echo)\nnmap N <Plug>(incsearch-nohl)<Plug>(anzu-N-with-echo)\n'''\n\n[[plugins]]\nrepo = 'h1mesuke/vim-alignta'\non_cmd = ['Alignta']\nhook_add = '''\nvmap ,a :Alignta\nvmap ,= :Alignta =<CR>\nvmap ,> :Alignta =><CR>\n'''\n\n[[plugins]]\nrepo = 'cespare/vim-toml'\non_ft = ['toml']\n\n[[plugins]]\nrepo = 'motemen/xslate-vim'\non_ft = ['xslate']\n\n[[plugins]]\nrepo = 'Shougo/neomru.vim'\nif = '!has(\"nvim\")'\non_unite = ['file_mru']\nhook_source = '''\ncall unite#custom#source(\n      \\ 'file_mru', 'matchers',\n      \\ ['matcher_project_files', 'matcher_fuzzy'],\n      \\ )\n'''\n\n\n[[plugins]]\nrepo = 'subosito/nginx.vim'\non_ft = ['nginx']\n\n[[plugins]]\nrepo = 'fatih/vim-go'\non_ft = ['go']\n\n[[plugins]]\nrepo = 'flowtype/vim-flow'\non_ft = ['javascript']\nhook_add = '''\nlet g:flow#autoclose = 1\n'''\n"
  },
  {
    "path": ".vim/etc/operator.toml",
    "content": "[[plugins]]\nrepo = 'rhysd/vim-operator-surround'\non_map = ['<Plug>(operator-surround-']\ndepends = ['vim-operator-user']\nhook_add = '''\nmap <silent> sa <Plug>(operator-surround-append)\nmap <silent> sd <Plug>(operator-surround-delete)\nmap <silent> sr <Plug>(operator-surround-replace)\n'''\n\n[[plugins]]\nrepo = 'haya14busa/vim-operator-flashy'\non_map = ['<Plug>(operator-flashy']\ndepends = ['vim-operator-user']\nhook_add = '''\nmap y <Plug>(operator-flashy)\nnmap Y <Plug>(operator-flashy)$\n'''\n\n[[plugins]]\nrepo = 'emonkak/vim-operator-comment'\non_map = ['<Plug>(operator-comment)', '<Plug>(operator-uncomment)']\n"
  },
  {
    "path": ".vim/etc/plugins.toml",
    "content": "[[plugins]]\nrepo = 'thinca/vim-quickrun'\nhook_source = '''\nruntime rc/plugins/quickrun.vim\n'''\n\n[[plugins]]\nrepo = 'kana/vim-textobj-user'\n\n[[plugins]]\nrepo = 'kana/vim-textobj-indent'\ndepends = ['kana/vim-textobj-user']\n\n[[plugins]]\nrepo = 'kana/vim-textobj-line'\ndepends = ['kana/vim-textobj-user']\n\n[[plugins]]\nrepo = 'vim-jp/vimdoc-ja'\nif = '!has(\"nvim\")'\n\n[[plugins]]\nrepo = 'Shougo/unite.vim'\nif = '!has(\"nvim\")'\nhook_add = '''\nruntime rc/plugins/unite.added.vim\n'''\n\n[[plugins]]\nrepo = 'Shougo/neocomplete.vim'\nvim_version = '7.3.885'\nif = '!has(\"nvim\")'\ndisabled = '!has(\"lua\")'\nhook_add = '''\nlet g:neocomplete#enable_at_startup = 1\nlet g:neocomplete#data_directory = $VIM_CACHE_DIR . '/neocomplete'\n'''\nhook_source = '''\nruntime rc/plugins/neocomplete.vim\n'''\n\n[[plugins]]\nrepo = 'Shougo/deoplete.nvim'\nif = 'has(\"nvim\")'\nhook_add = '''\nlet g:deoplete#enable_at_startup = 1\n'''\n\n[[plugins]]\nrepo = 'LeafCage/foldCC'\nhook_source = '''\nset foldtext=FoldCCtext()\nset foldcolumn=4\n'''\n\n[[plugins]]\nrepo = 'tyru/current-func-info.vim'\n\n[[plugins]]\nrepo = 'Yggdroot/indentLine'\nhook_source = '''\nlet g:indentLine_char = '|'\nlet g:indentLine_showFirstIndentLevel = 1\n\nautocmd MyInit BufEnter \\* :IndentLinesReset<CR>\n'''\n\n[[plugins]]\nrepo = 'itchyny/lightline.vim'\nhook_add = '''\nruntime rc/plugins/lightline.vim\n'''\n\n[[plugins]]\nrepo = 'osyo-manga/vim-anzu'\nhook_add = '''\nnmap n <Plug>(anzu-n-with-echo)\nnmap N <Plug>(anzu-N-with-echo)\nnmap * <Plug>(anzu-star-with-echo)\nnmap # <Plug>(anzu-sharp-with-echo)\nnmap <Esc><Esc> <Plug>(anzu-clear-search-status)\n'''\n\n[[plugins]]\nrepo = 'Shougo/neosnippet'\nhook_add = '''\nlet g:neosnippet#disable_select_mode_mappings = 0\nlet g:neosnippet#snippets_directory = '~/.vim/snippets'\n\nimap <expr><TAB> neosnippet#expandable_or_jumpable() ? \"\\<Plug>(neosnippet_expand_or_jump)\" : pumvisible() ? \"\\<C-n>\" : \"\\<TAB>\"\nsmap <expr><TAB> neosnippet#expandable_or_jumpable() ? \"\\<Plug>(neosnippet_expand_or_jump)\" : \"\\<TAB>\"\n'''\n\n[[plugins]]\nrepo = 'kana/vim-smartinput'\nhook_add = '''\ncall smartinput#map_to_trigger('i', '<Plug>(smartinput_BS)',  '<BS>',    '<BS>')\ncall smartinput#map_to_trigger('i', '<Plug>(smartinput_C-h)', '<BS>',    '<C-h>')\ncall smartinput#map_to_trigger('i', '<Plug>(smartinput_CR)',  '<Enter>', '<Enter>')\ncall smartinput#define_rule({\n      \\   'at'    : '\\s\\+\\%#',\n      \\   'char'  : '<CR>',\n      \\   'input' : \"<C-o>:call setline('.', substitute(getline('.'), '\\\\s\\\\+$', '', ''))<CR><CR>\",\n      \\ })\ncall smartinput#define_rule({\n      \\ 'at' : '\\%#',\n      \\ 'char' : '[',\n      \\ 'input' : '[%%]<Left><Left>',\n      \\ 'filetype': ['tt2html'],\n      \\ })\n'''\n\n[[plugins]]\nrepo = 'kana/vim-smartchr'\nhook_add = '''\ninoremap <expr> = smartchr#loop(' = ', ' == ', '=')\n'''\n\n[[plugins]]\nrepo = 'sickill/vim-pasta'\n\n[[plugins]]\nrepo = 'Shougo/neosnippet-snippets'\n\n[[plugins]]\nrepo = 'Shougo/vimproc'\nbuild = 'make -f make_mac.mak'\n\n[[plugins]]\nrepo = 'editorconfig/editorconfig-vim'\n\n[[plugins]]\nrepo = 'thinca/vim-localrc'\n\n[[plugins]]\nrepo = 'Shougo/dein.vim'\n\n[[plugins]]\nrepo = 'tpope/vim-fugitive'\nhook_add = '''\nnnoremap [fugitive] <Nop>\nnmap ,g [fugitive]\n\nnnoremap [fugitive]s :<C-u>Gstatus<CR>\nnnoremap [fugitive]c :<C-u>Gcommit<CR>\nnnoremap [fugitive]C :<C-u>Gcommit --amend<CR>\nnnoremap [fugitive]b :<C-u>Gblame<CR>\nnnoremap [fugitive]a :<C-u>Gwrite<CR>\nnnoremap [fugitive]d :<C-u>Gdiff<CR>\nnnoremap [fugitive]D :<C-u>Gdiff --staged<CR>\n\nvmap ,go :Gbrowse<CR>\n\nautocmd MyInit BufReadPost fugitive://* set bufhidden=delete\n'''\n\n[[plugins]]\nrepo = 'tyru/eskk.vim'\nhook_add = '''\nimap <C-o> <Plug>(eskk:toggle)\nlet g:eskk#directory = expand('~/.vim/.eskk')\n\nlet user_dictionary = expand('~/Library/Application Support/AquaSKK/skk-jisyo.utf8')\nlet large_dictionary = expand('~/Library/Application Support/AquaSKK/SKK-JISYO.L')\n\nif filereadable(user_dictionary)\n  let g:eskk#dictionary = user_dictionary\nendif\n\nif filereadable(large_dictionary)\n  let g:eskk#large_dictionary = large_dictionary\nendif\n'''\n\n[[plugins]]\nrepo = 'toupeira/vim-desertink'\n\n[[plugins]]\nrepo = 'KeitaNakamura/neodark.vim'\n\n[[plugins]]\nrepo = 'crusoexia/vim-monokai'\n\n[[plugins]]\nrepo = 'roosta/vim-srcery'\n\n[[plugins]]\nrepo = 'altercation/vim-colors-solarized'\nif = '!has(\"nvim\")'\n\n[[plugins]]\nrepo = 'lifepillar/vim-solarized8'\nif = 'has(\"nvim\")'\n\n[[plugins]]\nrepo = 'nanotech/jellybeans.vim'\n\n[[plugins]]\nrepo = 'hail2u/h2u_colorscheme'\n\n[[plugins]]\nrepo = 'ajh17/Spacegray.vim'\n\n[[plugins]]\nrepo = 'jdkanani/vim-material-theme'\n\n[[plugins]]\nrepo = 'morhetz/gruvbox'\n\n[[plugins]]\nrepo = 'Shougo/tabpagebuffer.vim'\n\n[[plugins]]\nrepo = 'Shougo/unite-outline'\n\n[[plugins]]\nrepo = 'thinca/vim-unite-history'\n\n[[plugins]]\nrepo = 'sorah/unite-ghq'\n\n[[plugins]]\nrepo = 'ujihisa/unite-colorscheme'\n\n[[plugins]]\nrepo = 'kana/vim-operator-user'\n\n[[plugins]]\nrepo = 'tpope/vim-rhubarb'\n\n[[plugins]]\nrepo = 'w0rp/ale'\nhook_add = '''\nlet g:ale_sign_error = 'E'\nlet g:ale_sign_warning = 'W'\nlet g:ale_statusline_format = ['E%d', 'W%d', '']\nlet g:ale_lint_on_enter = 0\nlet g:ale_lint_on_text_changed = 'never'\nlet g:ale_set_loclist = 1\nlet g:ale_set_quickfix = 1\nlet g:ale_open_list = 1\nlet g:ale_keep_list_window_open = 0\n\nlet g:ale_javascript_eslint_options = '--quiet'\nlet g:ale_linters = { 'javascript': ['eslint', 'flow'] }\n\nlet g:ale_perl_perl_executable = 'env PERL5LIB=\"./local/lib/perl5\" perl'\n'''\n\n[[plugins]]\nrepo = 'Shougo/denite.nvim'\nif = 'has(\"nvim\")'\non_cmd = 'Denite'\nhook_add    = 'runtime rc/plugins/denite.added.vim'\nhook_source = 'runtime rc/plugins/denite.sourced.vim'\n\n[[plugins]]\nrepo = 'aereal/vim-colors-japanesque'\n"
  },
  {
    "path": ".vim/filetype.vim",
    "content": "autocmd BufEnter */templates/*.html setf tt2html\nautocmd BufEnter *.tt setf tt2html\n\nautocmd BufEnter *.es6,*.es setf javascript\n\nautocmd BufEnter */nginx/*.conf setf nginx\nautocmd BufEnter */*.nginx.conf setf nginx\n\nautocmd BufEnter cpanfile setf cpanfile\nautocmd BufEnter cpanfile set syntax=perl.cpanfile\nautocmd BufEnter *.t setf perl\nautocmd BufEnter *.psgi setf perl\n\nautocmd BufEnter *.podspec setf ruby\nautocmd BufEnter Podfile   setf ruby\n\nautocmd BufEnter *.hatena setf hatena\n\nautocmd BufEnter *.scala setf scala\n\nautocmd BufEnter *.toml setf toml\n"
  },
  {
    "path": ".vim/gvimrc",
    "content": "let g:macvim_skip_cmd_opt_movement = 1\n\nset bg=dark\n\nif has(\"gui_running\")\n  try\n    colorscheme japanesque\n  catch\n    colorscheme desert\n  endtry\n\n  set guifontwide=SourceHanCodeJP-Regular:h14\n  set guifont=FiraMono-Regular:h14\n  set tranparency=15\nendif\n"
  },
  {
    "path": ".vim/plugin/memolist-templates/hatena.txt",
    "content": "* {{_title_}}\n\n"
  },
  {
    "path": ".vim/rc/00_autocmd.vim",
    "content": "augroup MyInit\n  autocmd!\naugroup END\n\n\" screen title {{{\nif ! has('gui_running')\n  autocmd MyInit BufEnter * if bufname(\"\") !~ \"^\\[A-Za-z0-9\\]://\" | silent! exe '!echo -n \"\u001bk%:t\u001b\\\\\"' | endif\nendif \" }}}\n\" Markdown {{{\nautocmd MyInit FileType markdown setlocal et ts=4 sts=4 sw=4\n\" }}}\n\" Close window with `q` key {{{\nautocmd MyInit FileType help,ref-*,tap-result nnoremap <buffer> q :q<CR>\n\" }}}\n\" Git config {{{\nautocmd MyInit FileType gitconfig setlocal noexpandtab\n\" }}}\n\n\" function! ReloadConfig() abort\n\"   call dein#clear_state()\n\"   source $MYVIMRC\n\"   if has('gui_running')\n\"     source $MYGVIMRC\n\"   endif\n\" endfunction\n\" autocmd MyInit BufWritePost *vimrc,*gvimrc,*/rc/*.vim call ReloadConfig()\n\nfunction! LooksLikePerlProject(project_root) abort\n  let cpanfile = a:project_root . '/cpanfile'\n  if filereadable(cpanfile)\n    return 1\n  else\n    return 0\n  endif\nendfunction\n\nfunction! ConfigureCartonPath() abort\n  let project_root = getcwd()\n  let is_perl = LooksLikePerlProject(project_root)\n  let t:is_perl_project = is_perl\n  let w:is_perl_project = is_perl\n  if is_perl\n    let paths = [\n          \\ project_root . '/lib',\n          \\ project_root . '/local/lib/perl5',\n          \\ project_root . '/templates',\n          \\ ]\n    execute \"setlocal path+=\" . join(paths, ',')\n  endif\nendfunction\nautocmd MyInit BufEnter,TabEnter * call ConfigureCartonPath()\n\n\nfunction! SetupCustomHighlightLinks() abort\n  highlight! link Noise Conceal\n\n  \" Perl\n  highlight! link perlVarPlain Identifier\n  highlight! link perlVarPlain2 Identifier\n  highlight! link perlStatementStorage StorageClass\n  highlight! link perlSharpBang Comment\n  highlight! link perlStringStartEnd Conceal\n  highlight! link perlMatchStartEnd Conceal\n  highlight! link perlFunction Statement\n  highlight! link perlSubName Function\n  highlight! link perlOperator Operator\n  highlight! link perlMethod Function\n  highlight! link perlStatementInclude Include\n\n  \" JavaScript\n  highlight! link jsObjectKey Type\n  highlight! link jsFuncCall Function\n\n  \" HTML\n  highlight! link htmlTag Conceal\n  highlight! link htmlEndTag Conceal\n  highlight! link htmlTagName Identifier\n\n  \" TT2\n  highlight! link tt2_tag Conceal\n  highlight! link tt2_bracket_r Conceal\n  highlight! link tt2_operator Conceal\n\n  \" TypeScript\n  highlight! link typescriptEndColons Conceal\n  highlight! link typescriptParens Conceal\n  highlight! link typescriptBraces Conceal\n\n  \" Git\n  highlight! link gitcommitWarning WarningMsg\n\n  \" Fugitive\n  highlight! link FugitiveblameDelimiter Delimiter\n\n  \" Ruby\n  highlight! link rubyStringDelimiter Conceal\n\n  \" Vim\n  highlight! link vimParenSep Conceal\n\n  \" Markdown\n  highlight! link mkdDelimiter Statement\n\n  \" YAML\n  highlight! link yamlKeyValueDelimiter Statement\n\n  highlight! link SignColumn LineNr\nendfunction\n\nautocmd MyInit ColorScheme * call SetupCustomHighlightLinks()\n\n\" vim:set foldmethod=marker:\n"
  },
  {
    "path": ".vim/rc/00_base.vim",
    "content": "set hidden\nset history=1000\nset autoread\nset fileformats=unix,dos,mac\nset scrolloff=100000 \" 常にカーソルのある行を中心に (したい)\nset backspace=indent,eol,start\nset formatoptions-=ro\nset ttyfast\n\" set lazyredraw\nset completeopt=menuone,menu\n\n\" Cache directory {{{\nif !exists('$VIM_CACHE_DIR')\n  if isdirectory(expand($TMPDIR))\n    let tmp_dir = expand($TMPDIR)\n  else\n    let tmp_dir = '/tmp'\n  endif\n  let path_separator = '/'\n  let path_cmps = split(simplify(tmp_dir), path_separator, 1)\n  let $VIM_CACHE_DIR = simplify(join(extend(path_cmps, ['vim']), path_separator))\n  unlet tmp_dir path_separator path_cmps\nendif\n\nif !isdirectory(expand($VIM_CACHE_DIR))\n  call mkdir($VIM_CACHE_DIR, 'p')\nendif\n\" }}}\n\n\" Backup & Swap {{{\nset nobackup\nset swapfile\nset directory=~/.vim/swp\n\" }}}\n\" Indentation {{{\nset autoindent\nset nosmartindent\nset nocindent\nset smarttab\nset shiftwidth=2\nset tabstop=2\nset softtabstop=2\nset expandtab\nset shiftround\n\" }}}\n\" Encoding {{{\nset fileencodings=utf-8,iso-2022-jp,euc-jp,cp932,ucs-bom,default,latin1\nset encoding=utf-8\nset termencoding=utf-8\n\" }}}\n\" Search {{{\nset ignorecase\nset smartcase\nset hlsearch\nset incsearch\nset wrapscan\n\" }}}\n\" Visualization {{{\nset ambiwidth=double\nset list\nset listchars=tab:»\\ ,precedes:<,extends:>,trail:_,eol:↲\n\" }}}\n\" UI {{{\nset langmenu=none \" メニューをローカライズしない\nset laststatus=2\nset number\nset ruler\nset modeline\nset noshowcmd\nset noshowmode\nset shortmess+=I\n\nif v:version >= 704\n  \" set relativenumber \" 7.4 以降だと絶対行数も表示される\nendif\n\" }}}\n\" IME {{{\nset noimdisable\nset iminsert=0 imsearch=0\nset noimcmdline\n\" }}}\n\" Persistent Undo {{{\nif has('persistent_undo')\n  set undodir=~/.vim/undo\n  set undofile\nendif\n\" }}}\n\" Clipboard Integration {{{\nif has('clipboard')\n  if has('nvim')\n    set clipboard+=unnamedplus\n  else\n    set clipboard=unnamed,autoselect\n  endif\nendif\n\" }}}\n\" fish-shell fix {{{\nif $SHELL =~# 'fish$'\n  if executable('zsh')\n    set shell=zsh\n  else\n    set shell=sh\n  endif\nendif\n\" }}}\n\nif has('gui_running')\n  set guioptions&\n  set guioptions-=T\n  set guioptions-=m\n  set guioptions-=r\n  set guioptions-=R\n  set guioptions-=l\n  set guioptions-=l\n  set guioptions-=L\n  set guioptions-=L\n  set guioptions-=b\n  set guioptions-=e\nendif\n\n\" vim:set foldmethod=marker:\n"
  },
  {
    "path": ".vim/rc/10_dein.vim",
    "content": "set runtimepath& runtimepath^=~/devel/src/github.com/Shougo/dein.vim\n\nlet s:dein_cache_dir = expand('~/.vim/cache/dein')\nlet s:plugins_toml = expand('~/.vim/etc/plugins.toml')\nlet s:lazy_plugins_toml = expand('~/.vim/etc/lazy.toml')\nlet s:operator_plugins_toml = expand('~/.vim/etc/operator.toml')\n\nif dein#load_state(s:dein_cache_dir)\n  call dein#begin(s:dein_cache_dir, [\n        \\ expand('<sfile>'),\n        \\ s:plugins_toml,\n        \\ s:lazy_plugins_toml,\n        \\ s:operator_plugins_toml,\n        \\ ])\n\n  call dein#load_toml(s:plugins_toml)\n  call dein#load_toml(s:lazy_plugins_toml, { 'lazy': 1 })\n  call dein#load_toml(s:operator_plugins_toml, { 'lazy': 1, 'depends': ['vim-operator-user'] })\n  call dein#local('~/devel/src/github.com/aereal', {\n        \\ 'frozen': 1,\n        \\ 'merged': 1,\n        \\ }, ['vim-*'])\n\n  call dein#end()\n  call dein#save_state()\nendif\n\nif dein#check_install()\n  call dein#install()\nendif\n\nunlet s:dein_cache_dir\n"
  },
  {
    "path": ".vim/rc/20_command.vim",
    "content": "command! Sketch call s:sketch() \" {{{\nfunction! s:sketch() \" {{{\n  if !exists('g:sketch_dir')\n    let g:sketch_dir = expand('~/sketches')\n  endif\n\n  if !isdirectory(g:sketch_dir)\n    call mkdir(g:sketch_dir, 'p')\n  endif\n\n  let basename = strftime('%Y%m%d%H%M%S')\n  let filename = g:sketch_dir . '/' . basename\n  execute ':edit ' . filename\nendfunction \" }}}\n\" }}}\n\ncommand! Prove call s:prove()\nfunction! s:prove()\n  let func_name = cfi#format('%s', '')\n  if func_name != ''\n    let $TEST_METHOD = func_name\n  endif\n  call tap#prove()\nendfunction \" }}}\n\ncommand! Memo call s:memo()\nfunction! s:memo()\n  let memo_root = expand('~/memo')\n  let dt = strftime('%Y%m%d-%H%M%S')\n  let suffix = '.md'\n  let filename = memo_root . '/' . dt . suffix\n\n  execute \":edit \" . filename\nendfunction\n\nfunction! s:get_syn_id(transparent)\n  let synid = synID(line(\".\"), col(\".\"), 1)\n  if a:transparent\n    return synIDtrans(synid)\n  else\n    return synid\n  endif\nendfunction\nfunction! s:get_syn_attr(synid)\n  let name = synIDattr(a:synid, \"name\")\n  let ctermfg = synIDattr(a:synid, \"fg\", \"cterm\")\n  let ctermbg = synIDattr(a:synid, \"bg\", \"cterm\")\n  let guifg = synIDattr(a:synid, \"fg\", \"gui\")\n  let guibg = synIDattr(a:synid, \"bg\", \"gui\")\n  return {\n        \\ \"name\": name,\n        \\ \"ctermfg\": ctermfg,\n        \\ \"ctermbg\": ctermbg,\n        \\ \"guifg\": guifg,\n        \\ \"guibg\": guibg}\nendfunction\nfunction! s:get_syn_info()\n  let baseSyn = s:get_syn_attr(s:get_syn_id(0))\n  echo \"name: \" . baseSyn.name .\n        \\ \" ctermfg: \" . baseSyn.ctermfg .\n        \\ \" ctermbg: \" . baseSyn.ctermbg .\n        \\ \" guifg: \" . baseSyn.guifg .\n        \\ \" guibg: \" . baseSyn.guibg\n  let linkedSyn = s:get_syn_attr(s:get_syn_id(1))\n  echo \"link to\"\n  echo \"name: \" . linkedSyn.name .\n        \\ \" ctermfg: \" . linkedSyn.ctermfg .\n        \\ \" ctermbg: \" . linkedSyn.ctermbg .\n        \\ \" guifg: \" . linkedSyn.guifg .\n        \\ \" guibg: \" . linkedSyn.guibg\nendfunction\ncommand! SyntaxInfo call s:get_syn_info()\n"
  },
  {
    "path": ".vim/rc/20_key.vim",
    "content": "let mapleader   = ';'\nlet g:mapleader = ';'\n\nnnoremap j gj\nnnoremap k gk\nnnoremap Y y$\n\nnnoremap <Leader><Space> :update<CR>\nnnoremap <ESC><ESC>      :nohlsearch<CR>\n\nnnoremap Q <Nop>\nnnoremap ZQ <Nop>\nnnoremap ZZ <Nop>\n\nnnoremap ) %\nnnoremap ( %\n\nnnoremap H ^\nnnoremap L $\n\nnnoremap ]q :<C-u>cnext<CR>\nnnoremap [q :<C-u>cprev<CR>\n\nxnoremap < <gv\nxnoremap > >gv\n"
  },
  {
    "path": ".vim/rc/20_tab.vim",
    "content": "set showtabline=2\n"
  },
  {
    "path": ".vim/rc/command_line_window.vim",
    "content": "nnoremap <SID>(command-line-enter) q:\nxnoremap <SID>(command-line-enter) q:\nnnoremap <SID>(command-line-norange) q:<C-u>\nnmap : <SID>(command-line-enter)\nxmap : <SID>(command-line-enter)\n\nautocmd MyInit CmdwinEnter * call s:init_cmdwin()\n\nfunction! s:init_cmdwin() \" {{{\n  nnoremap <silent><buffer> q :<C-u>quit<CR>\n  nnoremap <silent><buffer> <TAB> :<C-u>quit<CR>\n  inoremap <buffer><expr><CR>  pumvisible() ? \"\\<C-y>\\<CR>\"  : \"\\<CR>\"\n  inoremap <buffer><expr><C-h> pumvisible() ? \"\\<C-y>\\<C-h>\" : \"\\<C-h>\"\n  inoremap <buffer><expr><BS>  pumvisible() ? \"\\<C-y>\\<C-h>\" : \"\\<C-h>\"\n  inoremap <buffer><expr><TAB> pumvisible() ? \"\\<C-n>\" : \"\\<TAB>\"\n\n  startinsert!\nendfunction \" }}}\n"
  },
  {
    "path": ".vim/rc/plugins/denite.added.vim",
    "content": "nnoremap <SID>[denite] <Nop>\nnmap gj <SID>[denite]\n\nnmap <SID>[denite]p <SID>(project-files)\nnmap <SID>[denite]f <SID>(files)\nnmap <SID>[denite]F <SID>(files-from-buffer)\nnmap <SID>[denite][ <SID>(outline)\nnmap <SID>[denite]b <SID>(buffers)\n\nnnoremap <silent> <SID>(project-files) :<C-u>Denite file/rec -buffer-name=files -source-names=hide<CR>\nnnoremap <silent> <SID>(files) :<C-u>DeniteProjectDir file file:new -buffer-name=files -source-names=hide<CR>\nnnoremap <silent> <SID>(files-from-buffer) :<C-u>DeniteBufferDir file file:new -buffer-name=files -source-names=hide<CR>\nnnoremap <silent> <SID>(buffers) :<C-u>Denite buffer<CR>\nnnoremap <silent> <SID>(outline) :<C-u>Denite outline<CR>\n"
  },
  {
    "path": ".vim/rc/plugins/denite.sourced.vim",
    "content": "call denite#custom#option('default', 'prompt', '>')\ncall denite#custom#option('files', 'prompt', '>')\n\nif executable('rg')\n  call denite#custom#var('file_rec', 'command', ['rg', '--files', '--glob', '!.git', '--glob', '!*.{png,jpg,min.js,gif,svg,woff,woff2,eot,ttf,otf,ico}'])\n  call denite#custom#var('grep', 'command', 'rg')\nendif\n\ncall denite#custom#map('normal', '<C-w>h', '<denite:do_action:vsplitswitch>', 'noremap')\ncall denite#custom#map('normal', '<C-w>l', '<denite:do_action:vsplitswitch>', 'noremap')\n\ncall denite#custom#map('normal', '<C-w>j', '<denite:do_action:splitswitch>', 'noremap')\ncall denite#custom#map('normal', '<C-w>k', '<denite:do_action:splitswitch>', 'noremap')\n"
  },
  {
    "path": ".vim/rc/plugins/lightline.vim",
    "content": "if ! exists('g:lightline')\n  let g:lightline = {}\nendif\nif ! has_key(g:lightline, 'component')\n  let g:lightline.component = {}\nendif\nif ! has_key(g:lightline, 'component_visible_condition')\n  let g:lightline.component_visible_condition = {}\nendif\nlet g:lightline.colorscheme = 'seoul256'\nlet g:lightline.component.anzu     = '%{anzu#search_status()}'\nlet g:lightline.component.fugitive = '%{fugitive#head()}'\nlet g:lightline.component_visible_condition.fugitive = '(exists(\"*fugitive#head\") && \"\"!=fugitive#head())'\nlet g:lightline.active = {\n      \\ 'right': [\n      \\   ['syntastic', 'lineinfo'],\n      \\   ['percent'],\n      \\   ['fileformat', 'fileencoding', 'filetype'],\n      \\ ],\n      \\ 'left' : [\n      \\   ['mode', 'paste'],\n      \\   ['fugitive'],\n      \\   ['readonly', 'filename', 'modified'],\n      \\   ['ale']\n      \\ ],\n      \\ }\nlet g:lightline.component_expand = {\n      \\ 'syntastic' : 'SyntasticStatuslineFlag',\n      \\ }\nlet g:lightline.component_type = {\n      \\ 'syntastic' : 'error',\n      \\ }\nlet g:lightline.component_function = {\n      \\ 'ale' : 'ALEGetStatusLine',\n      \\ }\nlet g:lightline.tabline = {\n      \\ 'left': [ ['tabs'] ],\n      \\ }\nlet g:lightline.tab = {\n      \\ 'active'   : ['tabnum', 'readonly', 'filename', 'modified'],\n      \\ 'inactive' : ['tabnum', 'readonly', 'filename', 'modified'],\n      \\ }\n"
  },
  {
    "path": ".vim/rc/plugins/neocomplete.vim",
    "content": "if ! exists('g:neocomplete#force_omni_input_patterns')\n  let g:neocomplete#force_omni_input_patterns = {}\nendif\n\nlet g:neocomplete#enable_smart_case = 1\nlet g:neocomplete#max_list = 1000\n\nlet g:neocomplete#force_overwrite_completefunc = 1\nlet g:neocomplete#force_omni_input_patterns.c      = '[^.[:digit:] *\\t]\\%(\\.\\|->\\)'\nlet g:neocomplete#force_omni_input_patterns.objc   = '[^.[:digit:] *\\t]\\%(\\.\\|->\\)\\|\\h\\w*::'\nlet g:neocomplete#force_omni_input_patterns.cpp    = '[^.[:digit:] *\\t]\\%(\\.\\|->\\)\\|\\h\\w*::'\nlet g:neocomplete#force_omni_input_patterns.objcpp = '[^.[:digit:] *\\t]\\%(\\.\\|->\\)\\|\\h\\w*::'\n\nlet g:neocomplete#sources#syntax#min_keyword_length = 3\n\nlet g:neocomplete#keyword_patterns                  = {}\nlet g:neocomplete#keyword_patterns.default          = '\\h\\w*'\n\nlet g:neocomplete#delimiter_patterns                = {}\nlet g:neocomplete#delimiter_patterns.vim            = ['#']\nlet g:neocomplete#delimiter_patterns.perl = []\nlet g:neocomplete#delimiter_patterns.ruby           = ['::']\n\ncall neocomplete#custom#source('omni', 'rank', 7)\ncall neocomplete#custom#source('omni', 'converters', ['converter_remove_last_paren'])\n\nimap <expr> <C-h> neocomplete#smart_close_popup() . \"\\<Plug>(smartinput_C-h)\"\nimap <expr> <BS>  neocomplete#smart_close_popup() . \"\\<Plug>(smartinput_BS)\"\ninoremap <expr> <C-g> neocomplete#undo_completion()\n\nautocmd MyInit CmdwinEnter * let b:neocomplete_sources = ['vim']\n"
  },
  {
    "path": ".vim/rc/plugins/quickrun.vim",
    "content": "if !exists('g:quickrun_config')\n  let g:quickrun_config = {}\nendif\nlet g:quickrun_config['prove/carton'] = {\n      \\ 'exec'    : 'carton exec -- %c %o %s',\n      \\ 'command' : 'prove',\n      \\ }\nlet g:quickrun_config['prove/carton/contextual'] = extend(g:quickrun_config['prove/carton'], {\n      \\ 'exec' : 'TEST_METHOD=%a ' . g:quickrun_config['prove/carton'].exec,\n      \\ })\n\" let g:quickrun_config.vim = {\n\"       \\ 'outputter' : 'error',\n\"       \\ 'outputter/error/success' : 'null',\n\"       \\ 'outputter/error/error' : 'buffer',\n\"       \\ }\n\n\" vim:set foldmethod=marker:\n"
  },
  {
    "path": ".vim/rc/plugins/syntastic.added.vim",
    "content": "let g:syntastic_mode_map = {\n      \\ 'mode' : 'passive',\n      \\ }\n\naugroup auto-syntastic\n  autocmd!\n  autocmd BufWritePost *.rb, *.js, *.scala call s:syntastic()\naugroup END\n\nfunction! s:syntastic() abort\n  SyntasticCheck\n  call lightline#update()\nendfunction\n"
  },
  {
    "path": ".vim/rc/plugins/unite.added.vim",
    "content": "\" mapping {{{\nnnoremap <SID>[unite] <Nop>\nnmap gj <SID>[unite]\n\nnmap <SID>[unite]p <SID>(project-files)\nnmap <SID>[unite]f <SID>(files)\nnmap <SID>[unite]F <SID>(files-from-buffer)\nnmap <SID>[unite]w <SID>(windows)\nnmap <SID>[unite][ <SID>(outline)\nnmap <SID>[unite]: <SID>(history)\nnmap <SID>[unite]q <SID>(quickfix)\nnmap <SID>[unite]t <SID>(tabs)\nnmap <SID>[unite]B <SID>(buffers)\nnmap <SID>[unite]mv <SID>(rename)\nnmap <SID>[unite]G <SID>(ghq-list)\n\nif has('gui_running')\n  nmap <SID>[unite]b <SID>(tab-buffers)\nelse\n  nmap <SID>[unite]b <SID>(buffers)\nendif\n\n\" definitions {{{\nnnoremap <silent> <SID>(project-files) :<C-u>Unite file_rec/git -hide-source-names -buffer-name=files<CR>\nnnoremap <silent> <SID>(files) :<C-u>UniteWithCurrentDir file file/new -hide-source-names -buffer-name=files<CR>\nnnoremap <silent> <SID>(files-from-buffer) :<C-u>UniteWithBufferDir file file/new -hide-source-names -buffer-name=files<CR>\nnnoremap <silent> <SID>(windows) :<C-u>Unite window:no-current -no-empty<CR>\nnnoremap <silent> <SID>(outline) :<C-u>Unite outline -hide-source-names -winwidth=40 -buffer-name=outline<CR>\nnnoremap <silent> <SID>(history) :<C-u>Unite history/command -start-insert<CR>\nnnoremap <silent> <SID>(quickfix) :<C-u>Unite quickfix -no-quit -no-empty -auto-resize -buffer-name=quickfix<CR>\nnnoremap <silent> <SID>(tabs) :<C-u>Unite tab:no-current -no-empty -immediately<CR>\nnnoremap <silent> <SID>(tab-buffers) :<C-u>Unite buffer_tab -no-empty<CR>\nnnoremap <silent> <SID>(buffers) :<C-u>Unite buffer -no-empty<CR>\nnnoremap <silent><expr> <SID>(rename) ':<C-u>Unite file -input=' . expand('%:p') . ' -default-action=exrename -immediately<CR>'\nnnoremap <silent> <SID>(ghq-list) :<C-u>Unite ghq<CR>\n\" }}}\n\" }}}\nfunction! s:unite_my_settings() \" {{{\n  let unite = unite#get_current_unite()\n\n  nmap <buffer> <BS> <Plug>(unite_delete_backward_path)\n\n  nnoremap <buffer><silent><expr> <C-w>h unite#do_action('left')\n  nnoremap <buffer><silent><expr> <C-w>l unite#do_action('right')\n  nnoremap <buffer><silent><expr> <C-w>j unite#do_action('below')\n  nnoremap <buffer><silent><expr> <C-w>k unite#do_action('above')\n\n  nnoremap <buffer><silent><expr> p unite#do_action('preview')\n\n  if unite.buffer_name == 'files'\n    nnoremap <buffer><silent><expr> r unite#do_action('rename')\n  endif\nendfunction \" }}}\n\" variables {{{\nlet g:unite_data_directory = $VIM_CACHE_DIR . '/unite'\nlet g:unite_force_overwrite_statusline = 0\n\nif executable('ag')\n  let g:unite_source_grep_command        = 'ag'\n  let g:unite_source_grep_default_opts   = '--nocolor --nogroup'\n  let g:unite_source_grep_recursive_opt  = ''\n  let g:unite_source_grep_max_candidates = 200\nendif\n\" }}}\n\" autocmd {{{\nautocmd MyInit FileType unite nmap <buffer><BS> <Plug>(unite_delete_backward_path)\nautocmd MyInit FileType unite call s:unite_my_settings()\n\" }}}\n\" Custom sources {{{\n\" unite-git-files-conflict {{{\nlet s:unite_git_files_conflict = {\n      \\   'name' : 'git/files/conflict',\n      \\ }\nfunction! s:unite_git_files_conflict.gather_candidates(args, context)\n  let output = unite#util#system('git diff-files --name-only --diff-filter=U')\n  let candidates = map(split(output, \"\\n\"), '{\n        \\ \"word\" : fnamemodify(v:val, \":p\"),\n        \\ \"source\" : \"git/files/conflict\",\n        \\ \"kind\" : \"file\",\n        \\ \"action__path\" : fnamemodify(v:val, \":p\"),\n        \\ }')\n  return candidates\nendfunction\ncall unite#define_source(s:unite_git_files_conflict)\n\" }}}\n\" unite-git-files-modified {{{\nlet s:unite_git_files_modified = {\n      \\   'name' : 'git/files/modified',\n      \\ }\nfunction! s:unite_git_files_modified.gather_candidates(args, context)\n  let output = unite#util#system('git ls-files --modified')\n  let candidates = map(split(output, \"\\n\"), '{\n        \\ \"word\" : fnamemodify(v:val, \":p\"),\n        \\ \"source\" : \"git/files/modified\",\n        \\ \"kind\" : \"file\",\n        \\ \"action__path\" : fnamemodify(v:val, \":p\"),\n        \\ }')\n  return candidates\nendfunction\ncall unite#define_source(s:unite_git_files_modified)\n\" }}}\n\" unite-git-files-others {{{\nlet s:unite_git_files_others = {\n      \\   'name' : 'git/files/others',\n      \\ }\nfunction! s:unite_git_files_others.gather_candidates(args, context)\n  let output = unite#util#system('git ls-files --others --exclude-standard')\n  let candidates = map(split(output, \"\\n\"), '{\n        \\ \"word\" : fnamemodify(v:val, \":p\"),\n        \\ \"source\" : \"git/files/others\",\n        \\ \"kind\" : \"file\",\n        \\ \"action__path\" : fnamemodify(v:val, \":p\"),\n        \\ }')\n  return candidates\nendfunction\ncall unite#define_source(s:unite_git_files_others)\n\" }}}\n\" }}}\n\ncall unite#custom#default_action('source/ghq/*', 'tabnew_lcd')\n\n\" converter_relative_abbr: 候補を表示するときに相対パスに\n\" matcher_project_files: 候補はリポジトリのファイルからのみ\ncall unite#custom#source('file_mru', 'matchers', ['converter_relative_abbr', 'matcher_project_files', 'matcher_fuzzy'])\n\nlet s:unite_project_ignore_pattern = '\\.\\(gif\\|jpe\\?g\\|png\\|min\\.js\\|vendor\\)'\ncall unite#custom#source('file_rec/git', 'ignore_pattern', s:unite_project_ignore_pattern)\n\n\" vim:set foldmethod=marker:\n"
  },
  {
    "path": ".vim/rc/plugins/watchdogs.vim",
    "content": "let g:watchdogs_check_BufWritePost_enable = 1\nlet g:watchdogs_check_BufWritePost_enables = {\n      \\ \"typescript\": 0,\n      \\ }\nif !exists('g:quickrun_config')\n  let g:quickrun_config = {}\nendif\nlet g:quickrun_config['watchdogs_checker/_'] = {\n      \\   'outputter/quickfix/open_cmd' : '',\n      \\   'hook/hier_update/enable_exit' : 1,\n      \\   'runner/vimproc/updatetime' : 40,\n      \\ }\nlet g:quickrun_config['watchdogs_checker/efm_perl'] = {\n      \\   'command' : expand('~/.vim/tools/efm_perl.pl'),\n      \\   'exec' : '%c %o %s:p',\n      \\   'quickfix/errorformat' : '%f:%l:%m',\n      \\ }\nlet g:quickrun_config['watchdogs_checker/cpanfile'] = {\n      \\   'command' : 'perl',\n      \\   'exec' : '%c %o -w -MModule::CPANfile -e \"Module::CPANfile->load(q|%S:p|)\"',\n      \\   'quickfix/errorformat' : '%m\\ at\\ %f\\ line\\ %l%.%#',\n      \\ }\nlet g:quickrun_config['perl/watchdogs_checker'] = {\n      \\   'type' : 'watchdogs_checker/efm_perl',\n      \\ }\nlet g:quickrun_config['cpanfile/watchdogs_checker'] = {\n      \\   'type' : 'watchdogs_checker/cpanfile',\n      \\ }\ncall watchdogs#setup(g:quickrun_config)\n"
  },
  {
    "path": ".vim/snippets/eruby.snip",
    "content": "snippet case\n\t<% case ${1:object} %>\n\t<% when ${2:condition} %>\n\t\t${3}\n\t<% end %>\nsnippet when\n\t<% when ${1:condition} %>\n\t\t${2}\nsnippet if\n\t<% if ${1:condition} %>\n\t\t${2}\n\t<% end %>\nsnippet ife\n\t<% if ${1:condition} %>\n\t\t${2}\n\t<% else %>\n\t\t${3}\n\t<% end %>\nsnippet unless\n\t<% unless ${1:condition} %>\n\t\t${2}\n\t<% end %>\n"
  },
  {
    "path": ".vim/snippets/io.snip",
    "content": "snippet     if\n\tif(${1:/* condition */}, ${2:/* then-clause */})\n\nsnippet ife\n\tif(${1:/* condition */}, ${2:/* then-clause */}, ${3:/* else-clause */})\n"
  },
  {
    "path": ".vim/snippets/javascript.snippet",
    "content": "snippet func\nalias   function\n\tfunction (${0:args}) {${1:body}};\n\nsnippet if\n\tif (${1:true}) ${0:$TM_SELECTED_TEXT}\n\nsnippet for\n\tfor (var ${2:i}=0; $2 < ${1:Things}.length; $2++) {\n\t\t${0}\n\t};\n"
  },
  {
    "path": ".vim/snippets/markdown.snippet",
    "content": "snippet link\n\t[${1:#:title}](${2:#:url})\n\nsnippet link_paste\n\t[${1}](`getreg('+')`)\n\nsnippet image\n\t![${1:#:alt text}](${2:#:url})\n\nsnippet image_paste\n  ![${1}](`getreg('+')`)\n\nsnippet     README\noptions     head\n\t# ${1:NAME}\n\n\t${2:DESCRIPTION}\n\n\t## Usage\n\n\t${3:USAGE}\n\n\t## License\n\n\t${4:LICENSE}\n\n# vim:set ft=neosnippet noexpandtab:\n"
  },
  {
    "path": ".vim/snippets/objc.snip",
    "content": "\" vim:set noexpandtab:\n\nsnippet import\n\t#import \"${1:Header}.h\"\n\nsnippet if\n\tif (${1:condition}) {\n\t\t${2}\n\t}\n\nsnippet else\n\telse {\n\t\t${1}\n\t}\n\nsnippet elif\nabbr else_if\n\telse if (${1:condition}) {\n\t\t${2}\n\t}\n\nsnippet method\nabbr instance_method\n\t- (${1:ReturnType})${2:MethodName}\n\t{\n\t\t${3}\n\t}\n\nsnippet cmethod\nabbr class_method\n\t+ (${1:ReturnType})${2:MethodName}\n\t{\n\t\t${3}\n\t}\n\nsnippet for_in\n\tfor (${1:value} in ${2:FastEnumeration}) {\n\t\t${3}\n\t}\n\nsnippet block\n\t^(${1:args}) {\n\t\t${2}\n\t}\n\nsnippet extern\n\textern ${1:type} const ${2:Constant};\n\nsnippet const\n\t${1:type} const ${2:NAME} = ${3:value};\n"
  },
  {
    "path": ".vim/snippets/perl.snip",
    "content": "# vim:set ft=snippet noet:\nsnippet pl\n\t#!/usr/bin/env perl\n\n\tuse strict;\n\tuse warnings;\nalias shebang\n\nsnippet use\n\tuse ${1:Package};\n\nsnippet uselib\n\tuse lib 'lib', glob \"${1:Package}\";\n\nsnippet ddd\n\trequire Data::Dumper;\n\tsub p ($) { warn Data::Dumper->new(\\@_)->Useqq(1)->Terse(1)->Dump(); }\n\t${1}\n\nsnippet     sub_self\noptions     head\n\tsub ${1:method} {\n\t\tmy ($self${2:#:rest args}) = @_;\n\t\t${3:# body}\n\t}\n\nsnippet     sub_class\noptions     head\n\tsub ${1:method} {\n\t\tmy ($class${2:#:rest args}) = @_;\n\t\t${3:#:# body}\n\t}\n\nsnippet     package\noptions     head\n\tpackage ${1:`substitute(substitute(expand('%:p:r'), '.*/lib/', '', 'g'), '/', '::', 'g')`};\n\n\tuse strict;\n\tuse warnings;\n\n\t${2:#:body}\n\n\t1;\n\nsnippet     package_block\noptions     head\n\tpackage ${1:`substitute(substitute(expand('%:p:r'), '.*/lib/', '', 'g'), '/', '::', 'g')`} {\n\t\t${2:#:body}\n\t}\n\nsnippet     t\noptions     head\n\tpackage ${1:`substitute(substitute(expand('%:p:r'), '.*/t/', 't-', 'g'), '-', '::', 'g')`};\n\n\tsub _require : Test(startup => 1) {\n\t\trequire_ok '${2:`substitute(substitute(expand('%:p:r'), '.*/t/', '', 'g'), '-', '::', 'g')`}';\n\t}\n\n\t${2:#:# body}\n\n\t1;\n\nsnippet     subtest\n\tsubtest ${1:test_name} => sub {\n\t\t${2:#:body}\n\t};\n\nsnippet     tests\n\tsub ${1:test_name} : Tests {\n\t\t${2:#:body}\n\t}\n\nsnippet todo_test\n\tTODO: {\n\t\tlocal $TODO = '${1:reason}';\n\t\tfail '$1';\n\t};\n"
  },
  {
    "path": ".vim/snippets/rspec.snip",
    "content": "snippet describe\n    describe ${1:object} do\n        ${2}\n    end\n\nsnippet it\n    it \"${1:description}\" do\n        ${2}\n    end\n\nsnippet specify\n    specify \"${1:description}\" do\n        ${2}\n    end\n\nsnippet context\n    context \"${1:case}\" do\n        ${2}\n    end\n\nsnippet expect\n    expect { ${1:subject} }.${2:to} \\\n        ${3}\n\nsnippet change change ... from ... by ...\n    change { ${1:object} }.from(${2:pre}).to(${3:post})\n\nsnippet change change ... by\n    change { ${1:object} }.by(${2:pre})\n\nsnippet let\n    let(:${1:name}) { ${2} }\n\nsnippet let!\n    let!(:${1:name}) { ${2} }\n"
  },
  {
    "path": ".vim/snippets/ruby.snip",
    "content": "# vim:set ft=snippet noet:\nsnippet shebang\n\t#!/usr/bin/env ruby\n\nsnippet =b\n\t=begin rdoc\n\t\t${1}\n\t=end\n\nsnippet beg\nabbr begin rescue end\n\tbegin\n\t\t${3}\n\trescue ${1:Exception} => ${2:e}\n\tend\n\nsnippet req\n\trequire \"${1}\"${2}\n\nsnippet case\n\tcase ${1:object}\n\twhen ${2:condition}\n\t\t${3}\n\tend\n\nsnippet when\n\twhen ${1:condition}\n\t\t${2}\n\nsnippet if\n\tif ${1:condition}\n\t\t${2}\n\tend\n\nsnippet if else\n\tif ${1:condition}\n\t\t${2}\n\telse\n\t\t${3}\n\tend\n\nsnippet unless\n\tunless ${1:condition}\n\t\t${2}\n\tend\n\nsnippet while\n\twhile ${1:condition}\n\t\t${2}\n\tend\n\nsnippet for\n\tfor ${1:e} in ${2:c}\n\t\t${3}\n\tend\n\nsnippet until\n\tuntil ${1:condition}\n\t\t${2}\n\tend\n\nsnippet module\n\tmodule ${1:ModuleName}\n\t\t${2}\n\tend\n\nsnippet class\n\tclass ${1:ClassName}\n\t\t${2}\n\tend\n\nsnippet class self\nabbr class << self\n\tclass << self\n\t\t${1}\n\tend\n\nsnippet def\n\tdef ${1:method_name}\n\t\t${2}\n\tend\n\nsnippet defs\nabbr def self.method ... end\n\tdef self.${1:class_method_name}\n\t\t${2}\n\tend\n\nsnippet atr\nabbr attr_reader\n\tattr_reader :${1:attr_names}\n\nsnippet atw\nabbr attr_writer\n\tattr_writer :${1:attr_names}\n\nsnippet ata\nabbr attr_accessor\n\tattr_accessor :${1:attr_names}\n\nsnippet do var end\nabbr do |var| ... end\n\tdo |${1:variable}|\n\t\t${2}\n\tend\n\nsnippet do end\nabbr do ... end\n\tdo\n\t\t${1}\n\tend\n\nsnippet open\n\topen(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") {|${3:io}| ${4} }\n\nsnippet task\n\tdesc \"${1:Task description\\}\"\n\ttask :${2:task_name => [:dependent, :tasks]} do\n\t\t${3}\n\tend\n\nsnippet describe\n\tdescribe ${1:object} do\n\t\t${2}\n\tend\n\nsnippet it\n\tit \"${1:description}\" do\n\t\t${2}\n\tend\n\nsnippet context\n\tcontext \"${1:case}\" do\n\t\t${2}\n\tend\n\nsnippet before\n\tbefore do\n\t\t${1}\n\tend\n\nsnippet before each\n\tbefore :each do\n\t\t${1}\n\tend\n\nsnippet before all\n\tbefore :all do\n\t\t${1}\n\tend\n\nsnippet after\n\tafter do\n\t\t${1}\n\tend\n\nsnippet after each\n\tafter :each do\n\t\t${1}\n\tend\n\nsnippet after all\n\tafter :all do\n\t\t${1}\n\tend\n\nsnippet subject\n\tsubject do\n\t\t${1}\n\tend\n"
  },
  {
    "path": ".vim/snippets/tap.snip",
    "content": "snippet     subtest\nabbr        st\n\tsubtest ${1:test_name} => sub {\n\t\t${2:# test cases}\n\t};\n"
  },
  {
    "path": ".vim/snippets/textile.snip",
    "content": "snippet     link\n  \"${1:#:title}\":${2:#:url}\n\nsnippet     link_paste\n  \"${1:#:title}\":`getreg('+')`\n\nsnippet     image\n  !${1:#:url}!\n\nsnippet     image_paste\n  !`getreg('+')`!\n\nsnippet     pre\n  <pre><code>${1:#:code}</code></pre>\n\nsnippet     collapse\noptions     head\n\t{{collapse\n\t${1}\n\t}}\n\n# vim:set noexpandtab\n"
  },
  {
    "path": ".vim/snippets/tt2.snip",
    "content": "snippet if\n\t[% IF ${1:condition} %]\n\t\t${2:then}\n\t[% END # IF $1 %]\n\nsnippet ife\n\t[% IF ${1:condition} %]\n\t\t${2:then}\n\t[% ELSE %]\n\t\t${3:else}\n\t[% END # IF $1 %]\n\nsnippet unless\n\t[% UNLESS ${1:condition} %]\n\t\t${2:then}\n\t[% END # UNLESS $1 %]\n\nsnippet foreach\n\t[% FOREACH ${1:element} IN ${2:collection} %]\n\t\t${3:loop}\n\t[% END # FOREACH $1 IN $2 %]\n\nsnippet include\n\t[% INCLUDE \"${1:path}\" %]\n"
  },
  {
    "path": ".vim/snippets/tt2html.snip",
    "content": "include tt2.snip\n"
  },
  {
    "path": ".vim/snippets/vim.snip",
    "content": "# vim:set ft=neosnippet noet:\nsnippet plugin_config\n\tlet ${2:symbol} = neobundle#get('${1:plugin_name}')\n\tfunction! $2.hooks.on_source(bundle) \" {{{\n\t\t${3:TARGET}\n\tendfunction \" }}}\n\tunlet $2\n\nsnippet     lazybundle\noptions     head\n\tNeoBundleLazy '${1:owner}/${2:name}' \" {{{\n\tcall neobundle#config('$2', {\n\t\t\t\t${3:config}\n\t}) \" }}}\n"
  },
  {
    "path": ".vim/snippets/zsh.snip",
    "content": "include sh.snip\n\nsnippet     length\n  ${#${1:variable}}\n\nsnippet     capitalize\n  ${(C)${1:variable}}\n\nsnippet     downcase\n  ${(L)${1:variable}}\n\nsnippet     upcase\n  ${(U)${1:variable}}\n\nsnippet     keys\n  ${(k)${1:variable}}\n\nsnippet     split\n  ${(s:${1:pattern}:)${2:variable}}\n\nsnippet     join\n  ${(j:${1:needle}:)${2:variable}}\n\nsnippet     split_by_newline\nabbr        splitlf\n  ${(f)${1:variable}}\n\nsnippet     join_by_newline\nabbr        joinlf\n  ${(F)${1:variable}}\n\nsnippet     sort_asc\n  ${(o)${1:variable}}\n\nsnippet     sort_desc\n  ${(O)${1:variable}}\n\nsnippet     sort_numeric\nabbr        sort_num\n  ${(n)${1:variable}}\n\nsnippet     function\nabbr        func\noptions     head\n  function ${1:func}() { # {{{\n    ${2:#:body}\n  } # }}}\n"
  },
  {
    "path": ".vim/tools/efm_perl.pl",
    "content": "#!/usr/bin/env perl\n\n# stolen from https://github.com/hakobe/dotfiles/blob/master/.vim/tools/efm_perl.pl\n\nuse strict;\nuse warnings;\n\nuse Cwd;\nuse File::Basename;\nuse File::Spec;\n\nmy $file = shift or die \"No filename to check!\\n\";\nmy $dir  = dirname( $file ) . '/lib';\nmy $cwd  = cwd();\n\nmy $error = qr{(.*)\\sat\\s(.*)\\sline\\s(\\d+)(\\.|,\\snear\\s\\\".*\\\"?)};\n\n# Error messages to be skipped.\nmy @skip = (\n\n  '\"DB::single\" used only once: possible typo',\n  'BEGIN failed--compilation aborted',\n\n);\n\nmy $skip = join '|', map { quotemeta $_ } @skip;\nmy @checks;\n\npush @checks, '-M-circular::require' if `perldoc -l circular::require 2> /dev/null`;\npush @checks, '-M-indirect'          if `perldoc -l indirect 2> /dev/null`;\npush @checks, '-Mwarnings::method'   if `perldoc -l warnings::method 2> /dev/null`;\npush @checks, '-Mwarnings::unused'   if `perldoc -l warnings::unused 2> /dev/null`;\n\n# uninit is not included in 5.10 and later\npush @checks, '-Muninit'             if ( $] < 5.010 ) && `perldoc -l uninit 2> /dev/null`;\n\nmy @incs; \npush @incs, \"-I $cwd/lib\";\npush @incs, \"-I $cwd/t/lib\";\npush @incs, map { \"-I $_\" }  glob(\"$cwd/modules/*/lib\");\n\n# need to turn on taint if it's on the shebang line.\n# naive check for [tT] switch ... will both t and T ever be used at the same time?\nmy ( $taint ) = `head -n 1 $file` =~ /\\s.*-.*?(t)/i;\npush @checks, \"-$taint\" if defined $taint;\n\nmy $checks = join(' ', @checks);\nmy $incs = join(' ', @incs);\nmy $command = (-f \"$cwd/cpanfile\") || (-f \"$cwd/Makefile.PL\") ?\n    \"carton exec @incs -- perl @incs @checks -c $file 2>&1\" : # cartonのバージョン違いの吸収のために@incsが二回展開されてる\n    \"perl @incs @checks -c $file 2>&1\";\n\nmy ( $message, $extracted_file, $lineno, $rest );\n\nfor my $line ( `$command` ) {\n\n  chomp $line;\n  next if $line =~ /$skip/;\n  $line =~ s/([()])/\\\\$1/g;\n\n  if ( ( $message, $extracted_file, $lineno, $rest ) = $line =~ /^$error$/ ) {\n\n    $message .= $rest if ($rest =~ s/^,//);\n    print \"$file:$lineno:$message\\n\";\n\n  }\n}\n"
  },
  {
    "path": ".vim/vimrc",
    "content": "\" vim:set et foldmethod=marker:\n\nlet did_load_filetypes = 1\nlet g:loaded_2html_plugin = 1\nlet g:loaded_getscriptPlugin = 1\nlet g:loaded_vimballPlugin = 1\n\nfunction! s:OnLoaded() abort\n  if !has('vim_starting')\n    echomsg '---> Reload bundles'\n    call dein#call_hook('source')\n    call dein#call_hook('post_source')\n  endif\n\n  syntax enable\n  filetype plugin indent on\nendfunction\n\nruntime rc/00_base.vim\nruntime rc/00_autocmd.vim\nruntime rc/10_dein.vim\nruntime rc/20_tab.vim\nruntime rc/20_key.vim\nruntime rc/20_command.vim\n\nif !has('vim_starting')\n  echomsg '---> Reload bundles'\n  call dein#call_hook('source')\n  call dein#call_hook('post_source')\nendif\n\nsyntax enable\nfiletype plugin indent on\n"
  },
  {
    "path": ".vimperator/colors/solarized_light.vimp",
    "content": "hi clear\n\nhi StatusLine <<CSS\n  background-color: #fdf6e3;\n  color: #586e75;\n  font-size: 16px;\n  padding: 0.2em 0;\n  outline: none;\nCSS\n\nhi CmdLine <<CSS\n  background-color: #fdf6e3;\n  color: #586e75;\n  font-size: 16px;\n  border-top: solid 1px #93a1a1;\nCSS\n\nhi CompItem <<CSS\n  background-color: #fdf6e3;\n  color: #586e75;\n  font-size: 16px;\nCSS\n\nhi CompItem[selected] <<CSS\n  background-color: #268bd2;\n  color: #fdf6e3;\nCSS\n\nhi CompTitle <<CSS\n  background-color: #eee8d5;\n  color: #657b83;\nCSS\n\nhi ErrorMsg <<CSS\n  background-color: #dc322f;\n  color: #fdf6e3;\n  font-size: 16px;\nCSS\n\nhi Filter <<CSS\n  color: #b58900;\nCSS\n\nhi Hint <<CSS\n  z-index: 999;\n  padding: 0.1em 0.3em;\n  font-size: 16px;\n  background-color: rgba(0, 43, 54, 0.8);\n  color: #fdf6e3;\n  font-family: monospace;\nCSS\n\nhi HintElem <<CSS\n  background-color: rgba(253, 246, 227, 0.7);\nCSS\n\nhi HintActive <<CSS\n  background-color: rgba(220, 50, 47, 0.6);\nCSS\n"
  },
  {
    "path": ".vimperatorrc",
    "content": "\" let {{{\nlet g:plugin_loader_roots = \"~/devel/src/github.com/vimpr/vimperator-plugins\"\nlet g:plugin_loader_plugins = \"_libly,asdfghjkl,feedSomeKeys_3\"\n\nlet g:asdfghjkl_default = \"true\"\nlet g:asdfghjkl_hintchars = \":asdfghjkl\"\n\" }}}\n\" set {{{\nset scrollbars\nset notabnumbers\nset history=10000\n\" }}}\n\" Prefs (firefox) {{{\nset! ui.key.generalAccessKey=0\nset! ui.key.contentAccessKey=0\n\nset! browser.tabs.autoHide=false\n\nset! browser.sessionstore.interval=120000\n\nset! javascript.options.jit.chrome=true\nset! javascript.options.jit.content=true\n\nset! browser.tabs.closeWindowWithLastTab=false\n\nset! browser.startup.page=3\n\nset! network.http.pipelining=true\n\" }}}\n\" Mapping {{{\nnnoremap j 5<C-e>\nnnoremap k 5<C-y>\n\n\" page info\nnnoremap <C-g> g<C-g>\n\nnnoremap <C-q> <Nop>\nnnoremap q <Nop>\n\nnnoremap y :<C-u>js<Space>util.copyToClipboard(buffer.URL)<CR>\n\ncnoremap <C-n> <Tab>\ncnoremap <C-p> <S-Tab>\ncnoremap <C-g> <ESC>\n\n\" for AquaSKK\ncnoremap <C-j> <Nop>\n\" }}}\n\" Command {{{\ncommand! -nargs=+ sitesearch :exe \":tabopen <args> site:\" + content.document.domain\n\" }}}\n\" Quickmarks {{{\nsilent qmark r http://reader.livedoor.com/reader/\nsilent qmark m https://mail.google.com/mail/#mbox\n\" }}}\n\nignorekeys add -except=:,d,t,gT mail\\.google\\.com\n\nautocmd VimperatorEnter .* source ~/.vimperatorrc.js\n\ncolorscheme solarized_light\n\n\" vim:set ft=vim foldmethod=marker:\n"
  },
  {
    "path": ".vimperatorrc.js",
    "content": "liberator.globalVariables.hBookmark_shortcuts = {\n  hintsAdd: 'Ba',\n  hintsComment: 'Bc',\n  add: ['C'],\n  comment: ['c'],\n};\nif (typeof hBookmark != 'undefined') {\n  liberator.loadScript('chrome://hatenabookmark/content/vimperator/plugin/hatenabookmark.js', {\n    __proto__: this\n  });\n}\n"
  },
  {
    "path": ".zsh.d/functions/_carton",
    "content": "#compdef carton\n\nfunction _carton () {\n  local curcontext=\"$curcontext\" state line\n  typeset -A opt_args\n\n  _arguments -C \\\n    ':command:->command' \\\n    '*::options:->options'\n\n  case $state in\n    command)\n      _values 'carton commands' \\\n        version'[Display version]' \\\n        update'[Update the dependencies]' \\\n        tree'[Show the tree of dependency graph]' \\\n        show'[Show the module information]' \\\n        list'[List dependencies tracked in the cpanfile.snapshot file]' \\\n        check'[Check if your cpanfile and local environment are in sync]' \\\n        install'[Install the dependencies]' \\\n        bundle'[Bundle cached tarballs in vendor/cache]' \\\n        'exec[execute your script in a carton local environment]'\n      ;;\n    options)\n      case $line[1] in\n        update)\n          _arguments \\\n            '*:MODULE:_perl_modules'\n          ret=0\n          ;;\n        show)\n          _arguments \\\n            '*:MODULE:_perl_modules'\n          ret=0\n          ;;\n        list)\n          _arguments \\\n            --distfile'[Displays the list of distributions in a distfile format]'\n          ret=0\n          ;;\n        check|tree|version)\n          ret=0\n          ;;\n        bundle)\n          _arguments \\\n            {-h,--help}'[Show help message]' \\\n            --no-fatpack'[Skip generating fatpacked \"carton\" in \"vendor/bin\"]'\n          ret=0\n          ;;\n        install)\n          _arguments \\\n            {-h,--help}'[Show help message]' \\\n            --deployment'[Force the deployment mode. See \"DEPLOYMENT MODE\" above]' \\\n            --cached'[Locate distribution tarballs in \"vendor/cache\" rather than fetching them from CPAN mirrors]' \\\n            --cpanfile'[Specify the alternate path for cpanfile]:cpanfile:_files' \\\n            --path'[Specify the path to install modules to]:path:_dirs' \\\n            --without'[You can specify phases or features to exclude, in the comma separated list]:phases_or_features'\n          ret=0\n          ;;\n        exec)\n          _normal\n          ret=0\n          ;;\n      esac\n  esac\n}\n\n_carton \"$@\"\n\n# vim:set ft=zsh:\n"
  },
  {
    "path": ".zsh.d/functions/_padrino",
    "content": "#compdef padrino\n\n_runtime_options=(\n  --help'[Show help usage]' \\\n  {-e,--environment}'[Padrino Environment]:ENVIRONMENT:(test development production)' \\\n  {-c,--chdir}'[Change to dir before starting]:CHDIR:_files -/'\n)\n\n_padrino() {\n  local curcontext=\"$curcontext\" state line\n  typeset -A opt_args\n\n  _arguments -C \\\n    ':command:->command' \\\n    '*::options:->options'\n\n  case $state in\n    command)\n      _values \"padrino subcommands\" \\\n        {g,gen,generate}'[Executes the Padrino generator with given options]' \\\n        {c,console}'[Boots up the Padrino application irb console]' \\\n        {s,start}'[Starts the Padrino application]' \\\n        help'[Describe available tasks or one specific task]' \\\n        rake'[Execute rake tasks]' \\\n        stop'[Stops the Padrino application]' \\\n        version'[Show current Padrino Version]'\n      ;;\n    options)\n      case $line[1] in\n        start|s)\n          _arguments $_runtime_options \\\n            {-a,--server}'[Rack Handler (default: autodetect)]:SERVER' \\\n            {-p,--port}'[Use PORT (default: 3000)]:N' \\\n            {-h,--host}'[Bind to HOST address (default: 0.0.0.0)]:HOST' \\\n            {-d,--daemonize}'[Run daemonized in the buckground]' \\\n            {--debug}'[Set debugging flags]' \\\n            {-e,--environment}'[Padrino Environment]:ENVIRONMENT:(test development production)' \\\n          ret=0\n          ;;\n        stop)\n          _arguments $_runtime_options \\\n            {-p,--pid}'[File to store pid (default: tmp/pids/server.pid)]:PID'\n          ret=0\n          ;;\n        generate|gen|g)\n          __padrino_generate\n          ;;\n      esac\n     ;;\n  esac\n}\n\n__padrino_generate() {\n  local curcontext=\"$curcontext\" state line\n  typeset -A opt_args\n\n  _generators_options=(\n    --help'[Show help usage]' \\\n    {-r,--root}'[The root destination (default: .)]:ROOT:_files -/' \\\n    {-d,--destroy}\n  )\n\n  _arguments -C \\\n    ':command:->command' \\\n    '*::options:->options'\n\n  case $state in\n    command)\n      _arguments -C $_generators_options\n      _values 'padrino generators' \\\n        'project' \\\n        'app' \\\n        'mailer' \\\n        'controller' \\\n        'model' \\\n        'migration' \\\n        'plugin[sets up a plugin within a Padrino application]'\n      ;;\n    options)\n      case $line[1] in\n        app)\n          _arguments $_generators_options \\\n            {-i--tiny}'[Generate tiny app skeleton]'\n          ret=0\n          ;;\n        controller)\n          _arguments $_generators_options \\\n            {-a,--app}'[The application destination path]:APP:_files -/'\n          ret=0\n          ;;\n        mailer)\n          _arguments $_generators_options \\\n            {-a,--app}'[The application destination path]:APP:_files -/'\n          ret=0\n          ;;\n        migration)\n          _arguments $_generators_options\n          ret=0\n          ;;\n        model)\n          _arguments $_generators_options \\\n            {-a,--app}'[The application destination path]:APP:_files -/' \\\n            {-s,--skip-migration}\n          ret=0\n          ;;\n        plugin)\n          _arguments $_generators_options \\\n            {-l,--list}'[list available plugins]'\n          ret=0\n          ;;\n        project)\n          _arguments $_generators_options \\\n            '*:APP' \\\n            {-n,--app}'[The application name]:APP' \\\n            {-b,--bundle}'[Run bundle install]' \\\n            --dev'[Use padrino from a git checkout]' \\\n            {-i,--tiny}'[Generate tiny app skeleton]' \\\n            {-a,--adapter}'[SQL adapter for ORM (default: sqlite)]:ADAPTER:(sqlite mysql mysql2 postgres)' \\\n            {-p,--template}'[Generate project from template]:TEMPLATE:_files' \\\n            {-d,--orm}'[The database engine component (default: none)]:ORM:(activerecord mini_record datamapper mongomapper mongoid sequel couchrest ohm mongomatic ripple none)' \\\n            {-t,--test}'[The testing framework component (default: none)]:TEST:(rspec shoulda cucumber bacon testspec riot minitest)' \\\n            {-m,--mock}'[The mocking library component (default: none)]:MOCK:(mocha rr none)' \\\n            {-s,--script}'[The javascript library component (default: none)]:SCRIPT:(jquery prototype rightjs mootools extcore dojo none)' \\\n            {-e,--renderer}'[The template engine component (default: haml)]:RENDERER:(haml erb liquid slim none)' \\\n            {-c,--stylesheet}'[The stylesheet component (default: none)]:STYLESHEET:(less sass compass scss none)'\n      esac\n      ;;\n  esac\n}\n\n_padrino \"$@\"\n\n# vim:set ft=zsh\n"
  },
  {
    "path": ".zsh.d/functions/_pkgutil",
    "content": "#compdef pkgutil\n\nfunction _pkgutil() {\n  local curcontext=$curcontext state line ret=1\n  declare -A opt_args\n\n  _arguments -C \\\n    '(-): :->command' \\\n    '(-)*:: :->option-or-argument'\n\n  case $state in\n    command)\n      __pkgutil_commands && return 0\n      ;;\n    option-or-argument)\n      if (( $+functions[__pkgutil_$words[1]] )); then\n        _call_function ret __pkgutil_$words[1]\n      else\n        : # TODO\n      fi\n      ;;\n  esac\n\n  return $ret\n}\n\nfunction __pkgutil_commands() {\n  local curcontext=$curcontext state line ret=1\n  declare -A opt_args\n\n  local -a __pkgutil_receipt_database_commands\n  __pkgutil_receipt_database_commands=(\n    {--packages,--pkgs}:'List all installed package IDs on the specified --volume'\n    --pkgs-plist:'List all installed package IDs on the specified --volume in Mac OS X plist(5) format'\n    --files:'List all of the files installed under the package-id'\n    --export-plist:'Print all receipt information about the specified package-id in the standard Mac OS X plist(5) format'\n    --verify:'Run repair_packages(8) to verify the specified package-id'\n    --repair:'Run repair_packages(8) to repair the specified package-id'\n    --pkg-info:'Print extended information about the specified package-id'\n    --pkg-info-plist:'Print extended information about the specified package-id in Mac OS X plist(5) format'\n    --forget:'Discard all receipt data about package-id, but do not touch the installed files'\n    --learn:'Update the ACLs of the given path in the receipt identified by --edit-pkg'\n    --pkg-groups:'List all of the package groups this package-id is a member of'\n    --groups:'List all of the package groups on the specified --volume'\n    --groups-plist:'List all of the package groups on the specified --volume in Mac OS X plist(5) format.'\n    --group-pkgs:'List all of the packages that are members of this group-id.'\n    --file-info:'Show the metadata known about path.'\n    --file-info-plist:'Show the metadata known about path in Mac OS X plist(5) format.'\n  )\n\n  local -a __pkgutil_options\n  __pkgutil_options=(\n  {-h,--help}':A brief summary of commands and usage'\n  {-f,--force}\":Don't ask for confirmation before performing a potentially destructive or ambiguous operation\"\n  {-v,--verbose}':Output in a \"human-readable\" format with extra headers, footers, indentation, and other contextual information'\n  --volume\":Perform all operations on the specified volume or home directory. The root volume '/' will be used if unspecified\" \\\n  --edit-pkg':Specifies an existing receipt to be modified in-place by --learn'\n  --only-files':List only files (not directories) in --files listing'\n  --only-dirs':List only directories (not files) in --files listing'\n  --regexp\":Try to match package-id arguments as a regular expression if an exact match isn't found. See egrep(1) and re_format(7) for syntax\"\n  )\n\n  local -a __pkgutil_file_commands\n  __pkgutil_file_commands=(\n    --expand:'Expand the flat package at pkg-path into a new directory specified by dir-path'\n    --flatten:'Flatten the dir-path into a new flat package created at pkg-path'\n    --bom:'Extract any BOM files from the flat pkg at path into /tmp and return the filename(s).'\n    --payload-files:'List the files archived within the payload of the uninstalled flat package(s) contained at path'\n    --check-signature:'Check the validity and trust of the signature on the package at pkg-path.'\n  )\n\n  _describe -t pkgutil-options \"Options\" __pkgutil_options && ret=0\n  _describe -t pkgutil-receipt-database-commands \"Receipt Database Commands\" __pkgutil_receipt_database_commands && ret=0\n  _describe -t pkgutil-file-commands \"File Commands\" __pkgutil_file_commands && ret=0\n\n  return $ret\n}\n\nfunction __pkgutil_package_ids() {\n  local -a package_ids\n  package_ids=($(pkgutil --pkgs 2>/dev/null))\n  _values 'package-id' $package_ids\n}\n\nfunction __pkgutil_group_ids() {\n  local -a group_ids\n  group_ids=($(pkgutil --groups 2>/dev/null))\n  _values 'group-id' $group_ids\n}\n\nfunction __pkgutil_--volume()          { _arguments -C '*:path:_dirs'                       && return 0 }\nfunction __pkgutil_--edit-pkg()        { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--verify()          { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--repair()          { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--pkg-info()        { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--pkg-info-plist()  { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--forget()          { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--learn()           { _arguments -C '*:path:_files'                      && return 0 }\nfunction __pkgutil_--pkg-groups()      { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--group-pkgs()      { _arguments -C '*:group-id:__pkgutil_group_ids'     && return 0 }\nfunction __pkgutil_--file-info()       { _arguments -C '*:path:_files'                      && return 0 }\nfunction __pkgutil_--file-info-plist() { _arguments -C '*:path:_files'                      && return 0 }\nfunction __pkgutil_--files()           { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--export-plist()    { _arguments -C '*:package-id:__pkgutil_package_ids' && return 0 }\nfunction __pkgutil_--bom()             { _arguments -C '*:path:_files'                      && return 0 }\nfunction __pkgutil_--payload-files()   { _arguments -C '*:path:_files'                      && return 0 }\nfunction __pkgutil_--check-signature() { _arguments -C '*:pkg-path:_files'                  && return 0 }\n# TODO function __pkgutil_--expand\n# TODO function __pkgutil_--flatten\n\n# vim:set ft=zsh:\n"
  },
  {
    "path": ".zsh.d/functions/_prove",
    "content": "#compdef prove\n\ntypeset -A options\nlocal context state line\n\n_arguments -s -C \\\n  '*:TEST:_files' \\\n  {-a,--archive}'[Store the resulting TAP in an archive file.]':OUTPUT:_files \\\n  {-b,--blib}\"[Add 'blib/lib' and 'blib/arch' to the path for your tests]\" \\\n  {-c,--color}'[Colored test output (default).]' \\\n  {-o,--comments}'[Show comments.]' \\\n  --count'[Show the X/Y test count when not verbose (default)]' \\\n  --directives'[Only show results with TODO or SKIP directives.]' \\\n  {-D,--dry}'[Dry run. Show test that would have run.]' \\\n  {-e,--exec}\"[Interpreter to run the tests ('' for compiled tests.)]\":EXECUTOR \\\n  --ext\"[Set the extension for tests (default '.t')]\":EXTENSION \\\n  {-f,--failures}'[Show failed tests.]' \\\n  --formatter'[Result formatter to use. See FORMATTERS.]':FORMATTER \\\n  --harness'[Define test harness to use.  See TAP::Harness.]':HARNESS \\\n  {-?,-h,--help}'[Display this help]' \\\n  -I'[Library paths to include.]':DIR:_dirs \\\n  --ignore-exit'[Ignore exit status from test scripts.]' \\\n  {-j,--jobs}'[Run N test jobs in parallel (try 9.)]':N \\\n  {-l,--lib}\"[Add 'lib' to the path for your tests (-Ilib).]\" \\\n  -M'[Load a module.]':MODULE:_perl_modules \\\n  {-H,--man}'[Longer manpage for prove]' \\\n  {-m,--merge}\"[Merge test scripts' STDERR with their STDOUT.]\" \\\n  --nocolor'[Do not color test output.]' \\\n  --nocount'[Disable the X/Y test count.]' \\\n  --norc\"[Don't process default .proverc]\" \\\n  --normalize'[Normalize TAP output in verbose output]' \\\n  -P'[Load plugin (searches App::Prove::Plugin::*.)]':PLUGIN \\\n  {-p,--parse}'[Show full list of TAP parse errors, if any.]' \\\n  {-q,--quiet}'[Suppress some test output while running tests.]' \\\n  {-Q,--QUIET}'[Only print summary results.]' \\\n  --rc'[Process options from rcfile]':RCFILE:_files \\\n  {-r,--recurse}'[Recursively descend into directories.]' \\\n  --reverse'[Run the tests in reverse order.]' \\\n  {-s,--shuffle}'[Run the tests in random order.]' \\\n  --source'[Load and/or configure a SourceHandler. See SOURCE HANDLERS.]':HANDLER \\\n  --state\"[Control prove's persistent state.]\":OPTION:'(last failed passed all hot todo slow fast new old fresh save)' \\\n  -T'[Enable tainting checks.]' \\\n  -t'[Enable tainting warnings.]' \\\n  --timer'[Print elapsed time after each test.]' \\\n  --trap'[Trap Ctrl-C and print summary on interrupt.]' \\\n  {-v,--verbose}'[Print all test lines.]' \\\n  -W'[Enable fatal warnings.]' \\\n  -w'[Enable warnings.]'\n\n# vim:set ft=zsh:\n"
  },
  {
    "path": ".zsh.d/functions/_proxychains4",
    "content": "#compdef proxychains4\n\nlocal curcontext=\"$curcontext\" state line ret=1\n\n_arguments -C \\\n  '*:: :->app' && ret=0\n\ncase \"$state\" in\n  app)\n    _normal && ret=0\n    ;;\nesac\n\nreturn ret\n\n# vim: set ft=sh:\n"
  },
  {
    "path": ".zsh.d/functions/_rails",
    "content": "#compdef rails\n\n_runtime_options=(\n  '(-f --force -s --skip)'{-f,--force}'[Overwrite files that already exist]'\n  {-p,--pretend}'[Run but do not make any changes]'\n  {-q,--quiet}'[Supress status output]'\n  '(-s --skip -f --force)'{-s,--skip}'[Skip files that already exist]'\n)\n\n_rails() {\n  local curcontext=\"$curcontext\" state line\n  typeset -A opt_args\n\n  _arguments -C \\\n    ':command:->command' \\\n    '*::options:->options'\n\n  case $state in\n    command)\n      _values \"rails subcommands\" \\\n        {g,generate}'[Generate new code]' \\\n        {c,console}'[Start the Rails console]' \\\n        {s,server}'[Start the Rails server]' \\\n        {db,dbconsole}'[Start a console for the database specified in config/database.yml]' \\\n        {d,destroy}'[Undo code generated with \"generate\"]' \\\n        {r,runner}'[Run a piece of code in the application environment]' \\\n        benchmarker'[See how fast a piece of code runs]' \\\n        new'[Create a new Rails application]' \\\n        application'[Generate the Rails application code]' \\\n        profiler'[Get profile information from a piece of code]' \\\n        plugin'[Install a plugin]'\n      ;;\n    options)\n      case $line[1] in\n        console|c)\n          _arguments \\\n            {-h,--help}'[Show help message]' \\\n            --sandbox'[Rollback database modifications on exit]' \\\n            --debugger'[Enable ruby-debugging for the console]'\n          ret=0\n          ;;\n        server|s)\n          _arguments \\\n            {-h,--help}'[Show help message]' \\\n            {-p,--port}'[Runs Rails on the specified port]:port' \\\n            {-b,--binding}'[Binds Rails to the specified ip]:ip' \\\n            {-c,--config}'[Use custom rackup configuration file]:file:_files' \\\n            {-d,--daemon}'[Make server run as a Daemon]' \\\n            {-u,--debugger}'[Enable ruby-debugging for the server]' \\\n            {-e,--environment}'[Specifies the environment to run this server under (test/development/production)]:name:(test development production)' \\\n            {-p,--pid}'[Specifies the PID file]:pid'\n          ret=0\n          ;;\n        dbconsole|db)\n          _arguments \\\n            {-h,--help}'[Show help message]' \\\n            {-p,--include-password}'[Automatically provide the password from database.yml]' \\\n            --mode'[Automatically put the sqlite3 database in the specified mode]:MODE:(html list line column)' \\\n            --header\n          ret=0\n          ;;\n        application|new)\n          _arguments \\\n            '*:APP_PATH:_files -/' \\\n            {-h,--help}'[Show help message]' \\\n            $_runtime_options \\\n            {-r,--ruby}'[Path to the Ruby binary of your choice]:PATH' \\\n            {-b,--builder}'[Path to a application builder (can be a filesystem path or URL)]:BUILDER:_files' \\\n            {-m,--template}'[Path to an application template (can be a filesystem path or URL)]:TEMPLATE:_files' \\\n            --skip-gemfile\"[Don't create a Gemfile]\" \\\n            \"(--skip-gemfile --skip-bundle)--skip-bundle[Don't run bundle install]\" \\\n            {-G,--skip-git}'[Skip Git ignores and keeps]' \\\n            {-O,--skip-active-record}'[Skip Active Record files]' \\\n            {-S,--skip-sprockets}'[Skip Sprockets files]' \\\n            {-d,--database}'[Preconfigure for selected database]:DATABASE:(mysql oracle postgresql sqlite3 frontbase ibm_db sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc)' \\\n            '(-J --skip-javascript -j --javascript)'{-j,--javascript}'[Preconfigure for selected JavaScript library]:JAVASCRIPT' \\\n            '(-J --skip-javascript -j --javascript)'{-J,--skip-javascript}'[Skip JavaScript files]' \\\n            '(--dev --edge)--dev[Setup the application with Gemfile pointing to your Rails checkout]' \\\n            '(--edge --dev)--edge[Setup the application with Gemfile pointing to Rails repository]' \\\n            {-T,--skip-test-unit}'[Skip Test::Unit files]' \\\n            --old-style-hash\"[Force using old style hash (:foo => 'bar') on Ruby >= 1.9]\"\n          ;;\n        generate|g)\n          __rails_generate\n          ;;\n      esac\n     ;;\n  esac\n}\n\n__rails_generate() {\n  local curcontext=\"$curcontext\" state line\n  typeset -A opt_args\n\n  _generators_optins=(\n    --skip-namespace'[Skip namespace (affects only isolated applications)]' \\\n    --old-style-hash\"[Force using old style hash (:foo => 'bar') on Ruby >= 1.9]\" \\\n  )\n\n  _arguments -C \\\n    ':command:->command' \\\n    '*::options:->options'\n\n  case $state in\n    command)\n      _arguments -C $_runtime_options\n      _values 'rails generators' \\\n        'assets[Stubs out new asset placeholders.]' \\\n        'controller[Stubs out a new controller and its views.]' \\\n        'generator[Stubs out a new generator at lib/generators.]' \\\n        'helper[Stubs out a new helper.]' \\\n        'integration_test[Create rails files for integration_test generator]' \\\n        'mailer[Stubs out a new maiiler and its views.]' \\\n        'migration[Create rails files for migration generator.]' \\\n        'model[Create rails files for model generator.]' \\\n        'observer[Create rails files for observer generator.]' \\\n        'performance_test[Create rails files for performance_test generator.]' \\\n        'resource[Create rails files for resource generator.]' \\\n        'scaffold[Scaffolds an entire resource, from model and migration to controller and views, along with a full test suite]' \\\n        'scaffold_controller[Stubs out a scaffolded controller and its views.]' \\\n        'session_migration[Create rails files for session_migration generator.]' \\\n        'task[Stubs out a new Rake task.]'\n      ;;\n    options)\n      case $line[1] in\n        assets)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-j,--javascripts}'[Generate JavaScripts]:boolean:(true false)' \\\n            {-y,--stylesheets}'[Generate Stylesheets]:boolean:(true false)' \\\n            {-je,--javascript-engine}'[Engine for JavaScripts]:JAVASCRIPT_ENGINE' \\\n            {-se,--stylesheet-engine}'[Engine for Stylesheets]:STYLESHEET_ENGINE'\n          ;;\n        controller)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-e,--template-engine}'[Template engine to be invoked]:NAME' \\\n            {-t,--test-framework}'[Test framework to be invoked]:NAME' \\\n            --helper'[Indicates when to generate helper]:boolean:(true false)' \\\n            --assets'[Indicates where to generate assets]:boolean:(true false)'\n          ;;\n        generatorer)\n          _arguments -C $_runtime_options $_generators_optins \\\n            --namespace'[Namespace generator under lib/generators/name]:boolean:(true false)'\n          ;;\n        helper)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-t,--test-framework}'[Test framework to be invoked]:NAME'\n          ;;\n        integration_test)\n          _arguments -C $_runtime_options $_generators_optins \\\n            --integration-tool'[Integration tool to be invoked]:NAME'\n          ;;\n        mailer)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-e,--template-engine}'[Template engine to be invoked]:NAME' \\\n            {-t,--test-framework}'[Test framework to be invoked]:NAME'\n          ;;\n        migration)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-o,--orm}'[ORM to be invoked]:NAME'\n          ;;\n        model)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-o,--orm}'[ORM to be invoked]:NAME'\n          ;;\n        observer)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-o,--orm}'[ORM to be invoked]:NAME'\n          ;;\n        performance_test)\n          _arguments -C $_runtime_options $_generators_optins \\\n            --performance-tool'[Performance tool to be invoked]:NAME'\n          ;;\n        resource)\n          _arguments -C $_runtime_options $_generators_optins \\\n            --force-plural'[Forces the use of a plural ModelName]' \\\n            {-o,--orm}'[ORM to be invoked]:NAME' \\\n            {-c,--resource-controller}'[Resource controller to be invoked]:NAME' \\\n            {-a,--actions}'[Resource controller to be invoked]:ACTION' \\\n            {-e,--template-engine}'[Template engine to be invoked]:NAME' \\\n            --helper'[Indicates when to generate helper]:boolean:(true false)' \\\n            --assets'[Indicates where to generate assets]:boolean:(true false)'\n          ;;\n        scaffold)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-o,--orm}'[ORM to be invoked]:NAME' \\\n            {-c,--scaffold-controller}'[Scaffold controller to be invoked]:NAME' \\\n            {-e,--template-engine}'[Template engine to be invoked]:NAME' \\\n            {-y,--stylesheets}'[Generate Stylesheets]:boolean:(true false)' \\\n            {-se,--stylesheet-engine}'[Engine for Stylesheets]:STYLESHEET_ENGINE' \\\n            --force-plural'[Forces the use of a plural ModelName]' \\\n            --assets'[Indicates where to generate assets]:boolean:(true false)' \\\n            --helper'[Indicates when to generate helper]:boolean:(true false)'\n          ;;\n        scaffold_controller)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-o,--orm}'[ORM to be invoked]:NAME' \\\n            {-e,--template-engine}'[Template engine to be invoked]:NAME' \\\n            {-t,--test-framework}'[Test framework to be invoked]:NAME' \\\n            --force-plural'[Forces the use of a plural ModelName]' \\\n            --helper'[Indicates when to generate helper]:boolean:(true false)'\n          ;;\n        session_migration)\n          _arguments -C $_runtime_options $_generators_optins \\\n            {-o,--orm}'[ORM to be invoked]:NAME'\n          ;;\n        task)\n          _arguments -C $_runtime_options $_generators_optins\n          ;;\n      esac\n      ;;\n  esac\n}\n\n_rails \"$@\"\n\n# vim:set ft=zsh\n"
  },
  {
    "path": ".zsh.d/functions/_tsocks",
    "content": "#compdef tsocks\n\nlocal curcontext=\"$curcontext\" state line ret=1\n\n_arguments -C \\\n  '*:: :->app' && ret=0\n\ncase \"$state\" in\n  app)\n    _normal && ret=0\n    ;;\nesac\n\nreturn ret\n\n# vim: set ft=sh:\n"
  },
  {
    "path": ".zsh.d/functions/git_info",
    "content": "# vim:set ft=zsh foldmethod=marker:\n\ngit_info() { # {{{\n  # http://d.hatena.ne.jp/uasi/20091025/1256458798\n  if [[ $(git rev-parse --is-inside-work-tree 2>/dev/null) != \"true\" ]]; then\n    return\n  fi\n\n  local git==git\n  local st color annotation stashes\n\n  local name=$($git symbolic-ref --short HEAD 2> /dev/null)\n  name=${name:=\"(detached)\"}\n\n  local git_dir=$($git rev-parse --git-dir 2> /dev/null)\n  local action=$(VCS_INFO_git_getaction \"$git_dir\")\n  action=${action:+\"($action)\"}\n\n  # Remote and Local changes {{{\n  local \\\n    threshold \\\n    current_remote \\\n    merge_name \\\n    remote_ref \\\n    revs_count \\\n    behind_count \\\n    ahead_count \\\n    behind_and_ahead\n\n  current_remote=$($git config branch.${name}.remote 2> /dev/null)\n  merge_name=$($git config branch.${name}.merge 2> /dev/null)\n\n  local is_tracked\n  local -a remote_local_revs\n  if [[ \".\" = \"$current_remote\" ]] || [[ \"x\" = \"x$current_remote\" ]]; then\n    # Clone from local\n    remote_ref=$merge_name\n    remote_local_revs=($($git rev-list --left-right ${merge_name}...HEAD))\n    is_tracked=\"\"\n  else\n    remote_ref=\"refs/remotes/${current_remote}/${merge_name#refs/heads/}\"\n    remote_local_revs=($($git rev-list --left-right ${remote_ref}...HEAD))\n    is_tracked=\" %{${fg[green]}%}♺%{${reset_color}%}\"\n  fi\n\n  local ahead_commits_color=\"${fg[green]}\"\n  local behind_commits_color=\"${fg[red]}\"\n  local ahead_annotation=\"+\"\n  local behind_annotation=\"-\"\n\n  revs_count=$#remote_local_revs\n\n  local -a behind_commits ahead_commits\n  behind_commits=(${(M)remote_local_revs:#<*})\n  ahead_commits=(${(M)remote_local_revs:#>*})\n  ahead_count=$#ahead_commits\n  behind_count=$#behind_commits\n\n  if [[ $ahead_count -gt 0 ]]; then\n    behind_and_ahead=\"${behind_and_ahead} %{$ahead_commits_color%}${ahead_annotation}${ahead_count}%f%b\"\n  fi\n  if [[ $behind_count -gt 0 ]]; then\n    behind_and_ahead=\"${behind_and_ahead} %{$behind_commits_color%}${behind_annotation}${behind_count}%f%b\"\n  fi\n  # }}}\n\n  # stashes count {{{\n  declare -a stashes_count\n  local stash_annotation=\"⟐\"\n  stashes_count=($($git stash list --format='format:%h' 2> /dev/null))\n  if [[ $#stashes_count > 0 ]]; then\n    stashes=\" %{${fg[yellow]}%}${stash_annotation}$#stashes_count\"\n  fi\n  # }}}\n\n  st=$($git status --short --porcelain -b 2> /dev/null)\n\n  # Staged changes {{{\n  if [[ -n `echo \"$st\" | grep \"^[UMADRC]\"` ]]; then\n    # Staged\n    color=%F{yellow}\n    annotation=\"${annotation}${color}*\"\n  fi\n  # }}}\n\n  # Untracked changes {{{\n  if [[ -n `echo \"$st\" | grep \"??\"` ]]; then\n    # Untracked\n    color=%F{yellow}\n    annotation=\"${annotation}${color}?%f\"\n  fi\n  # }}}\n\n  # Changed, but not staged {{{\n  if [[ -n `echo \"$st\" | grep \"^[ ][MD]\"` ]]; then\n    # Changed, but not staged\n    color=%F{red}\n    annotation=\"${annotation}${color}!%f\"\n  fi\n  # }}}\n\n  if [[ -z \"$color\" ]]; then\n    color=%F{green}\n  fi\n\n  echo \"${color}${name}${action}${annotation}${behind_and_ahead}${stashes}%f%b${is_tracked}\"\n} # }}}\n"
  },
  {
    "path": ".zsh.d/functions/gyapbox",
    "content": "# vim:set ft=zsh:\n\nfunction gyapbox() {\n  local base_dir=~/Dropbox/Public/g\n  local enable_notify=0\n\n  if whence terminal-notifier >/dev/null; then\n    enable_notify=1\n  fi\n\n  if [[ -z \"$DROPBOX_USER_ID\" ]]; then\n    echo \"\\$DROPBOX_USER_ID must be specified\"\n    return 1\n  fi\n\n  if [[ ! -d $base_dir ]]; then\n    echo \"\\$base_dir is not found\"\n    return 1\n  fi\n\n  local preview\n\n  if [[ $1 = '-P' ]]; then\n    preview=\"-P\"\n  fi\n\n  local timestamp_hash=\"$(date +%s | md5)\"\n  local image_filename=\"${timestamp_hash}.png\"\n  local image_path=\"$base_dir/$image_filename\"\n\n  if [ $enable_notify ]; then\n    terminal-notifier -message \"Take a screen capture\" -title \"Gyapbox\"\n  fi\n  screencapture $preview -i \"$base_dir/$image_filename\"\n\n  if [[ -e \"$image_path\" ]]; then\n    local url=\"http://dl.dropboxusercontent.com/u/$DROPBOX_USER_ID/g/$image_filename\"\n\n    if [ $enable_notify ] && [[ -n \"$url\" ]]; then\n      terminal-notifier -message \"Captured\" -title \"Gyapbox\" -open \"$url\"\n    fi\n\n    echo -n $url | pbcopy\n  fi\n}\n"
  },
  {
    "path": ".zsh.d/functions/llenv_version_origin",
    "content": "llenv_version_origin() {\n  local llenv=\"$1\"\n  local llenv_root=\"$($llenv root)\"\n  local global_version_file=\"${llenv_root}/version\"\n  local version_origin=\"$($llenv version-origin)\"\n\n  local version_source\n  if [[ $version_origin = $global_version_file ]]; then\n    version_source='global'\n  elif [[ -f $version_origin ]]; then\n    version_source='local'\n  else\n    version_source='shell'\n  fi\n\n  echo $version_source\n}\n\n# vim:set ft=zsh:\n"
  },
  {
    "path": ".zsh.d/functions/prompt_aereal_setup",
    "content": "# vim:set ft=zsh foldmethod=marker:\n\nfunction prompt_aereal_setup() { # {{{\n  if ! (which add-zsh-hook > /dev/null); then\n    autoload -Uz add-zsh-hooks\n  fi\n  add-zsh-hook precmd aereal_update_prompt\n} # }}}\n\nfunction detect_ruby_version() { # {{{\n  which rbenv > /dev/null 2>&1\n  if [ $? -ne 0 ]; then\n    return\n  fi\n  echo \"ruby-$(rbenv version-name)\"\n} # }}}\n\nfunction detect_perl_version() { # {{{\n  which plenv > /dev/null 2>&1\n  if [ $? -ne 0 ]; then\n    return\n  fi\n  echo \"perl-$(plenv version-name)\"\n} # }}}\n\nfunction detect_python_version() { # {{{\n  which pyenv > /dev/null 2>&1\n  if [ $? -ne 0 ]; then\n    return\n  fi\n  echo \"python-$(pyenv version-name)\"\n} # }}}\n\nfunction git_repository_relative_dir() { # {{{\n  if ! git rev-parse --is-inside-work-tree 1>/dev/null 2>&1; then\n    return\n  fi\n\n  local project repository_dir prefix\n  repository_dir=${${$(git rev-parse --show-cdup 2>/dev/null):-\".\"}:a}\n  project=${repository_dir:t}\n  prefix=$(git rev-parse --show-prefix 2>/dev/null)\n  echo \"${project}${prefix:+\":$prefix\"}\"\n} # }}}\n\nfunction aereal_update_prompt() { # {{{\n  local \\\n    ruby_version \\\n    perl_version \\\n    additional_info \\\n    current_working_directory \\\n    git_info \\\n    top_line \\\n    command_line\n\n  ruby_version=\"%{${fg[red]}%}$(detect_ruby_version)%{${reset_color}%}\"\n  perl_version=\"%{${fg[blue]}%}$(detect_perl_version)%{${reset_color}%}\"\n  python_version=\"%{${fg[green]}%}$(detect_python_version)%{${reset_color}%}\"\n\n  git_info=$(git_info)\n  git_info=${git_info:+\" [$git_info]\"}\n\n  if git rev-parse --is-inside-work-tree 1>/dev/null 2>&1; then\n    current_working_directory=\"%{${fg[yellow]}%}$(git_repository_relative_dir)%{${reset_color}%}\"\n  else\n    current_working_directory=\"%{${fg[magenta]}%}%~%{${reset_color}%}\"\n  fi\n\n  additional_info=\"${ruby_version} ${perl_version} ${python_version}\"\n\n  top_line=\"${current_working_directory:+\"(${current_working_directory})\"}${git_info}\"\n\n  ok_prompt=\" %{${fg[yellow]}%}X | _ | X%{${reset_color}%} < \"\n  ng_prompt=\" %{${fg[red]}%}X > _ < X%{${reset_color}%} < \"\n  command_line=\"%(?,$ok_prompt,$ng_prompt)\"\n\n  PROMPT=\"$(echo -n \"${top_line}\\n${command_line}\")\"\n  RPROMPT=${additional_info:+\"($additional_info)\"}\n}\n\nprompt_aereal_setup \"$@\"\n"
  },
  {
    "path": ".zsh.d/functions/prompt_aereal_unicode_setup",
    "content": "# vim:set ft=zsh foldmethod=marker:\n\nfunction prompt_aereal_unicode_setup() { # {{{\n  if ! (which add-zsh-hook > /dev/null); then\n    autoload -Uz add-zsh-hooks\n  fi\n  add-zsh-hook precmd aereal_unicode_update_prompt\n} # }}}\n\nfunction detect_ruby_version() { # {{{\n  which rbenv > /dev/null 2>&1\n  if [ $? -ne 0 ]; then\n    return\n  fi\n  echo \"ruby-$(rbenv version-name)\"\n} # }}}\n\nfunction detect_perl_version() { # {{{\n  which plenv > /dev/null 2>&1\n  if [ $? -ne 0 ]; then\n    return\n  fi\n  echo \"perl-$(plenv version-name)\"\n} # }}}\n\nfunction detect_python_version() { # {{{\n  which pyenv > /dev/null 2>&1\n  if [ $? -ne 0 ]; then\n    return\n  fi\n  echo \"python-$(pyenv version-name)\"\n} # }}}\n\nfunction git_repository_relative_dir() { # {{{\n  if ! git rev-parse --is-inside-work-tree 1>/dev/null 2>&1; then\n    return\n  fi\n\n  local project repository_dir prefix\n  repository_dir=${${$(git rev-parse --show-cdup 2>/dev/null):-\".\"}:a}\n  project=${repository_dir:t}\n  prefix=$(git rev-parse --show-prefix 2>/dev/null)\n  echo \"${project}${prefix:+\":$prefix\"}\"\n} # }}}\n\nfunction aereal_unicode_update_prompt() { # {{{\n  local \\\n    ruby_version \\\n    perl_version \\\n    additional_info \\\n    current_working_directory \\\n    git_info \\\n    top_line \\\n    command_line\n\n  ruby_version=\"%{${fg[red]}%}$(detect_ruby_version)%{${reset_color}%}\"\n  perl_version=\"%{${fg[blue]}%}$(detect_perl_version)%{${reset_color}%}\"\n  python_version=\"%{${fg[green]}%}$(detect_python_version)%{${reset_color}%}\"\n\n  git_info=$(git_info)\n  git_info=${git_info:+\" [$git_info]\"}\n\n  if git rev-parse --is-inside-work-tree 1>/dev/null 2>&1; then\n    current_working_directory=\"%{${fg[yellow]}%}$(git_repository_relative_dir)%{${reset_color}%}\"\n  else\n    current_working_directory=\"%{${fg[magenta]}%}%~%{${reset_color}%}\"\n  fi\n\n  additional_info=\"${ruby_version} ${perl_version} ${python_version}\"\n\n  top_line=\"${current_working_directory:+\"(${current_working_directory})\"}${git_info}\"\n\n  ok_prompt=\" %{${fg[yellow]}%}✘╹◡╹✘%{${reset_color}%} < \"\n  ng_prompt=\" %{${fg[red]}%}✘>﹏<✘%{${reset_color}%} < \"\n  command_line=\"%(?,$ok_prompt,$ng_prompt)\"\n\n  PROMPT=\"$(echo -n \"${top_line}\\n${command_line}\")\"\n  RPROMPT=${additional_info:+\"($additional_info)\"}\n}\n\nprompt_aereal_unicode_setup \"$@\"\n"
  },
  {
    "path": ".zsh.d/functions/prompt_lambda_setup",
    "content": "function prompt_lambda_setup() { # {{{\n  if ! (whence add-zsh-hook >/dev/null); then\n    autoload -Uz add-zsh-hooks\n  fi\n  add-zsh-hook precmd __prompt_lambda_update\n\n  # vcs_info configuration {{{\n  autoload -Uz vcs_info\n  zstyle ':vcs_info:*' max-exports 3\n  zstyle ':vcs_info:*' enable git\n  zstyle ':vcs_info:git:*' formats '[%b]' '%c%u %m'\n  zstyle ':vcs_info:git:*' actionformats '[%b]' '%c%u %m' '<!%a>'\n  zstyle ':vcs_info:git:*' check-for-changes true\n  zstyle ':vcs_info:git:*' stagedstr '+'\n  zstyle ':vcs_info:git:*' unstagedstr '-'\n  # }}}\n\n  autoload -Uz llenv_version_origin\n} # }}}\n\nfunction __prompt_lambda_update() { # {{{\n  # components {{{\n  local ok_lambda=\"%F{cyan}λ%f\"\n  local bad_lambda=\"%F{red}λ%f\"\n  local command_line=\"%(?.${ok_lambda}.${bad_lambda}) ... \"\n  local working_directory=\"%F{cyan}%~%f\"\n  local accessory_info=\"${working_directory}\"\n  local git_msg\n\n  # Git info {{{\n  LANG=C vcs_info\n  local -a git_msgs\n  [[ -n \"$vcs_info_msg_0_\" ]] && git_msgs+=(\"%F{green}${vcs_info_msg_0_}%f\")\n  [[ -n \"$vcs_info_msg_1_\" ]] && git_msgs+=(\"%F{yellow}${vcs_info_msg_1_}%f\")\n  [[ -n \"$vcs_info_msg_2_\" ]] && git_msgs+=(\"%F{red}${vcs_info_msg_2_}%f\")\n  git_msg=\"${(j: :)git_msgs}\"\n  # }}}\n  # Perl version {{{\n  local perl_version_source=$(llenv_version_origin plenv)\n  case \"$perl_version_source\" in\n    \"local\"|shell)\n      accessory_info=\"%F{blue}Perl-$(plenv version-name)%f ${accessory_info}\"\n      ;;\n    *)\n      ;;\n  esac\n  # }}}\n  # Ruby version {{{\n  local ruby_version_source=$(llenv_version_origin rbenv)\n  case \"$ruby_version_source\" in\n    \"local\"|shell)\n      accessory_info=\"%F{red}Ruby-$(rbenv version-name)%f ${accessory_info}\"\n      ;;\n    *)\n      ;;\n  esac\n  # }}}\n  # }}}\n\n  # join by newline\n  local -a left_prompt_lines\n  left_prompt_lines=(\n    ${accessory_info}\n    ${command_line}\n  )\n\n  # join by whitespace\n  local -a right_prompt_components\n  right_prompt_components=(\n    ${git_msg}\n  )\n\n  PROMPT=\"${(F)left_prompt_lines}\"\n  RPROMPT=\"${(j: :)right_prompt_components}\"\n} # }}}\n\nprompt_lambda_setup \"$@\"\n\n# vim:set ft=zsh foldmethod=marker:\n"
  },
  {
    "path": ".zsh.d/functions/prompt_yuno_setup",
    "content": "function prompt_yuno_setup() { # {{{\n  if ! (whence add-zsh-hook >/dev/null); then\n    autoload -Uz add-zsh-hooks\n  fi\n  add-zsh-hook precmd __prompt_yuno_update\n\n  # zsh-git-prompt\n  export ZSH_GIT_PROMPT_ROOT=\"$ZSH_HOME/plugins/zsh-git-prompt\"\n  if [[ -f \"$ZSH_GIT_PROMPT_ROOT/zshrc.sh\" ]]; then\n    export ZSH_THEME_GIT_PROMPT_CACHE=1\n    source \"$ZSH_GIT_PROMPT_ROOT/zshrc.sh\"\n  fi\n  if [[ -f \"$ZSH_GIT_PROMPT_ROOT/dist/build/gitstatus/gitstatus\" ]]; then\n    export GIT_PROMPT_EXECUTABLE='haskell'\n  fi\n\n  export ZSH_THEME_GIT_PROMPT_PREFIX=\"\"\n  export ZSH_THEME_GIT_PROMPT_SUFFIX=\"\"\n  export ZSH_THEME_GIT_PROMPT_SEPARATOR=\"|\"\n  export ZSH_THEME_GIT_PROMPT_BRANCH=\"%{$fg_bold[magenta]%}\"\n  export ZSH_THEME_GIT_PROMPT_STAGED=\"%{$fg[blue]%}%{.%G%}\"\n  export ZSH_THEME_GIT_PROMPT_CONFLICTS=\"%{$fg[red]%}%{!%G%}\"\n  export ZSH_THEME_GIT_PROMPT_CHANGED=\"%{$fg[yellow]%}%{!%G%}\"\n  export ZSH_THEME_GIT_PROMPT_BEHIND=\"%{<%G%}\"\n  export ZSH_THEME_GIT_PROMPT_AHEAD=\"%{$fg[green]%}%{>%G%}\"\n  export ZSH_THEME_GIT_PROMPT_UNTRACKED=\"%{?%G%}\"\n  export ZSH_THEME_GIT_PROMPT_CLEAN=\"%{$fg_bold[green]%}%{*%G%}\"\n\n  autoload -Uz llenv_version_origin\n} # }}}\n\nfunction __prompt_yuno_update() { # {{{\n  # components {{{\n  local ok_yuno=\"%F{yellow}✘╹◡╹✘%f\"\n  local bad_yuno=\"%F{red}✘>﹏<✘%f\"\n  local command_line=\"%(?.${ok_yuno}.${bad_yuno}) < \"\n  local working_directory=\"%F{cyan}%~%f\"\n  local accessory_info=\"${working_directory}\"\n\n  # Perl version {{{\n  local perl_version_source=$(llenv_version_origin plenv)\n  case \"$perl_version_source\" in\n    \"local\"|shell)\n      accessory_info=\"%F{blue}Perl-$(plenv version-name)%f ${accessory_info}\"\n      ;;\n    *)\n      ;;\n  esac\n  # }}}\n  # Ruby version {{{\n  local ruby_version_source=$(llenv_version_origin rbenv)\n  case \"$ruby_version_source\" in\n    \"local\"|shell)\n      accessory_info=\"%F{red}Ruby-$(rbenv version-name)%f ${accessory_info}\"\n      ;;\n    *)\n      ;;\n  esac\n  # }}}\n  # }}}\n\n  # join by newline\n  local -a left_prompt_lines\n  left_prompt_lines=(\n    ${accessory_info}\n    ${command_line}\n  )\n\n  # join by whitespace\n  local -a right_prompt_components\n  right_prompt_components=(\n    $(git_super_status)\n  )\n\n  PROMPT=\"${(F)left_prompt_lines}\"\n  RPROMPT=\"${(j: :)right_prompt_components}\"\n} # }}}\n\nprompt_yuno_setup \"$@\"\n\n# vim:set ft=zsh foldmethod=marker:\n"
  },
  {
    "path": ".zshenv",
    "content": "# to avoid overwritten PATH via /usr/libexec/path_helper\n# refs. https://github.com/Homebrew/homebrew-core/pull/32074#issuecomment-421381869\nunsetopt GLOBAL_RCS\n\n# environment\nexport LC_ALL=ja_JP.UTF-8\nexport DEVEL_PATH=$HOME/devel\nexport EDITOR=vim\nexport HOMEBREW_PATH=/opt/homebrew\nexport HOMEBREW_NO_AUTO_UPDATE=1\nexport HOMEBREW_NO_ENV_HINTS=1\nexport HOMEBREW_NO_INSECURE_REDIRECT=1\nexport HOMEBREW_UPDATE_REPORT_ONLY_INSTALLED=1\n\nif [[ -f $HOMEBREW_PATH/bin/bat ]]; then\n  export HOMEBREW_BAT=1\nfi\n\npath=(\n  $HOME/bin(N-/)\n  $DEVEL_PATH/bin(N-/)\n  $HOME/.mysqlenv/bin(N-/)\n  $HOME/.mysqlenv/shims(N-/)\n  $HOME/.pyenv/bin(N-/)\n  $HOME/.pyenv/shims(N-/)\n  $HOME/.rbenv/bin(N-/)\n  $HOME/.rbenv/shims(N-/)\n  $HOME/.plenv/bin(N-/)\n  $HOME/.plenv/shims(N-/)\n  $HOME/.ndenv/bin(N-/)\n  $HOME/.ndenv/shims(N-/)\n  $HOME/.cargo/bin(N-/)\n  $GOPATH/bin(N-/)\n  $HOME/.local/share/aquaproj-aqua/bin(N-/)\n  $HOME/.rd/bin(N-/)\n  $HOME/.local/share/mise/shims(N-/)\n  $HOMEBREW_PATH/opt/node@20/bin(N-/)\n  $HOMEBREW_PATH/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin(N-/)\n  $HOMEBREW_PATH/opt/perl/bin(N-/)\n  $HOMEBREW_PATH/lib/ruby/gems/2.7.0/bin(N-/)\n  $HOMEBREW_PATH/opt/ruby/bin(N-/)\n  $HOMEBREW_PATH/opt/mysql-client/bin(N-/)\n  $HOMEBREW_PATH/opt/mysql-client@8.0/bin(N-/)\n  $HOMEBREW_PATH/opt/coreutils/libexec/gnubin(N-/)\n  $HOMEBREW_PATH/opt/postgresql@16/bin(N-/)\n  $HOMEBREW_PATH/bin(N-/)\n  /usr/local/go/bin(N-/)\n  /mnt/c/Windows(N-/)\n  /mnt/c/Windows/System32/OpenSSH(N-/)\n  /mnt/c/Users/trast/AppData/Local/Programs/Microsoft\\ VS\\ Code/bin(N-/)\n  /usr/bin(N-/)\n  /usr/sbin(N-/)\n  /bin(N-/)\n  /sbin(N-/)\n)\n\ntypeset -U manpath\nmanpath=(\n  $HOMEBREW_PATH/share/man(N-/)\n  $HOMEBREW_PATH/opt/coreutils/libexec/gnuman(N-/)\n  /usr/share/man(N-/)\n)\n\nexport PAGER=less\nexport LESS='--LONG-PROMPT --RAW-CONTROL-CHARS --tabs=3'\n\nif whence code 2>&1 >/dev/null; then\n  EDITOR='code --wait'\nfi\n\nif whence code 2>&1 >/dev/null; then\n  EDITOR='code --wait'\nfi\n\nMACVIM_APP=\nlocal -a macvim_app_candidates=(\n  /opt/homebrew-cask/Caskroom/macvim-kaoriya/*/MacVim.app(N-/)\n  $HOMEBREW_PATH/opt/macvim/MacVim.app(N-/)\n  $HOME/Applications/MacVim.app(N-/)\n  /Applications/MacVim.app(N-/)\n)\nif (( $#macvim_app_candidates > 0 )); then\n  MACVIM_APP=\"$macvim_app_candidates[1]\"\nfi\nexport MACVIM_APP\n\nif [[ -x /usr/libexec/java_home ]] && /usr/libexec/java_home >/dev/null 2>&1; then\n  export JAVA_HOME=\"$(/usr/libexec/java_home -v 1.8)\"\nfi\n\nRUBY_CONFIGURE_OPTS=\"\"\nopenssl_dir=\"$HOMEBREW_PATH/opt/openssl@1.1\"\nif [[ -d \"$openssl_dir\" ]]; then\n  RUBY_CONFIGURE_OPTS=\"${RUBY_CONFIGURE_OPTS} --with-openssl-dir=${openssl_dir}\"\nfi\n\nreadline_dir=\"$HOMEBREW_PATH/opt/readline\"\nif [[ -d \"$readline_dir\" ]]; then\n  RUBY_CONFIGURE_OPTS=\"${RUBY_CONFIGURE_OPTS} --with-readline-dir=${readline_dir}\"\nfi\nexport RUBY_CONFIGURE_OPTS\n\nrover_env=\"$HOME/.rover/env\"\nif [[ -f \"$rover_env\" ]]; then\n  . $rover_env\nfi\n"
  },
  {
    "path": ".zshrc",
    "content": "bindkey -v\n\n# function load path {{{\ntypeset -Ua fpath\nfpath=(\n  $HOME/.zsh.d/functions(N-/)\n  $HOMEBREW_PATH/share/zsh-completions(N-/)\n  $HOMEBREW_PATH/share/zsh/site-functions(N-/)\n  $HOMEBREW_PATH/share/zsh/functions(N-/)\n  $HOMEBREW_PATH/opt/docker-completion/share/zsh/site-functions(N-/)\n  $HOMEBREW_PATH/opt/docker-compose-completion/share/zsh/site-functions(N-/)\n  $fpath\n)\n# }}}\n\n# fundamental options {{{\nexport REPORTTIME=1\n\nsetopt extended_glob\n# }}}\n\n# history {{{\nHISTFILE=$HOME/.zsh_history\nHISTSIZE=10000000\nSAVEHIST=$HISTSIZE\nset \\\n  extended_history \\\n  hist_ignore_dups \\\n  hist_ignore_space \\\n  inc_append_history \\\n  share_history \\\n  no_flow_control \\\n  hist_save_no_dups \\\n  hist_ignore_all_dups\nautoload history-search-end\nzle -N history-beginning-search-backward-end history-search-end\nzle -N history-beginning-search-forward-end history-search-end\nbindkey -v \"^N\" history-beginning-search-forward-end\nbindkey -v \"^P\" history-beginning-search-backward-end\nbindkey -v \"^R\" history-incremental-pattern-search-backward\nbindkey -v \"^S\" history-incremental-pattern-search-forward\n# }}}\n\n# color {{{\nautoload -Uz colors; colors\n[[ -f \"$HOME/.dircolors\" ]] && source \"$HOME/.dircolors\"\n# }}}\n\n# completion {{{\nzmodload -i zsh/complist\nautoload -U compinit && compinit -C\nsetopt \\\n  complete_in_word \\\n  glob_complete  \\\n  hist_expand \\\n  no_beep \\\n  numeric_glob_sort\n\n# Format {{{\nzstyle ':completion:*' format '%F{magenta}-- %d --%f'\nzstyle ':completion:*' group-name ''\nzstyle ':completion:*:options' description yes\nzstyle ':completion:*:options' auto-description '%d'\nzstyle ':completion:*:corrections' format ' %F{yellow}-- %d (errors: %e) --%f'\nzstyle ':completion:*:descriptions' format ' %F{magenta}-- %d --%f'\nzstyle ':completion:*:messages' format ' %F{blue}-- %d --%f'\nzstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'\nzstyle ':completion:*:default' list-prompt '%S%M matches%s'\n\n# Show selected candidate\nzstyle ':completion:*:default' menu select=2\n\nzstyle ':completion:*:default' list-colors \"${(s.:.)LS_COLORS}\"\n\n# Fuzzy match\nzstyle ':completion:*' matcher-list 'm:{a-z}={A-Z} r:|[._-]=*'\nzstyle ':completion:*' completer _oldlist _complete _match _ignored _approximate _prefix\n\n# sudo\nzstyle ':completion:sudo:*' environ PATH=\"$SUDO_PATH:$PATH\"\n\n# Directory candidates order\nzstyle ':completion:*:cd:*' tag-order local-directories path-directories\n\n# Ignore current directory from directory candidates\nzstyle ':completion:*' ignore-parents parent pwd\n\n# Process candidates\nzstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,comm -w'\nzstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'\nzstyle ':completion:*:*:kill:*' menu yes select\nzstyle ':completion:*:*:kill:*' force-list always\nzstyle ':completion:*:*:kill:*' insert-ids single\n\n# Show man candidates with section\nzstyle ':completion:*:manuals' separate-sections true\n# }}}\n\n# key mapping {{{\nbindkey -M menuselect 'h' vi-backward-char\nbindkey -M menuselect 'l' vi-forward-char\nbindkey -M menuselect 'j' vi-down-line-or-history\nbindkey -M menuselect 'k' vi-up-line-or-history\n# }}}\n\n# }}}\n\n# url-quote-magic {{{\nautoload -Uz url-quote-magic\nzle -N self-insert url-quote-magic\n# }}}\n\n# expand backslash to tilde {{{\n# Originally from: https://github.com/cho45/dotfiles/blob/64ea90d17aaf6c46a2cb090f2e12a6e3d7df6034/.zshrc#L245\nexpand-to-home-or-complete() { # {{{\n  if [ \"$LBUFFER\" = \"\" -o \"$LBUFFER[-1]\" = \" \" ]; then\n    LBUFFER+=\"~/\"\n  else\n    zle self-insert\n  fi\n} # }}}\n\nzle -N expand-to-home-or-complete\nbindkey -v \"\\\\\" expand-to-home-or-complete\n# }}}\n\n# ghq {{{\n__widget_cd_repo() {\n  local selected_repo=$( ghq list | fzf )\n  if [[ -n \"$selected_repo\" ]]; then\n    BUFFER=\"pushd $(ghq root)/${selected_repo}\"\n    zle accept-line\n  fi\n  zle -R -c\n}\nzle -N __widget_cd_repo\nbindkey -v \"^]^G\" __widget_cd_repo\n# }}}\n\n# git {{{\n__widget_git_recent_branches() {\n  local selected_branch=$( \\\n    git for-each-ref --sort=-committerdate --format=\"%(refname)\t%(committerdate:relative)\" -- refs/heads \\\n    | sed -E 's/refs\\/heads\\///' \\\n    | fzf --query \"$LBUFFER\" \\\n    | cut -f1 \\\n    )\n  if [[ -n \"$selected_branch\" ]]; then\n    BUFFER=\"git checkout ${selected_branch}\"\n    zle accept-line\n  fi\n  zle -R -c\n}\nzle -N __widget_git_recent_branches\nbindkey -v \"^]gr\" __widget_git_recent_branches\n# }}}\n\n# tmux: split window with vim-like key mappings {{{\n# vertical split {{{\ntmux_vsplit() {\n  BUFFER=\"tmux split-window -d -p 50 -h '$BUFFER'\" # TODO: escape\n  zle accept-line\n}\nzle -N tmux_vsplit\nbindkey -v \"^Wv\" tmux_vsplit\n# }}}\n\n# horizontal split {{{\ntmux_split() {\n  BUFFER=\"tmux split-window -d -p 50 -v '$BUFFER'\" # TODO: escape\n  zle accept-line\n}\nzle -N tmux_split\nbindkey -v \"^Ws\" tmux_split\n# }}}\n# }}}\n\n# alias {{{\nalias :q=exit\nif whence eza >/dev/null 2>&1; then\n  alias  l='eza -aF'\n  alias ls='eza -aF'\n  alias ll='eza -alF'\nelse\n  if whence gls >/dev/null; then\n    alias  l='gls --color=auto -AF'\n    alias ls='gls --color=auto -AF'\n    alias ll='gls --color=auto -AFl'\n  else\n    alias  l='ls -GAF'\n    alias ls='ls -GAF'\n    alias ll='ls -GAFl'\n  fi\nfi\nwhence hub >/dev/null 2>&1 && alias git=hub\n# }}}\n\n# abbrev {{{\nsetopt extended_glob\ntypeset -A abbreviations\nabbreviations=(\n  'Ig' '| rg'\n  'It' '| tail'\n  'Ij' '| jq'\n  'DC' 'docker-compose'\n)\n\nmagic-abbrev-expand() {\n  local MATCH\n  LBUFFER=${LBUFFER%%(#m)[-_a-zA-Z0-9]#}\n  LBUFFER+=${abbreviations[$MATCH]:-$MATCH}\n  zle self-insert\n}\n\nno-magic-abbrev-expand() {\n  LBUFFER+=' '\n}\n\nzle -N magic-abbrev-expand\nzle -N no-magic-abbrev-expand\nbindkey -v \" \" magic-abbrev-expand\nbindkey -v \"^x \" no-magic-abbrev-expand\n# }}}\n\n# prompt {{{\nsetopt \\\n  prompt_subst \\\n  prompt_percent \\\n  transient_rprompt\nautoload -U promptinit && promptinit\n\nautoload -Uz vcs_info\nzstyle ':vcs_info:*' max-exports 4\nzstyle ':vcs_info:(git|svn):*' formats '%R' '%S' '%b' '%s'\nzstyle ':vcs_info:(git|svn):*' actionformats '%R' '%S' '%b|%a' '%s'\nzstyle ':vcs_info:*' formats '%R' '%S' '%s:%b' '%s'\nzstyle ':vcs_info:*' actionformats '%R' '%S' '%s:%b|%a' '%s'\n\n__configure_prompt() {\n  local ok_yuno=\"%F{yellow}✘╹◡╹✘%f\"\n  local bad_yuno=\"%F{red}✘>﹏<✘%f\"\n  local command_line=\"[%D{%Y-%m-%d} %*] %(?.${ok_yuno}.${bad_yuno}) < \"\n\n  psvar=()\n  STY= LANG=en_US.UTF-8 vcs_info\n  repos=`print -nD \"$vcs_info_msg_0_\"`\n  if [[ -n \"$vcs_info_msg_1_\" ]]; then\n      vcs=\"$vcs_info_msg_3_\"\n  else\n      vcs=''\n  fi\n  [[ -n \"$repos\" ]] && psvar[2]=\"$repos\"\n  [[ -n \"$vcs_info_msg_1_\" ]] && psvar[3]=\"$vcs_info_msg_1_\"\n  [[ -n \"$vcs_info_msg_2_\" ]] && psvar[1]=\"$vcs_info_msg_2_\"\n\n  local psdirs='[%F{yellow}%3(v|%32<..<%3v%<<|%60<..<%~%<<)%f]'\n  local psvcs='%3(v|[%25<\\<<%F{yellow}%2v%f@%F{blue}%1v%f%<<]|)'\n\n  local git_is_dirty git_local_changes git_upstream_changes\n  if git rev-parse --is-inside-work-tree &>/dev/null; then\n    command git diff --no-ext-diff --quiet --exit-code || git_is_dirty='%F{yellow}*%f'\n    local git_upstream_status=$(command git rev-list --left-right --count ...@{u} 2>/dev/null)\n    git_upstream_status=(${(ps:\\t:)git_upstream_status})\n    local left=${git_upstream_status[1]} right=${git_upstream_status[2]}\n    (( ${left:-0} > 0 )) && git_local_changes='%F{green}⇡%f'\n    (( ${right:-0} > 0 )) && git_upstream_changes='%F{red}⇣%f'\n  fi\n\n  export PROMPT=\"${command_line}\"\n\n  export RPROMPT=\"${psdirs}${git_is_dirty}${git_local_changes}${git_upstream_changes}${psvcs}\"\n}\nautoload -Uz add-zsh-hooks\nadd-zsh-hook precmd __configure_prompt\n# }}}\n\n# Show anyenv version {{{\nnotify_llenv_version() {\n  for llenv in rbenv plenv ndenv pyenv; do\n    llenv_root=\"${HOME}/.${llenv}\" # XXX\n    if whence $llenv >/dev/null && [[ \"$(${llenv} version-origin)\" != \"$llenv_root/version\" ]]; then\n      echo \"$fg[yellow]${llenv} changed version: $(${llenv} version-name)$reset_color\"\n    fi\n  done\n}\nadd-zsh-hook chpwd notify_llenv_version\n# }}}\n\n# Update current window name {{{\nupdate_window_title() { # {{{\n  emulate -L zsh\n  local -a cmd\n  cmd=(${(z)2})\n\n  case $cmd[1] in\n    *=*) # PLENV_VERSION=5.14.2 plenv exec perl -v => plenv\n      echo -n \"\u001bk$cmd[2]:t\u001b\\\\\"\n      return\n      ;;\n    ls|gls|clear|pwd)\n      echo -n \"\u001bk$ZSH_NAME\u001b\\\\\"\n      return\n      ;;\n    sudo|cd)\n      echo -n \"\u001bk$cmd[1] $cmd[2]:t\u001b\\\\\"\n      return\n      ;;\n    *)\n      echo -n \"\u001bk$cmd[1]:t\u001b\\\\\"\n      return\n      ;;\n  esac\n\n  local -A jt\n  jt=(${(kv)jobtexts})\n  $cmd >>(read num rest cmd=(${(z)${(e):-\\$jt$num}}) echo -n \"\u001bk$cmd[1]:t\u001b\\\\\") 2>/dev/null\n} # }}}\n\nif [ \"$TMUX\" ] && [ \"$TERM_PROGRAM\" != \"vscode\" ]; then\n  add-zsh-hook preexec update_window_title\nfi\n# }}}\n\n# direnv {{{\nif whence direnv >/dev/null; then\n  eval \"$(direnv hook zsh)\"\nfi\n# }}}\n\n# syntax highlight {{{\nif [[ -f \"$HOMEBREW_PATH/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\" ]]; then\n  source $HOMEBREW_PATH/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\nfi\n# }}}\n\n# substring-search {{{\nif [[ -f \"$HOMEBREW_PATH/opt/zsh-history-substring-search/zsh-history-substring-search.zsh\" ]]; then\n  source $HOMEBREW_PATH/opt/zsh-history-substring-search/zsh-history-substring-search.zsh\n\n  bindkey -M vicmd \"k\" history-substring-search-up\n  bindkey -M vicmd \"j\" history-substring-search-down\nfi\n# }}}\n\nif ! ssh-add -l 2>/dev/null; then\n  echo '---> Add SSH private key'\n  ssh-add\nfi\n\n\nif [[ -f '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc' ]]; then\n  source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc'\nfi\n\nif whence op >/dev/null; then\n  eval \"$(op completion zsh)\"\n  compdef _op op\nfi\n\nFZF_DEFAULT_OPTS='--layout reverse'\n\n# tmux {{{\nif whence tmux >/dev/null && [ -z \"$TMUX\" ] && [ \"$TERM_PROGRAM\" != \"vscode\" ]; then\n  if $(tmux has-session 2>/dev/null); then\n    tmux attach-session -t \"${HOST%%.*}\"\n  else\n    tmux new-session -s \"${HOST%%.*}\"\n  fi\n  FZF_DEFAULT_OPTS=\"$FZF_DEFAULT_OPTS --tmux\"\nfi\n# }}}\n\nexport FZF_DEFAULT_OPTS\n\n# vim:set foldmethod=marker:\n"
  },
  {
    "path": "Brewfile",
    "content": "brew \"aqua\"\nbrew \"readline\"\nbrew \"awscli\"\nbrew \"bat\"\nbrew \"coreutils\"\nbrew \"curl\"\nbrew \"direnv\"\nbrew \"eza\"\nbrew \"fzf\"\nbrew \"gh\"\nbrew \"ghq\"\nbrew \"git\"\nbrew \"gnu-sed\"\nbrew \"gnu-tar\"\nbrew \"go\"\nbrew \"jq\"\nbrew \"ko\"\nbrew \"mise\"\nbrew \"moreutils\"\nbrew \"mysql-client\"\nbrew \"openssh\"\nbrew \"pinact\"\nbrew \"postgresql@16\"\nbrew \"proctools\"\nbrew \"pstree\"\nbrew \"reattach-to-user-namespace\"\nbrew \"ripgrep\"\nbrew \"shared-mime-info\"\nbrew \"tig\"\nbrew \"tmux\"\nbrew \"tree\"\nbrew \"zsh\"\nbrew \"zsh-completions\"\nbrew \"zsh-history-substring-search\"\nbrew \"zsh-syntax-highlighting\"\ncask \"1password-cli\"\ncask \"aquaskk\"\ncask \"font-cascadia-code\"\ncask \"font-hackgen\"\ncask \"gcloud-cli\"\ncask \"ghostty\"\ncask \"hammerspoon\"\ncask \"karabiner-elements\"\ncask \"rancher\"\ncask \"raycast\"\ncask \"visual-studio-code\"\ncask \"vivaldi\"\ncask \"witch\"\n"
  },
  {
    "path": "README.md",
    "content": "# dotfiles\n\n![Build Status](https://travis-ci.org/aereal/dotfiles.png?branch=master)\n\nThis repository includes a lot of configuration file is used and optimized for me.\n\nYou can clone or fork them freely, but I don't guarantee that they fit you.\n\n## Tools configured\n\n * Git\n * Vim\n * tmux\n * Zsh\n * OS X (Preferences)\n * Ruby tools\n   * Capistrano\n   * Pow\n   * Pry\n   * Preferred gems\n\n## Tools included\n\nThese tools are included as submodule.\n\n * [cdd](https://github.com/m4i/cdd) - The utility to change working directory over the terminal multiplexor's window\n\n## Policies\n\n * Automatation\n * Vim is the editor\n * Maximize the performance in loved environment\n\n### Automation\n\nThe setup process should be automated to keep syncing environment easy.\n\n### Vim is the editor\n\nUsing the tools as over the their domain is painful.\n\n### Maximize the performance in loved environment\n\nIt is stupid to spoil the performance to keep portability.\n\n## Installation\n\nto be documented ...\n"
  },
  {
    "path": "Rakefile",
    "content": "require 'pathname'\n\n# methods\ndef env_or_default(env: nil, default: nil)\n  ENV.fetch(env, default)\nend\n\ndef ensure_pathname(maybe_pathname)\n  maybe_pathname === Pathname ? maybe_pathname : Pathname.new(maybe_pathname)\nend\n\nclass Recipe\n  include FileUtils::Verbose\n\n  attr_reader :name, :source, :destination\n\n  def initialize(name: nil, source: nil, destination: nil)\n    @name        = name\n    @source      = ensure_pathname(source)\n    @destination = ensure_pathname(destination)\n  end\n\n  def install\n    if self.destination.exist?\n      puts \"Skip #{self.name}\"\n      return\n    end\n    ln_s self.source.to_s, self.destination.to_s\n  end\n\n  def clean\n    unless self.destination.exist? && self.destination.symlink?\n      puts \"Skip #{self.destination}; the destination seems not to be installed with the Rake task\"\n      return\n    end\n    rm self.destination.to_s\n  end\nend\n\n# constants\nINSTALL_DIRECTORY    = ensure_pathname(env_or_default(env: 'INSTALL_DIRECTORY', default: '~')).expand_path\nSOURCE_DIRECTORY     = ensure_pathname(env_or_default(env: 'SOURCE_DIRECTORY', default: Dir.pwd)).expand_path\nDOTFILES_IGNORE_FILE = ensure_pathname(env_or_default(env: 'DOTFILES_IGNORE_FILE', default: SOURCE_DIRECTORY + '.dotfiles.ignore')).expand_path\n\nIGNORED_DOTFILES     = DOTFILES_IGNORE_FILE.each_line.map {|f| SOURCE_DIRECTORY.join(f.strip) }\nDOTFILES             = SOURCE_DIRECTORY.each_child.select {|e| e.basename.to_s.start_with?(?.) }\nINSTALLABLE_DOTFILES = DOTFILES - IGNORED_DOTFILES\nINSTALL_NAMES        = INSTALLABLE_DOTFILES.map {|f| f.relative_path_from(SOURCE_DIRECTORY) }\nINSTALL_RECIPES      = INSTALL_NAMES.map {|name|\n  Recipe.new(name: name, source: SOURCE_DIRECTORY.join(name), destination: INSTALL_DIRECTORY.join(name))\n}\n\ntask :default => :install\n\ndesc \"Install dotfiles into #{INSTALL_DIRECTORY}\"\ntask :install do\n  INSTALL_RECIPES.each do |recipe|\n    recipe.install\n  end\nend\n\ndesc \"Cleanup dotfiles that installed into #{INSTALL_DIRECTORY}\"\ntask :clean do\n  INSTALL_RECIPES.each do |recipe|\n    recipe.clean\n  end\nend\n"
  },
  {
    "path": "bin/abbrev-cwd.go",
    "content": "package main\n\nimport (\n\t\"os\"\n\t\"os/user\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\nfunc main() {\n\tvar err error\n\tcwd, err := os.Getwd()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tcurrentUser, err := user.Current()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\thomeDir := currentUser.HomeDir\n\tcwdWithTilde := strings.Replace(cwd, homeDir, \"~/\", 1)\n\thiers := strings.Split(cwdWithTilde, \"/\")\n\thiersLen := len(hiers)\n\tvar abbreved []string\n\tfor idx, h := range hiers {\n\t\tvar formatted string\n\t\tif (idx == hiersLen-1) || h == \"\" {\n\t\t\tformatted = h\n\t\t} else {\n\t\t\tformatted = string(h[0])\n\t\t}\n\t\tabbreved = append(abbreved, formatted)\n\t}\n\tprintln(filepath.Join(abbreved...))\n}\n"
  },
  {
    "path": "bin/diff-highlight-wrapper",
    "content": "#!/bin/sh\n\nif test -x brew; then\n  git_prefix=`brew --prefix git`\nelse\n  git_prefix='/usr/local'\nfi\ndiff_highlight_command=$git_prefix/share/git-core/contrib/diff-highlight/diff-highlight\n\nif test -x $diff_highlight_command; then\n  $diff_highlight_command | less\nelse\n  less\nfi\n"
  },
  {
    "path": "bin/generate-typable-words",
    "content": "#!/usr/bin/env ruby\n\nLEFT_CHARS       = %w( a s d f g w e r v 3 4 5 )\nLEFT_CANDIDATES  = LEFT_CHARS.flat_map {|c| [c, c.upcase] }\nRIGHT_CHARS      = %w( h j k l i o p n 8 9 0 )\nRIGHT_CANDIDATES = RIGHT_CHARS.flat_map {|c| [c, c.upcase] }\nCANDIDATES       = LEFT_CANDIDATES.shuffle.zip(RIGHT_CANDIDATES.shuffle).flatten\nMAX_RETRY_COUNT  = 3\n\ndef generate_typable_words(candidates, length)\n  candidates.take(length)\nend\n\ndef generate_strong_typable_words(candidates, length, retry_count = 0)\n  chars = generate_typable_words(candidates, length)\n  if (retry_count <= MAX_RETRY_COUNT) && !(chars.grep(/[0-9]/).any? && chars.grep(/[a-z]/).any? && chars.grep(/[A-Z]/).any?)\n    generate_strong_typable_words(candidates, length, retry_count + 1)\n  else\n    chars\n  end\nend\n\nlength        = ARGV.grep(/[0-9]+/).first || 8\nshould_strong = ARGV.include?('--strong')\nstrategy      = should_strong ? :generate_strong_typable_words : :generate_typable_words\nword          = self.__send__(strategy, CANDIDATES, length.to_i)\n\nprint word.join('')\n"
  },
  {
    "path": "bin/git-authors.go",
    "content": "package main\n\n// original: https://github.com/dann/dotfiles/blob/master/devbin/git-authors\n\nimport (\n  \"fmt\"\n  \"log\"\n  \"os/exec\"\n  \"regexp\"\n  \"sort\"\n  \"strconv\"\n  \"strings\"\n)\n\ntype Commit struct {\n  Author string\n  Commits int\n  Insertions int\n  Deletions int\n}\nfunc (c Commit) Ratio(total int) float64 {\n  return float64(c.Commits) / float64(total) * 100.0\n}\n\ntype CommitsSummary []*Commit\n\nfunc (cs CommitsSummary) Len() int {\n  return len(cs)\n}\n\nfunc (cs CommitsSummary) Swap(i, j int) {\n  cs[i], cs[j] = cs[j], cs[i]\n}\n\ntype ByCommitsCount struct {\n  CommitsSummary\n}\n\nfunc (bcc ByCommitsCount) Less(i, j int) bool {\n  return bcc.CommitsSummary[i].Commits < bcc.CommitsSummary[j].Commits\n}\n\nfunc String2Int(s string) int {\n  var (\n    i int64\n    e error\n  )\n  if i, e = strconv.ParseInt(s, 0, 0); e != nil {\n    log.Fatal(e)\n    return -1\n  }\n  return int(i)\n}\n\nfunc CreateCommit(author string, commits int, ins int, del int) *Commit {\n  c := new(Commit)\n  c.Author = author\n  c.Commits = commits\n  c.Insertions = ins\n  c.Deletions = del\n  return c\n}\n\nfunc main() {\n  out, err := exec.Command(\"git\", \"--no-pager\", \"log\", \"--format=%H %aN <%aE>\", \"--no-merges\", \"--shortstat\").Output()\n  if err != nil {\n    log.Fatal(err)\n  }\n\n  commitPattern := regexp.MustCompile(`^([0-9a-f]{40}) (.*)$`)\n  statsPattern  := regexp.MustCompile(`(\\d+) insert.* (\\d+) delet*`)\n\n  var currentAuthor string\n  commitCounts := map[string]int{}\n  inserts := map[string]int{}\n  deletes := map[string]int{}\n  totalCommits := 0\n  for _, l := range(strings.Split(string(out), \"\\n\")) {\n    if commitPattern.MatchString(l) {\n      totalCommits += 1\n      m := commitPattern.FindStringSubmatch(l)\n      if len(m) == 0 { continue }\n      currentAuthor = m[2]\n    } else if statsPattern.MatchString(l) {\n      m := statsPattern.FindStringSubmatch(l)\n      if len(m) == 0 { continue }\n      ins := String2Int(m[1])\n      del := String2Int(m[2])\n      commitCounts[currentAuthor] += 1\n      inserts[currentAuthor] += ins\n      deletes[currentAuthor] += del\n    }\n  }\n\n  var commits CommitsSummary\n  for author, commitCount := range(commitCounts) {\n    c := CreateCommit(author, commitCount, inserts[author], deletes[author])\n    commits = append(commits, c)\n  }\n  sort.Sort(sort.Reverse(ByCommitsCount{commits}))\n\n  fmt.Printf(\"%10s %10s %10s %10s\\n\", \"%\", \"commits\", \"+++\", \"---\")\n  for _, c := range(commits) {\n    fmt.Printf(\"%9.2f%% %10d %10d %10d  %s\\n\",\n      c.Ratio(totalCommits),\n      c.Commits,\n      c.Insertions,\n      c.Deletions,\n      c.Author)\n  }\n}\n"
  },
  {
    "path": "bin/git-catchup",
    "content": "#!/bin/bash\n\n# Catching up with upstream\n\nset -e\n\ncommand git fetch -q\n\ndevelop_branch='staging/master'\nupstream_ref=$develop_branch\\@\\{u\\}\n\nif git rev-parse @{u} 2>/dev/null; then\n  command git merge --no-ff $upstream_ref\nelse\n  git rebase $upstream_ref\nfi\n"
  },
  {
    "path": "bin/git-check-dirty",
    "content": "#!/bin/bash\n\n# refs. https://unix.stackexchange.com/questions/155046/determine-if-git-working-directory-is-clean-from-a-script\n\nif [[ -z \"$(git status --short --untracked-files=normal --porcelain)\" ]]; then\n  exit 0\nfi\n\nexit 1\n"
  },
  {
    "path": "bin/git-git",
    "content": "#!/bin/sh\n\nexec git $@\n"
  },
  {
    "path": "bin/git-issue-checkout",
    "content": "#!/usr/bin/env zsh\n\nlocal matched=$(\n  git for-each-ref \\\n    --sort=committerdate \\\n    --format='%(refname)' \\\n    refs/heads | \\\n    grep \"$1\"\n)\n\nif [[ -z $matched ]]; then\n  echo \"Issue tracking branch is not found\" > /dev/stderr\n  exit 1\nfi\n\ngit checkout ${matched#refs/heads/}\n"
  },
  {
    "path": "bin/git-normalize-url",
    "content": "#!/usr/bin/env ruby\n\nORIGIN = 'origin'\n\ndef run(argv)\n  remote, * = ARGV\n  remote ||= ORIGIN\n  prev_remote_url = `git remote get-url #{remote}`.strip\n  if prev_remote_url.start_with?('ssh://')\n    require 'uri'\n    prev_remote_url = URI.parse(prev_remote_url)\n    new_remote_url = '%s@%s:%s' % [prev_remote_url.user, prev_remote_url.host, prev_remote_url.path[1..-1]]\n    system 'git', 'remote', 'set-url', remote, new_remote_url\n    puts \"#{prev_remote_url} => #{new_remote_url}\"\n  end\nend\n\nrun(ARGV)\n"
  },
  {
    "path": "bin/git-recent-branches",
    "content": "#!/usr/bin/env zsh\n\nfunction __git-recent-branches() {\n  local count=${1:-10}\n  git for-each-ref \\\n    --sort=-committerdate \\\n    --format=\"%(objectname:short)\t%(committerdate:relative)\t%(refname)\" \\\n    refs/heads \\\n    | head -n $count \\\n    | sed -e 's/refs\\/heads\\///'\n}\n\n__git-recent-branches $@\n"
  },
  {
    "path": "bin/git-refresh-branch",
    "content": "#!/usr/bin/env perl\n\nuse Carp ();\nuse List::Util qw(reduce);\n\nsub main {\n  my ($rollback_ref) = @_;\n\n  Carp::croak 'rollback_ref must be given' unless $rollback_ref;\n\n  my $current_branch = do {\n    my $out = `git symbolic-ref --short HEAD`;\n    chomp $out;\n    $out;\n  };\n  my $old_branch_name = old_branch_name($current_branch);\n  seq_run(\n    ['git', 'branch', '-m', $current_branch, $old_branch_name],\n    ['git', 'checkout', '-b', $current_branch, $rollback_ref],\n  );\n}\n\nsub old_branch_name {\n  my ($name) = @_;\n  my $time = time();\n  return \"prev-$time-$name\";\n}\n\nsub seq_run {\n  return List::Util::reduce {\n    my ($last_result, $cmd) = ($a, $b);\n    $last_result == 0 ? run($cmd) : $last_result;\n  } 0, @_;\n}\n\nsub run {\n  my ($cmd) = @_;\n  my $line = join ' ', @$cmd;\n  Carp::carp $line;\n  return system @$cmd;\n}\n\nmain(@ARGV);\n"
  },
  {
    "path": "bin/git-run",
    "content": "#!/bin/bash\n\n# originally written at https://fujimura.hatenablog.com/entry/2018/03/30/181715\n\nset -e\n\ngit-check-dirty\neval $@\ngit add -A\ngit commit --edit --verbose --message \"$(echo $@)\"\n"
  },
  {
    "path": "bin/git-topic-rebase",
    "content": "#!/usr/bin/env zsh\n\n# $1: merge base\n\nset -e\n\ngit rebase --interactive $(git merge-base ${1:-master} HEAD)\n"
  },
  {
    "path": "bin/git-up",
    "content": "#!/usr/bin/env zsh\n\n# $1: remote name (default: origin)\n# $2: branch name (default: HEAD)\n\nset -e\n\ngit push --set-upstream \"${1:-origin}\" $(git symbolic-ref --short ${2:-HEAD})\n"
  },
  {
    "path": "bin/macvim",
    "content": "#!/bin/bash\n\nset -ue\n\nmacvim_wrapper_cmd='reattach-to-user-namespace -l'\nmacvim_app=\"${MACVIM_APP-/Applications/MacVim.app}\"\n\nif [[ ! -e $macvim_app ]]; then\n  echo \"! MACVIM_APP (${MACVIM_APP} not found)\" >/dev/stderr\n  exit 1\nfi\n\nreattach-to-user-namespace -l \"$macvim_app/Contents/MacOS/Vim\" \"$@\"\n"
  },
  {
    "path": "bin/man",
    "content": "#!/bin/sh\n\nenv \\\n  LESS_TERMCAP_mb=$'\\E[01;31m' \\\n  LESS_TERMCAP_md=$'\\E[01;38;5;74m' \\\n  LESS_TERMCAP_me=$'\\E[0m' \\\n  LESS_TERMCAP_se=$'\\E[0m' \\\n  LESS_TERMCAP_so=$'\\E[38;5;246m' \\\n  LESS_TERMCAP_ue=$'\\E[0m' \\\n  LESS_TERMCAP_us=$'\\E[04;38;5;146m' \\\n  /usr/bin/man \"$@\"\n"
  },
  {
    "path": "bin/metacpan",
    "content": "#!/usr/bin/env zsh\n\nopen_command=''\nopen_args=''\n\nif /usr/bin/which -s open; then\n  open_command='open'\n  open_args=''\nfi\n\nif [[ ! -x =$open_command ]]; then\n  echo \"open-able command is not found.\" > /dev/stderr\n  exit 1\nfi\n\n$open_command $open_args \"http://metacpan.org/module/$1\"\n"
  },
  {
    "path": "bin/mkproj",
    "content": "#!/usr/bin/env zsh\n\nset -ue\n\n_script_name=$(basename $0)\nusage() {\n  cat <<DOC\n  ${_script_name} [--help] [--host REPO_HOST] [--owner OWNER_NAME] [--design] [--no-peek]\nDOC\n}\n\ndie() {\n  echo \"! $@\" >/dev/stderr\n  exit 1\n}\n\ninfo() {\n  echo \"---> $@\" >/dev/stderr\n}\n\nrepos_root=\"$(ghq root)\"\nrepo_host=\"github.com\"\nowner=\"$USER\"\nname=''\ncreate=1\npeek=1\n\nwhile [[ $# > 0 ]]; do\n  case \"$1\" in\n    --help,-h)\n      usage\n      exit 0\n      ;;\n    --host)\n      shift\n      repo_host=\"$1\"\n      ;;\n    --owner)\n      shift\n      owner=\"$1\"\n      ;;\n    --design)\n      create=0\n      ;;\n    --no-peek)\n      peek=0\n      ;;\n    -*)\n      echo \"Unknown args: $1\"\n      exit 1\n      ;;\n    *)\n      name=\"$1\"\n      ;;\n  esac\n  shift\ndone\n\nowner_path=\"${repos_root}/${repo_host}/${owner}\"\nrepo_path=\"${owner_path}/${name}\"\n\nif [[ -z \"$name\" ]]; then\n  die 'Repository name cannot be empty'\nfi\n\n\nif [[ $create -eq 1 ]]; then\n  if [[ -e $repo_path ]]; then\n    die \"Already exists: $repo_path\"\n  fi\n\n  info \"Create $repo_path\"\n  mkdir -p $repo_path\nfi\n\ncd $repo_path\n\nif [[ ! -d \"${repo_path}/.git\" ]]; then\n  info 'Try to git init ...'\n  git init\n  git commit --allow-empty --message ':sunrise:'\nfi\n\nif [[ $peek -eq 1 ]]; then\n  info \"cd $repo_path ...\"\n  exec $SHELL\nfi\n"
  },
  {
    "path": "bin/os-version",
    "content": "#!/bin/bash\n\ncase \"$(uname)\" in\n  Darwin*)\n    sw_vers -productVersion\n    ;;\n  Linux*)\n    if which lsb_release >/dev/null 2>&1; then\n      lsb_release --release | cut -f2\n    fi\n    if [[ -f /etc/redhat-release ]]; then\n      cat /etc/redhat-release | cut -d' ' -f3\n    fi\n    ;;\n  *)\n    echo \"Unknown OS\" >/dev/stderr\n    exit 1\nesac\n"
  },
  {
    "path": "bin/paginate",
    "content": "#!/bin/bash\n\n${PAGER-less}\n"
  },
  {
    "path": "bin/pm-version",
    "content": "#!/bin/sh\n\nperl -M\"$1\" -e \"print qq|\\$$1::VERSION\\n|\"\n"
  },
  {
    "path": "bin/screenshot2slack",
    "content": "#!/bin/bash\n\nset -e\n\ntmp_dir='/tmp'\nformat='png'\nfile_name=\"${tmp_dir}/$(date +%s).${format}\"\nscreencapture -i \"${file_name}\"\nslackcat $@ \"${file_name}\"\n"
  },
  {
    "path": "bin/ts-project",
    "content": "#!/bin/bash\n\nset -e\n\nusage() {\n  _script_name=$(basename $0)\n  cat <<DOC\n  ${_script_name} [--help|--with-mocha|--with-espower-babel]\nDOC\n}\n\nroot_dir=.\nnpm_test_command=''\nwith_mocha=0\nwith_espower_babel=0\nwhile [[ $# > 0 ]]; do\n  case \"$1\" in\n    --help)\n      usage\n      exit 0\n      ;;\n    --with-mocha)\n      with_mocha=1\n      ;;\n    --with-espower-babel)\n      with_espower_babel=1\n      ;;\n  esac\n  shift\ndone\n\njson_satisfy() {\n  jq --exit-status \"$2\" < $1 >/dev/null\n}\n\npkg_satisfy() {\n  json_satisfy ${root_dir}/package.json \"$1\"\n}\n\nupdate_json() {\n  cat \"$1\" | jq --unbuffered \"$2\" | tee \"$1\"\n}\n\nif [[ ! -d \"${root_dir}/.git\" ]]; then\n  echo '---> Not Git repository'\n  echo '---> Try to git init ...'\n  git init\n  git commit --allow-empty --message ':sunrise:'\nfi\n\nif [[ ! -f \"${root_dir}/package.json\" ]]; then\n  echo '---> npm init ...'\n  npm init --yes\nfi\n\nif ! git check-ignore --quiet 'node_modules'; then\n  echo '---> Ignore node_modules ...'\n  echo 'node_modules' >> .gitignore\nfi\n\nif ! pkg_satisfy '.devDependencies | has(\"typescript\")'; then\n  echo '---> Install TypeScript ...'\n  npm install --save-dev typescript\nfi\n\nif [[ $with_mocha -eq 1 ]]; then\n  if ! pkg_satisfy '.devDependencies | has(\"mocha\")'; then\n    echo '---> Install mocha ...'\n    npm install --save-dev mocha\n  fi\n  npm_test_command='mocha'\n\n  if [[ $with_espower_babel -eq 1 ]]; then\n    if ! pkg_satisfy '.devDependencies | has(\"espower-babel\")'; then\n      echo '---> Install espower-babel ...'\n      npm install --save-dev espower-babel\n    fi\n    npm_test_command='mocha --compilers js:espower-babel/guess'\n  fi\n\n  if ! pkg_satisfy \".scripts.test == \\\"${npm_test_command}\\\"\"; then\n    echo '---> configure `npm test` ...'\n    update_json \"${root_dir}/package.json\" \"map_values(if type == \\\"object\\\" and has(\\\"test\\\") then .test = \\\"${npm_test_command}\\\" else . end)\"\n  fi\nfi\n\nif [[ ! -f \"${root_dir}/tsconfig.json\" ]]; then\n  echo '---> Create tsconfig.json ...'\n  $(npm bin)/tsc --init\nfi\n\nif ! json_satisfy ${root_dir}/tsconfig.json '.compilerOptions.target == \"es5\"'; then\n  echo '---> Set target version to ES5 ...'\n  update_json \"${root_dir}/tsconfig.json\" 'map_values(if type == \"object\" and has(\"target\") then .target = \"es5\" else . end)'\nfi\n\nif ! json_satisfy ${root_dir}/tsconfig.json '.compilerOptions.noImplicitAny == true'; then\n  echo '---> Refuse implicit any ...'\n  update_json \"${root_dir}/tsconfig.json\" 'map_values(if type == \"object\" and has(\"noImplicitAny\") then .noImplicitAny = true else . end)'\nfi\n\nif ! pkg_satisfy '.scripts.build == \"tsc\"'; then\n  echo '---> Configure npm run build'\n  update_json \"${root_dir}/package.json\" 'map_values(if type == \"object\" and has(\"test\") then .build = \"tsc\" else . end)'\nfi\n\nif ! pkg_satisfy '.devDependencies | has(\"dtsm\")'; then\n  echo '---> Install dtsm ...'\n  npm install --save-dev dtsm\nfi\n\nif [[ ! -f \"${root_dir}/dtsm.json\" ]]; then\n  echo '---> Generate dtsm.json'\n  $(npm bin)/dtsm --insight false init\nfi\n\nif ! git check-ignore --quiet 'typings'; then\n  echo '---> Ignore typings ...'\n  echo 'typings' >> .gitignore\nfi\n"
  },
  {
    "path": "colors/Japanesque/Japanesque.itermcolors",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>Ansi 0 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.20856963098049164</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.22283002734184265</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.20568123459815979</real>\n\t</dict>\n\t<key>Ansi 1 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.38021323084831238</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.24660280346870422</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.81089001893997192</real>\n\t</dict>\n\t<key>Ansi 10 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.17100538313388824</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.49610027670860291</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.46425256133079529</real>\n\t</dict>\n\t<key>Ansi 11 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.1833186000585556</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.35025951266288757</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.46875584125518799</real>\n\t</dict>\n\t<key>Ansi 12 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.47479093074798584</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.34725069999694824</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.074933364987373352</real>\n\t</dict>\n\t<key>Ansi 13 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.56739711761474609</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.25756442546844482</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.37626489996910095</real>\n\t</dict>\n\t<key>Ansi 14 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.79221165180206299</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.73511248826980591</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.46331635117530823</real>\n\t</dict>\n\t<key>Ansi 15 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.68263441324234009</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.71090340614318848</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.6965288519859314</real>\n\t</dict>\n\t<key>Ansi 2 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.35710996389389038</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.71854472160339355</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.48304364085197449</real>\n\t</dict>\n\t<key>Ansi 3 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.16496320068836212</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.70341014862060547</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.91225624084472656</real>\n\t</dict>\n\t<key>Ansi 4 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.82943236827850342</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.60329484939575195</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.29914027452468872</real>\n\t</dict>\n\t<key>Ansi 5 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.76894307136535645</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.49908417463302612</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.64749133586883545</real>\n\t</dict>\n\t<key>Ansi 6 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.67739421129226685</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.60572487115859985</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.22138151526451111</real>\n\t</dict>\n\t<key>Ansi 7 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.96549803018569946</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.98070180416107178</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.98026049137115479</real>\n\t</dict>\n\t<key>Ansi 8 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.34851333498954773</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.3565424382686615</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.34871619939804077</real>\n\t</dict>\n\t<key>Ansi 9 Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.651419997215271</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.55888265371322632</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.81987529993057251</real>\n\t</dict>\n\t<key>Background Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.11759774386882782</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.11759574711322784</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.11759926378726959</real>\n\t</dict>\n\t<key>Bold Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.98028081655502319</real>\n\t\t<key>Green Component</key>\n\t\t<real>1</real>\n\t\t<key>Red Component</key>\n\t\t<real>1</real>\n\t</dict>\n\t<key>Cursor Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.31030187010765076</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.81186991930007935</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.92885816097259521</real>\n\t</dict>\n\t<key>Cursor Text Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.20856963098049164</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.22283002734184265</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.20568123459815979</real>\n\t</dict>\n\t<key>Foreground Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.9264865517616272</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.96665072441101074</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.97033727169036865</real>\n\t</dict>\n\t<key>Selected Text Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.9264865517616272</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.96665072441101074</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.97033727169036865</real>\n\t</dict>\n\t<key>Selection Color</key>\n\t<dict>\n\t\t<key>Blue Component</key>\n\t\t<real>0.46659797430038452</real>\n\t\t<key>Green Component</key>\n\t\t<real>0.34349527955055237</real>\n\t\t<key>Red Component</key>\n\t\t<real>0.089366093277931213</real>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "colors/Japanesque/README.markdown",
    "content": "# Japanesque\n\n![The image of Japanesque on iTerm 2](http://cdn-ak.f.st-hatena.com/images/fotolife/a/aereal/20130102/20130102224938.png)\n\nJapanesque is colorscheme featured Japanese traditional colors.\n\n## Supported Applications\n\n * [iTerm 2](http://iterm2.com/)\n\n## Author\n\naereal (aereal@aerael.org)\n\n## License\n\nThe MIT License (MIT)\nCopyright © 2013 aereal, aereal.org\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "osx/defaults/alfred.bash",
    "content": "#!/usr/bin/env bash\n\ndefaults write com.alfredapp.Alfred appearance.hideStatusBarIcon -bool true\ndefaults write com.alfredapp.Alfred appearance.hidePreferencesCogIcon -bool true\ndefaults write com.alfredapp.Alfred appearance.hideHat -bool true\ndefaults write com.alfredapp.Alfred system.eject -bool true\n"
  },
  {
    "path": "osx/defaults/config.bash",
    "content": "#!/usr/bin/env bash\n\n# Dock {{{\ndefaults write com.apple.dock autohide -bool true\ndefaults write com.apple.dock autohide-delay -float 0\ndefaults write com.apple.dock mineffect scale\ndefaults write com.apple.dock minimize-to-application -bool true\ndefaults write com.apple.dock showhidden -bool true\ndefaults write com.apple.dock no-glass -bool true\ndefaults write com.apple.dock magnification -bool true\ndefaults write com.apple.dock mouse-over-hilite-stack -bool true\ndefaults write com.apple.dock show-process-indicator -bool false\ndefaults write com.apple.dock dashboard-in-overlay -bool true\ndefaults write com.apple.dock expose-animation-duration -float 0.1\ndefaults write com.apple.dashboard mcx-disabled -bool true\n# }}}\n# Time Machine {{{\ndefaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true\nsudo tmutil disablelocal\n# }}}\n# Appearance {{{\ndefaults write -g AppleAquaColorVariant -int 6 # Graphite\ndefaults write -g AppleEnableMenuBarTransparency -bool false\ndefaults write -g AppleShowScrollBars -string 'Automatic'\n# }}}\n# Finder {{{\ndefaults write -g AppleShowAllExtensions -bool true\ndefaults write com.apple.finder FXDefaultSearchScope -string 'SCcf'\ndefaults write com.apple.finder QLEnableXRayFolders -bool true\ndefaults write com.apple.finder DisableAllAnimations -bool true\ndefaults write com.apple.finder AppleShowAllFiles -bool true\ndefaults write com.apple.finder ShowStatusBar -bool true\ndefaults write com.apple.finder ShowPathbar -bool true\ndefaults write com.apple.finder FXPreferredViewStyle -string \"Nslv\"\ndefaults write -g NSNavPanelExpandedStateForSaveMode -bool true\ndefaults write com.apple.LaunchServices LSQuarantine -bool false\ndefaults write com.apple.finder FXEnableExtensionChangeWarning -bool true\n# }}}\n# Screen Saver {{{\ndefaults write com.apple.screensaver askForPassword -int 1\ndefaults write com.apple.screensaver askForPasswordDelay -int 0\n# }}}\n# Trackpad {{{\ndefaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true\ndefaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool true\n# }}}\n# Activity Monitor.app {{{\ndefaults write com.apple.ActivityMonitor IconType -int 4\n# }}}\n# App Store {{{\ndefaults write com.apple.appstore ShowDebugMenu -bool true\n# }}}\n\ndefaults write -g NSAutomaticSpellingCorrectionEnabled -bool false\n\ndefaults write com.apple.frameworks.diskimages skip-verify -bool true\ndefaults write com.apple.frameworks.diskimages skip-verify-locked -bool true\ndefaults write com.apple.frameworks.diskimages skip-verify-remote -bool true\n\ndefaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true\n\n# Enable full-keyboard access (enable tab-key to focus all UI control items)\ndefaults write -g AppleKeyboardUIMode -int 3\n\ndefaults write -g com.apple.keyboard.fnState -bool true\n\ndefaults write -g NSQuitAlwaysKeepsWindows -bool false\n\n# Huge moust pointer\ndefaults write com.apple.universalaccess mouseDriverCursorSize -int 4\n\n# http://www.defaults-write.com/increase-the-speed-of-os-x-dialogs-boxes/#.UfSW3GSsgy4\ndefaults write -g NSWindowResizeTime -float 0.001\n\n# Save to disk (not to iCloud)\ndefaults write -g NSDocumentSaveNewDocumentsToCloud -bool false\n\n# Disable standby mode\nsudo pmset -a standbydelay 86400 # 24 hours\n"
  },
  {
    "path": "osx/keyremap4macbook/config.sh",
    "content": "#!/bin/sh\n\ncli=/Applications/KeyRemap4MacBook.app/Contents/Applications/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli\n\n$cli set org.aereal.sequel-pro.remap-c-h-to-delete 1\n/bin/echo -n .\n$cli set repeat.initial_wait 200\n/bin/echo -n .\n$cli set org.aereal.limechat.move-to-previous-unread-channel 1\n/bin/echo -n .\n$cli set remap.space2shiftL_space_keyrepeat 1\n/bin/echo -n .\n$cli set org.aereal.limechat.move-down-channel 1\n/bin/echo -n .\n$cli set option.emacsmode_controlM 1\n/bin/echo -n .\n$cli set repeat.wait 35\n/bin/echo -n .\n$cli set org.aereal.limechat.move-up-channel 1\n/bin/echo -n .\n$cli set remap.swapcolons 1\n/bin/echo -n .\n$cli set org.aereal.limechat.move-to-next-unread-channel 1\n/bin/echo -n .\n/bin/echo\n"
  },
  {
    "path": "osx/keyremap4macbook/private.xml",
    "content": "<?xml version=\"1.0\"?>\n<root>\n  <appdef>\n    <appname>TERMINAL</appname>\n    <equal>com.googlecode.iterm2</equal>\n  </appdef>\n\n  <appdef>\n   <appname>SEQUELPRO</appname>\n   <equal>com.sequelpro.SequelPro</equal>\n  </appdef>\n\n  <appdef>\n   <appname>LIMECHAT</appname>\n   <equal>net.limechat.LimeChat</equal>\n   <equal>net.limechat.LimeChat-AppStore</equal>\n  </appdef>\n\n  <item>\n    <name>LimeChat</name>\n    <item>\n      <name>Move up active channel</name>\n      <identifier>org.aereal.limechat.move-up-channel</identifier>\n      <only>LIMECHAT</only>\n      <autogen>--KeyToKey-- KeyCode::K, VK_COMMAND, KeyCode::CURSOR_UP, VK_COMMAND</autogen>\n    </item>\n    <item>\n      <name>Move down active channel</name>\n      <identifier>org.aereal.limechat.move-down-channel</identifier>\n      <only>LIMECHAT</only>\n      <autogen>--KeyToKey-- KeyCode::J, VK_COMMAND, KeyCode::CURSOR_DOWN, VK_COMMAND</autogen>\n    </item>\n    <item>\n      <name>Move to previous unread channel</name>\n      <identifier>org.aereal.limechat.move-to-previous-unread-channel</identifier>\n      <only>LIMECHAT</only>\n      <autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | VK_SHIFT, KeyCode::CURSOR_UP, VK_CONTROL | VK_SHIFT</autogen>\n    </item>\n    <item>\n      <name>Move to next unread channel</name>\n      <identifier>org.aereal.limechat.move-to-next-unread-channel</identifier>\n      <only>LIMECHAT</only>\n      <autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | VK_SHIFT, KeyCode::CURSOR_DOWN, VK_CONTROL | VK_SHIFT</autogen>\n    </item>\n  </item>\n\n  <item>\n   <name>Sequal Pro</name>\n   <item>\n     <name>Remap C-h to DELETE</name>\n     <identifier>org.aereal.sequel-pro.remap-c-h-to-delete</identifier>\n     <only>SEQUELPRO</only>\n     <autogen>--KeyToKey-- KeyCode::H, VK_CONTROL, KeyCode::DELETE</autogen>\n   </item>\n  </item>\n\n  <item>\n    <name>Japanese IME</name>\n    <item>\n      <name>Option_L to EISUU</name>\n      <identifier>org.aereal.remap-option-l-to-kana-eisuu</identifier>\n      <autogen>--KeyOverlaidModifier-- KeyCode::OPTION_L, KeyCode::OPTION_L, KeyCode::JIS_EISUU</autogen>\n    </item>\n    <item>\n      <name>Option_R to KANA</name>\n      <identifier>org.aereal.remap-option-r-to-kana-eisuu</identifier>\n      <autogen>--KeyOverlaidModifier-- KeyCode::OPTION_R, KeyCode::OPTION_R, KeyCode::JIS_KANA</autogen>\n    </item>\n  </item>\n\n  <item>\n   <name>tmux integration</name>\n    <item>\n      <name>Double-tap Command_R to tmux prefix key on Terminal application</name>\n      <identifier>org.aereal.double-tap-command-r-to-tmux-prefix-key</identifier>\n      <only>TERMINAL</only>\n      <autogen>--DoublePressModifier-- KeyCode::COMMAND_R, KeyCode::COMMAND_R, KeyCode::K, ModifierFlag::CONTROL_L</autogen>\n    </item>\n    <item>\n      <name>Cmd-T to [prefix]-c</name>\n      <appendix>Create a new window</appendix>\n      <only>TERMINAL</only>\n      <identifier>org.aereal.command-t-to-prefix-c</identifier>\n      <autogen>--KeyToKey-- KeyCode::T, VK_COMMAND, KeyCode::K, VK_CONTROL, KeyCode::C</autogen>\n    </item>\n    <item>\n      <name>Cmd-W to [prefix]-k</name>\n      <appendix>Kill the window</appendix>\n      <only>TERMINAL</only>\n      <identifier>org.aereal.tmux.command-w-to-prefix-k</identifier>\n      <autogen>--KeyToKey-- KeyCode::W, VK_COMMAND, KeyCode::K, VK_CONTROL, KeyCode::K</autogen>\n    </item>\n    <item>\n      <name>Move the window (Next)</name>\n      <only>TERMINAL</only>\n      <identifier>org.aereal.tmux.move-the-window-next</identifier>\n      <autogen>--KeyToKey-- KeyCode::BRACKET_RIGHT, VK_COMMAND | VK_SHIFT, KeyCode::K, VK_CONTROL, KeyCode::N</autogen>\n    </item>\n    <item>\n      <name>Move the window (Previous)</name>\n      <only>TERMINAL</only>\n      <identifier>org.aereal.tmux.move-the-window-previous</identifier>\n      <autogen>--KeyToKey-- KeyCode::BRACKET_LEFT, VK_COMMAND | VK_SHIFT, KeyCode::K, VK_CONTROL, KeyCode::P</autogen>\n    </item>\n  </item>\n</root>\n"
  },
  {
    "path": "test/Gemfile",
    "content": "source 'https://rubygems.org/'\n\ngem 'minitest-spec'\ngem 'rake'\n"
  },
  {
    "path": "test/dotfiles_test.rb",
    "content": "require 'pathname'\nrequire 'minitest/autorun'\nrequire 'minitest/spec'\nrequire 'yaml'\n\nHOME         = Pathname.new(ENV.fetch('HOME'))\nPROJECT_DIR  = Pathname.new(__FILE__).expand_path.parent.parent\nSOURCE_DIR   = PROJECT_DIR\nDEST_DIR     = Pathname.new(ENV.fetch('DOTFILES_INSTALL_DIR', HOME))\nCONFIG       = YAML.load_file(PROJECT_DIR + '.dotfiles.yml')\nDOTFILES     = CONFIG['dotfiles']\nDOTFILES_MAP = DOTFILES.map {|f|\n  { basename: f, source: SOURCE_DIR + f, dest: DEST_DIR + f }\n}\n\nDOTFILES_MAP.each do |dotfile|\n  describe dotfile[:basename] do\n    it \"is symlink to source\" do\n      source = dotfile[:source]\n      dest   = dotfile[:dest]\n\n      dest.symlink?.must_equal(true)\n      dest.readlink.must_equal(source)\n    end\n  end\nend\n"
  }
]