rails-ahoy 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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()
|