rails-ahoy 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +2 -0
- data/ahoy.gemspec +24 -0
- data/lib/ahoy.rb +5 -0
- data/lib/ahoy/version.rb +3 -0
- data/lib/generators/ahoy/ansible_generator.rb +36 -0
- data/lib/generators/ahoy/base.rb +24 -0
- data/lib/generators/ahoy/deploy_generator.rb +47 -0
- data/lib/generators/ahoy/init_generator.rb +49 -0
- data/lib/generators/ahoy/templates/_Vagrantfile +20 -0
- data/lib/generators/ahoy/templates/_database.yml +18 -0
- data/lib/generators/ahoy/templates/_deploy.rb +51 -0
- data/lib/generators/ahoy/templates/_env_vars.yml +7 -0
- data/lib/generators/ahoy/templates/_puma.rb +24 -0
- data/lib/generators/ahoy/templates/_puma.sh +79 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/playbook.yml +22 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/tasks/main.yml +10 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/database.yml +9 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/deploy_env/templates/secrets.yml +2 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/tasks/main.yml +43 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/essentials/templates/vimrc +472 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/tasks/main.yml +15 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/nginx/templates/platform.conf +24 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/nodejs/tasks/main.yml +6 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/handlers/main.yml +3 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/tasks/main.yml +39 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/postgresql/templates/pg_hba.conf +91 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/files/gemrc +5 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/gems.yml +6 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/main.yml +4 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/rbenv.yml +31 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/ruby/tasks/ruby.yml +15 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/firewall.yml +6 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/security/tasks/main.yml +9 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/roles/user/tasks/main.yml +6 -0
- data/lib/generators/ahoy/templates/ansible/playbooks/tasks/vagrant_settings.yml +3 -0
- data/lib/generators/ahoy/templates/ansible_templates/_hosts +5 -0
- data/lib/generators/ahoy/templates/ansible_templates/_provision.sh +1 -0
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/group_vars/_all.yml +6 -0
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_default.yml +8 -0
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_deploy.yml +7 -0
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/host_vars/_production_root.yml +2 -0
- data/lib/generators/ahoy/templates/ansible_templates/playbooks/roles/security/tasks/_ssh_settings.yml +25 -0
- data/lib/generators/ahoy/vagrant_generator.rb +52 -0
- metadata +121 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
# Production playbook
|
3
|
+
#==========================================================
|
4
|
+
- hosts: production_root
|
5
|
+
sudo: true
|
6
|
+
user: root
|
7
|
+
roles:
|
8
|
+
- role: user
|
9
|
+
- role: security
|
10
|
+
|
11
|
+
- hosts: production_deploy
|
12
|
+
sudo: true
|
13
|
+
user: deploy
|
14
|
+
vars_files:
|
15
|
+
- ../../env_vars.yml
|
16
|
+
roles:
|
17
|
+
- role: essentials
|
18
|
+
- role: nodejs
|
19
|
+
- role: nginx
|
20
|
+
- role: postgresql
|
21
|
+
- role: ruby
|
22
|
+
- role: deploy_env
|
@@ -0,0 +1,10 @@
|
|
1
|
+
---
|
2
|
+
- name: create deploy directory
|
3
|
+
sudo: true
|
4
|
+
file: path=/var/www/{{ app_name }}/shared/config owner={{ deploy_user }} group={{ deploy_user }} recurse=yes state=directory
|
5
|
+
|
6
|
+
- name: copy database.yml
|
7
|
+
template: src=database.yml dest=/var/www/{{ app_name }}/shared/config/database.yml owner={{ deploy_user }} group={{ deploy_user }}
|
8
|
+
|
9
|
+
- name: copy secrets.yml
|
10
|
+
template: src=secrets.yml dest=/var/www/{{ app_name }}/shared/config/secrets.yml owner={{ deploy_user }} group={{ deploy_user }}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
- name: add keyscan to allow basic access to github
|
3
|
+
shell: ssh-keyscan github.com >> /etc/ssh/ssh_known_hosts
|
4
|
+
|
5
|
+
- name: install basic packages
|
6
|
+
apt: pkg={{item}} state=present update_cache=yes
|
7
|
+
with_items:
|
8
|
+
- build-essential
|
9
|
+
- git-core
|
10
|
+
- curl
|
11
|
+
- wget
|
12
|
+
- cmake
|
13
|
+
- python-dev
|
14
|
+
|
15
|
+
- name: add apt-get repository for latest vim
|
16
|
+
action: apt_repository repo=ppa:fcwu-tw/ppa
|
17
|
+
|
18
|
+
- name: install vim
|
19
|
+
apt: name=vim state=latest update_cache=yes
|
20
|
+
|
21
|
+
- name: copy .vimrc
|
22
|
+
template: src=vimrc dest=/home/{{ deploy_user}}/.vimrc owner={{ deploy_user }} group={{ deploy_user }}
|
23
|
+
|
24
|
+
- name: check if NeoBundle exists
|
25
|
+
shell: test -d /home/{{ deploy_user }}/.vim/bundle/.neobundle && echo true
|
26
|
+
register: neobundle_installed
|
27
|
+
ignore_errors: yes
|
28
|
+
|
29
|
+
- name: download NeoBundle plugin for vim
|
30
|
+
git: repo=git://github.com/Shougo/neobundle.vim dest=/home/{{ deploy_user }}/.vim/bundle/neobundle.vim
|
31
|
+
when: neobundle_installed|failed
|
32
|
+
|
33
|
+
- name: check if YouCompleteMe exists
|
34
|
+
shell: test -d /home/{{ deploy_user }}/.vim/bundle/YouCompleteMe && echo true
|
35
|
+
register: ycm_installed
|
36
|
+
ignore_errors: yes
|
37
|
+
|
38
|
+
- name: download YouCompleteMe plugin for vim
|
39
|
+
git: repo=git://github.com/Valloric/YouCompleteMe dest=/home/{{ deploy_user }}/.vim/bundle/YouCompleteMe
|
40
|
+
when: ycm_installed|failed
|
41
|
+
|
42
|
+
- name: change .vim permissions
|
43
|
+
file: path=/home/{{ deploy_user }}/.vim owner={{ deploy_user }} group={{ deploy_user }} recurse=yes state=directory
|
@@ -0,0 +1,472 @@
|
|
1
|
+
" ===================================================
|
2
|
+
" INITIALIZE
|
3
|
+
" ===================================================
|
4
|
+
if has('vim_starting')
|
5
|
+
set nocompatible
|
6
|
+
set runtimepath+=$HOME/.vim/bundle/neobundle.vim/
|
7
|
+
endif
|
8
|
+
call neobundle#begin(expand('$HOME/.vim/bundle'))
|
9
|
+
|
10
|
+
NeoBundleFetch 'Shougo/neobundle.vim'
|
11
|
+
|
12
|
+
" File management, search, navigation
|
13
|
+
NeoBundle 'mileszs/ack.vim'
|
14
|
+
NeoBundle 'kien/ctrlp.vim'
|
15
|
+
NeoBundle 'sjl/gundo.vim'
|
16
|
+
NeoBundle 'scrooloose/nerdtree'
|
17
|
+
NeoBundle 'vim-scripts/restore_view.vim'
|
18
|
+
NeoBundle 'jeetsukumaran/vim-buffergator'
|
19
|
+
NeoBundle 'vim-scripts/YankRing.vim'
|
20
|
+
NeoBundle 'vim-scripts/zoomwintab.vim'
|
21
|
+
|
22
|
+
" Vim UI/UX
|
23
|
+
NeoBundle 'bling/vim-airline'
|
24
|
+
NeoBundle 'reedes/vim-colors-pencil'
|
25
|
+
NeoBundle 'gcmt/taboo.vim'
|
26
|
+
|
27
|
+
" Syntax highlighting
|
28
|
+
" NeoBundle 'scrooloose/syntastic'
|
29
|
+
NeoBundle 'jtratner/vim-flavored-markdown.git'
|
30
|
+
NeoBundle 'elzr/vim-json'
|
31
|
+
NeoBundle 'kchmck/vim-coffee-script'
|
32
|
+
NeoBundle 'pangloss/vim-javascript'
|
33
|
+
" NeoBundle 'chase/vim-ansible-yaml'
|
34
|
+
|
35
|
+
" Snippets & autocomplete
|
36
|
+
NeoBundle 'sirver/ultisnips'
|
37
|
+
NeoBundle 'Valloric/YouCompleteMe'
|
38
|
+
NeoBundle 'honza/vim-snippets'
|
39
|
+
|
40
|
+
" Formatters, selectors, accelerators
|
41
|
+
NeoBundle 'mattn/emmet-vim'
|
42
|
+
NeoBundle 'vim-scripts/matchit.zip'
|
43
|
+
NeoBundle 'godlygeek/tabular'
|
44
|
+
NeoBundle 'tpope/vim-commentary'
|
45
|
+
NeoBundle 'tpope/vim-endwise'
|
46
|
+
NeoBundle 'terryma/vim-multiple-cursors'
|
47
|
+
NeoBundle 'tpope/vim-repeat'
|
48
|
+
NeoBundle 'tpope/vim-surround'
|
49
|
+
|
50
|
+
" Ruby/Rails
|
51
|
+
NeoBundle 'vim-ruby/vim-ruby'
|
52
|
+
NeoBundle 'tpope/vim-rails'
|
53
|
+
NeoBundle 'henrik/vim-ruby-runner'
|
54
|
+
NeoBundle 'nelstrom/vim-textobj-rubyblock'
|
55
|
+
NeoBundle 'skalnik/vim-vroom'
|
56
|
+
|
57
|
+
" Git
|
58
|
+
NeoBundle 'tpope/vim-fugitive'
|
59
|
+
NeoBundle 'mhinz/vim-signify'
|
60
|
+
|
61
|
+
" Dependencies & utilities
|
62
|
+
NeoBundle 'MarcWeber/vim-addon-mw-utils'
|
63
|
+
NeoBundle 'kana/vim-textobj-user'
|
64
|
+
NeoBundle 'tomtom/tlib_vim'
|
65
|
+
|
66
|
+
call neobundle#end()
|
67
|
+
|
68
|
+
filetype plugin indent on
|
69
|
+
|
70
|
+
NeoBundleCheck
|
71
|
+
|
72
|
+
" ===================================================
|
73
|
+
" VISUALS
|
74
|
+
" ===================================================
|
75
|
+
syntax enable
|
76
|
+
|
77
|
+
" Colorscheme
|
78
|
+
set t_Co=256
|
79
|
+
set background=dark
|
80
|
+
colorscheme pencil
|
81
|
+
" Fix for pencil comments
|
82
|
+
hi Comment cterm=NONE ctermbg=00 ctermfg=08
|
83
|
+
" hi ColorColumn ctermbg=27
|
84
|
+
|
85
|
+
" Tab styles
|
86
|
+
hi TabLineFill ctermfg=08 ctermbg=08
|
87
|
+
hi TabLine ctermfg=13 ctermbg=08
|
88
|
+
hi TabLineSel ctermfg=02 ctermbg=00
|
89
|
+
|
90
|
+
" Interactive cursor
|
91
|
+
let &t_SI = "\<esc>]50;CursorShape=1\x7"
|
92
|
+
let &t_EI = "\<esc>]50;CursorShape=0\x7"
|
93
|
+
|
94
|
+
" For MacVim
|
95
|
+
if has("gui_running")
|
96
|
+
colorscheme pencil
|
97
|
+
set guifont=Monaco:h13
|
98
|
+
set guioptions-=r
|
99
|
+
set guioptions-=T
|
100
|
+
set guioptions-=L
|
101
|
+
set fuoptions=maxvert,maxhorz
|
102
|
+
set columns=1000
|
103
|
+
au GUIEnter * set fullscreen
|
104
|
+
endif
|
105
|
+
|
106
|
+
" ===================================================
|
107
|
+
" REMAPS
|
108
|
+
" ===================================================
|
109
|
+
let mapleader=","
|
110
|
+
|
111
|
+
" Movement
|
112
|
+
nnoremap j gj
|
113
|
+
nnoremap k gk
|
114
|
+
nnoremap <c-j> }
|
115
|
+
nnoremap <c-k> {
|
116
|
+
nnoremap <s-j> }
|
117
|
+
nnoremap <s-k> {
|
118
|
+
nnoremap <c-h> ^
|
119
|
+
nnoremap <c-l> $
|
120
|
+
vnoremap <c-h> ^
|
121
|
+
vnoremap <c-l> $
|
122
|
+
|
123
|
+
" Windows
|
124
|
+
nnoremap wl <c-w>l
|
125
|
+
nnoremap wh <c-w>h
|
126
|
+
nnoremap wj <c-w>j
|
127
|
+
nnoremap wk <c-w>k
|
128
|
+
nnoremap w= <c-w>=
|
129
|
+
nnoremap wL <c-w>L
|
130
|
+
nnoremap wH <c-w>H
|
131
|
+
nnoremap wJ <c-w>J
|
132
|
+
nnoremap wK <c-w>K
|
133
|
+
nnoremap wf <c-w>x
|
134
|
+
nnoremap wo :ZoomWinTabToggle<cr>
|
135
|
+
|
136
|
+
" Tabs
|
137
|
+
nnoremap t <esc>:tabnew<cr>
|
138
|
+
nnoremap T <esc><c-w>T
|
139
|
+
nnoremap { <esc>gT
|
140
|
+
nnoremap } <esc>gt
|
141
|
+
|
142
|
+
" File navigation, search, replace
|
143
|
+
nnoremap <leader>n :NERDTreeToggle<cr>
|
144
|
+
nnoremap <leader>f :NERDTreeFind<cr>
|
145
|
+
nnoremap <leader>s :Ack<space>
|
146
|
+
nnoremap <leader><space> :noh<cr>
|
147
|
+
nnoremap <leader>* *:%s//
|
148
|
+
|
149
|
+
" Keep search matches in the middle of the window
|
150
|
+
nnoremap n nzzzv
|
151
|
+
nnoremap N Nzzzv
|
152
|
+
|
153
|
+
" Keep indent selected
|
154
|
+
vnoremap <s-l> >gv
|
155
|
+
vnoremap <s-h> <gv
|
156
|
+
vnoremap > >gv
|
157
|
+
vnoremap < <gv
|
158
|
+
|
159
|
+
" Make F1 useful
|
160
|
+
nmap <F1> <esc>
|
161
|
+
imap <F1> <esc>
|
162
|
+
|
163
|
+
" Convential select all
|
164
|
+
nnoremap <leader>a ggVG
|
165
|
+
|
166
|
+
" Change pwd to current file
|
167
|
+
nnoremap <leader>cd :lcd<space>%:p:h<cr>:pwd<cr>
|
168
|
+
|
169
|
+
" Open in pwd
|
170
|
+
cnoremap e<space> e <c-r>=expand('%:p:h') . '/'<cr>
|
171
|
+
|
172
|
+
" Copy & paste to clipboard
|
173
|
+
vnoremap <leader>y "*y
|
174
|
+
nnoremap <leader>p "*p
|
175
|
+
|
176
|
+
" Drag block up/down
|
177
|
+
vnoremap <s-j> :m'>+<cr>gv
|
178
|
+
vnoremap <s-k> :m-2<cr>gv
|
179
|
+
|
180
|
+
" Toggle line wrapping
|
181
|
+
nnoremap <leader>w :set wrap!<cr>
|
182
|
+
nnoremap <leader>i :set list!<cr>
|
183
|
+
|
184
|
+
" Toggle relative numbers in visual line mode
|
185
|
+
nnoremap <silent> v v:<c-u>set nonu rnu<cr>gv
|
186
|
+
nnoremap <silent> V V0:<c-u>set nonu rnu<cr>gv
|
187
|
+
nnoremap <silent> <c-v> <c-v>:<c-u>set nonu rnu<cr>gv
|
188
|
+
vnoremap <esc> <esc>:set nornu nu<cr>
|
189
|
+
autocmd CursorMoved * if mode() !~# "[vV\<c-v>]" | set nornu nu | endif
|
190
|
+
|
191
|
+
" Use sane regexes
|
192
|
+
nnoremap / /\v
|
193
|
+
vnoremap / /\v
|
194
|
+
|
195
|
+
" Tags
|
196
|
+
nnoremap <c-]> <c-]>mzzvzz15<c-e>`z:Pulse<cr>
|
197
|
+
nnoremap <c-\> <c-w>v<c-w>L<c-]>mzzMzvzz15<c-e>`z:Pulse<cr>
|
198
|
+
nnoremap <leader>\ :tab split<CR>:exec("tag ".expand("<cword>"))<cr><c-e>`z:Pulse<cr>
|
199
|
+
nnoremap <silent> <leader>tt :!ctags -R . <cr>
|
200
|
+
|
201
|
+
" Sudo to write
|
202
|
+
cnoremap w!! w !sudo tee % >/dev/null
|
203
|
+
|
204
|
+
" Modify command line cursor movement
|
205
|
+
cnoremap <c-a> <home>
|
206
|
+
cnoremap <c-e> <end>
|
207
|
+
|
208
|
+
" Gundo
|
209
|
+
nnoremap <leader>G :GundoToggle<cr>
|
210
|
+
|
211
|
+
" Tabularize
|
212
|
+
vnoremap <leader>T :Tabularize /
|
213
|
+
|
214
|
+
" YankRing
|
215
|
+
nnoremap <leader>Y :YRShow<cr>
|
216
|
+
|
217
|
+
" ===================================================
|
218
|
+
" Settings
|
219
|
+
" ===================================================
|
220
|
+
" Searching
|
221
|
+
set incsearch
|
222
|
+
set ignorecase
|
223
|
+
set smartcase
|
224
|
+
set showmatch
|
225
|
+
set hlsearch
|
226
|
+
set gdefault
|
227
|
+
set wildmenu
|
228
|
+
set wildmode=list:longest,full
|
229
|
+
set wildignore+=*/.tmp/*,*.so,*.swp,*.zip,*.git
|
230
|
+
set shellpipe=>
|
231
|
+
|
232
|
+
" Tabbing and indents
|
233
|
+
set autoindent
|
234
|
+
set smartindent
|
235
|
+
set expandtab
|
236
|
+
set shiftwidth=2
|
237
|
+
set scrolloff=3
|
238
|
+
set softtabstop=2
|
239
|
+
set tabstop=8
|
240
|
+
set shiftround
|
241
|
+
|
242
|
+
" Formatting, layout, misc tweeks
|
243
|
+
set fileencoding=utf-8
|
244
|
+
set encoding=utf-8
|
245
|
+
set backspace=indent,eol,start
|
246
|
+
set autoread
|
247
|
+
set autowrite
|
248
|
+
set number
|
249
|
+
set ruler
|
250
|
+
set cursorline
|
251
|
+
set cursorcolumn
|
252
|
+
" set colorcolumn=80
|
253
|
+
set visualbell
|
254
|
+
set showcmd
|
255
|
+
set laststatus=2
|
256
|
+
set showmode!
|
257
|
+
set wrap
|
258
|
+
set linebreak
|
259
|
+
let &showbreak = '↪ '
|
260
|
+
set listchars=tab:▸\ ,trail:·,eol:¬
|
261
|
+
" set splitright
|
262
|
+
|
263
|
+
" Makes things faster?
|
264
|
+
set notimeout
|
265
|
+
set ttimeout
|
266
|
+
set ttimeoutlen=10
|
267
|
+
set lazyredraw
|
268
|
+
|
269
|
+
" Better completion
|
270
|
+
set complete=.,w,b,u,t
|
271
|
+
set completeopt=longest,menuone,preview
|
272
|
+
|
273
|
+
" Backups, swapfiles, views
|
274
|
+
set backup
|
275
|
+
set noswapfile
|
276
|
+
set history=1000
|
277
|
+
set undofile
|
278
|
+
set undoreload=10000
|
279
|
+
set viewoptions=cursor,folds
|
280
|
+
|
281
|
+
set undodir=~/.vim/tmp/undo//
|
282
|
+
set backupdir=~/.vim/backup//
|
283
|
+
set directory=~/.vim/tmp/swap//
|
284
|
+
set viewdir=~/.vim/tmp/view//
|
285
|
+
set viminfo+=n$HOME/.vim/tmp/.viminfo
|
286
|
+
set tags=./tmp/tags,./tags,tags
|
287
|
+
|
288
|
+
" Make those folders automatically if they don't already exist.
|
289
|
+
if !isdirectory(expand(&undodir))
|
290
|
+
call mkdir(expand(&undodir), "p")
|
291
|
+
endif
|
292
|
+
if !isdirectory(expand(&backupdir))
|
293
|
+
call mkdir(expand(&backupdir), "p")
|
294
|
+
endif
|
295
|
+
if !isdirectory(expand(&directory))
|
296
|
+
call mkdir(expand(&directory), "p")
|
297
|
+
endif
|
298
|
+
if !isdirectory(expand(&viewdir))
|
299
|
+
call mkdir(expand(&viewdir), "p")
|
300
|
+
endif
|
301
|
+
|
302
|
+
" Don't try to highlight lines longer than 800 characters.
|
303
|
+
set synmaxcol=800
|
304
|
+
|
305
|
+
" ===================================================
|
306
|
+
" PLUGINS
|
307
|
+
" ===================================================
|
308
|
+
" NERDTree
|
309
|
+
let NERDTreeShowHidden=1
|
310
|
+
let NERDTreeQuitOnOpen=1
|
311
|
+
let NERDTreeBookmarksFile=expand("$HOME/.vim/tmp/NERDTreeBookmarks")
|
312
|
+
|
313
|
+
" Ctrlp
|
314
|
+
let g:ctrlp_match_window='order:ttb,max:30'
|
315
|
+
let g:ctrlp_clear_cache_on_exit=1
|
316
|
+
let g:ctrlp_cache_dir='$HOME/.vim/tmp/cache/ctrlp'
|
317
|
+
let g:ctrlp_arg_map=1
|
318
|
+
let g:ctrlp_max_files=0
|
319
|
+
let g:ctrlp_max_depth=40
|
320
|
+
let g:ctrlp_custom_ignore = '\v[\/](\.git|\.hg|\.svn)$'
|
321
|
+
|
322
|
+
" Ack
|
323
|
+
let g:ackhighlight=1
|
324
|
+
|
325
|
+
" Airline
|
326
|
+
let g:airline_left_sep=''
|
327
|
+
let g:airline_right_sep=''
|
328
|
+
let g:airline#extensions#whitespace#enabled=0
|
329
|
+
let g:airline_theme='pencil'
|
330
|
+
|
331
|
+
" Buffergator
|
332
|
+
let g:buffergator_viewport_split_policy='R'
|
333
|
+
let g:buffergator_split_size=50
|
334
|
+
|
335
|
+
" Taboo
|
336
|
+
let g:taboo_tab_format=' %f '
|
337
|
+
|
338
|
+
" YankRing
|
339
|
+
let g:yankring_history_dir='$HOME/.vim/tmp'
|
340
|
+
let g:yankring_clipboard_monitor=0
|
341
|
+
" YR - Stop polluting my global map space
|
342
|
+
let g:yankring_n_keys=''
|
343
|
+
let g:yankring_o_keys=''
|
344
|
+
let g:yankring_zap_keys=''
|
345
|
+
let g:yankring_ignore_operator=''
|
346
|
+
let g:yankring_v_key=''
|
347
|
+
let g:yankring_del_v_key=''
|
348
|
+
let g:yankring_paste_n_bkey=''
|
349
|
+
let g:yankring_paste_n_akey=''
|
350
|
+
let g:yankring_paste_v_key=''
|
351
|
+
let g:yankring_replace_n_pkey=''
|
352
|
+
let g:yankring_replace_n_nkey=''
|
353
|
+
|
354
|
+
" UltiSnips
|
355
|
+
let g:UltiSnipsExpandTrigger='<c-j>'
|
356
|
+
let g:UltiSnipsEditSplit='vertical'
|
357
|
+
|
358
|
+
" Emmet
|
359
|
+
" Usage: <Ctrl>e,
|
360
|
+
let g:user_emmet_leader_key='<c-e>'
|
361
|
+
let g:user_emmet_prevkey='<c-e>p'
|
362
|
+
|
363
|
+
" RubyRunner
|
364
|
+
let g:RubyRunner_key = '<Leader>e'
|
365
|
+
let g:RubyRunner_keep_focus_key = '<Leader>E'
|
366
|
+
let g:RubyRunner_open_below = 1
|
367
|
+
let g:RubyRunner_window_size = 10
|
368
|
+
|
369
|
+
" Vim-Javascript
|
370
|
+
" let g:javascript_enable_domhtmlcss = 1
|
371
|
+
" let g:used_javascript_libs = 'jquery,angularjs,angularui,jasmin,coffeescript'
|
372
|
+
" let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute \"ng-"]
|
373
|
+
let g:html_indent_inctags = "html,body,head,tbody"
|
374
|
+
|
375
|
+
" Vroom
|
376
|
+
let g:vroom_clear_screen = 0
|
377
|
+
let g:vroom_use_binstubs = 1
|
378
|
+
let g:vroom_use_bundle_exec = 0
|
379
|
+
|
380
|
+
" ===================================================
|
381
|
+
" CUSTOM FUNCTIONS
|
382
|
+
" ===================================================
|
383
|
+
" Git
|
384
|
+
autocmd Filetype gitcommit setlocal spell textwidth=72
|
385
|
+
autocmd Filetype gitcommit setlocal colorcolumn=80
|
386
|
+
|
387
|
+
" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
|
388
|
+
if executable('ag')
|
389
|
+
let g:ackprg='ag --nogroup --column'
|
390
|
+
|
391
|
+
" Use Ag over Grep
|
392
|
+
set grepprg=ag\ --nogroup\ --nocolor
|
393
|
+
|
394
|
+
" Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
|
395
|
+
let g:ctrlp_user_command='ag %s --hidden -l --nocolor -g ""'
|
396
|
+
endif
|
397
|
+
|
398
|
+
" Hide cursor crosshairs when not in focus
|
399
|
+
augroup cline
|
400
|
+
au!
|
401
|
+
au WinLeave,InsertEnter * set nocursorline
|
402
|
+
au WinLeave,InsertEnter * set nocursorcolumn
|
403
|
+
au WinEnter,InsertLeave * set cursorline
|
404
|
+
au WinEnter,InsertLeave * set cursorcolumn
|
405
|
+
augroup END
|
406
|
+
|
407
|
+
" Sets Quickfix window height
|
408
|
+
au FileType qf call AdjustWindowHeight(3, 30)
|
409
|
+
function! AdjustWindowHeight(minheight, maxheight)
|
410
|
+
exe max([min([line("$"), a:maxheight]), a:minheight]) . "wincmd _"
|
411
|
+
endfunction
|
412
|
+
|
413
|
+
" Clear register
|
414
|
+
function! <SID>ClearRegisters()
|
415
|
+
let regs='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-="*+'
|
416
|
+
let i=0
|
417
|
+
while (i<strlen(regs))
|
418
|
+
exec 'let @'.regs[i].'=""'
|
419
|
+
let i=i+1
|
420
|
+
endwhile
|
421
|
+
endfunction
|
422
|
+
command! -nargs=0 ClearRegisters call <SID>ClearRegisters()
|
423
|
+
|
424
|
+
" Clear undo history
|
425
|
+
function! <SID>ForgetUndo()
|
426
|
+
let old_undolevels = &undolevels
|
427
|
+
set undolevels=-1
|
428
|
+
exe "normal a \<BS>\<esc>"
|
429
|
+
let &undolevels = old_undolevels
|
430
|
+
unlet old_undolevels
|
431
|
+
endfunction
|
432
|
+
command! -nargs=0 ClearUndo call <SID>ForgetUndo()
|
433
|
+
|
434
|
+
" Make JavaScript brackets close properly
|
435
|
+
augroup ft_javascript
|
436
|
+
au!
|
437
|
+
au Filetype javascript inoremap <buffer> {<cr> {}<left><cr><tab>.<cr><esc>kA<bs>
|
438
|
+
augroup END
|
439
|
+
|
440
|
+
" Pulse Line - used to highlight matches when navigating ctags
|
441
|
+
function! s:Pulse()
|
442
|
+
let current_window = winnr()
|
443
|
+
windo set nocursorline
|
444
|
+
execute current_window . 'wincmd w'
|
445
|
+
setlocal cursorline
|
446
|
+
|
447
|
+
redir => old_hi
|
448
|
+
silent execute 'hi CursorLine'
|
449
|
+
redir END
|
450
|
+
let old_hi = split(old_hi, '\n')[0]
|
451
|
+
let old_hi = substitute(old_hi, 'xxx', '', '')
|
452
|
+
|
453
|
+
let steps = 9
|
454
|
+
let width = 1
|
455
|
+
let start = width
|
456
|
+
let end = steps * width
|
457
|
+
let color = 233
|
458
|
+
|
459
|
+
for i in range(start, end, width)
|
460
|
+
execute "hi CursorLine ctermbg=" . (color + i)
|
461
|
+
redraw
|
462
|
+
sleep 6m
|
463
|
+
endfor
|
464
|
+
for i in range(end, start, -1 * width)
|
465
|
+
execute "hi CursorLine ctermbg=" . (color + i)
|
466
|
+
redraw
|
467
|
+
sleep 6m
|
468
|
+
endfor
|
469
|
+
|
470
|
+
execute 'hi ' . old_hi
|
471
|
+
endfunction
|
472
|
+
command! -nargs=0 Pulse call s:Pulse()
|