annotate dot_config/nvim/init.vim @ 319:b93f12d23fbd

Rename init.lua to config.lua init.lua is now automatically sourced, and runs before init.vim causing issues like lspconfig that cannot be found. Renaming to something that will not be sourced automatically and manually load it from init.vim when all plugins are loaded
author Zeger Van de Vannet <zegervdv@me.com>
date Thu, 17 Dec 2020 17:49:14 +0100
parents 7d73e664f702
children 4daaf43a2b28
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 " vim:fdm=marker:ts=2:sw=2
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
2
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 let s:darwin = has('mac')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
4 let s:windows = has('win32')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
5
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 " Include Vim-Plug {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
7 if !s:windows
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
8 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
9 if empty(glob('~/.config/nvim/autoload/plug.vim'))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 silent !mkdir -p ~/.config/nvim/autoload
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 silent !curl -fLo ~/.config/nvim/autoload/plug.vim
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 autocmd VimEnter * PlugInstall
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
16 if empty(glob('~/.vim/autoload/plug.vim'))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 silent !mkdir -p ~/.vim/autoload
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 silent !curl -fLo ~/.vim/autoload/plug.vim
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
20 autocmd VimEnter * PlugInstall
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
24
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 " Vim-Plug {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 let g:plug_window='topleft new'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
28
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 call plug#begin('~/.config/nvim/plugged')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
32 call plug#begin('~/.vim/plugged')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
33 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
34
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 " General Plugins
286
6dad02f7604f Clean up plugins
zegervdv <zegervdv@me.com>
parents: 285
diff changeset
36 Plug 'tpope/vim-sensible'
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
37
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
38 if s:darwin
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
39 Plug 'vim-scripts/gitignore'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
41
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 Plug 'sjl/splice.vim'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
43
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 Plug 'tpope/vim-repeat'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 Plug 'tpope/vim-rsi'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 Plug 'einfachtoll/didyoumean'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
47
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 " Session Management
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 Plug 'tpope/vim-obsession'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
50
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 " Spelling
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 Plug 'tpope/vim-abolish'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
53
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 " Settings
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 Plug 'sgur/vim-editorconfig'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
56
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 " Brackets
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
58 Plug 'tpope/vim-surround'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 Plug 'raimondi/delimitMate'
284
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
60 Plug 'zegervdv/vim-endwise'
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
61
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
62 " Formatting
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
63 Plug 'junegunn/vim-easy-align', { 'on' : [] }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
64 augroup load_easy_align
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
65 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
66 autocmd CursorHold,CursorHoldI * call plug#load('vim-easy-align') | autocmd! load_easy_align
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
67 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
68
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
69 " Comments
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
70 Plug 'tpope/vim-commentary'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
71
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
72 " Moving in files
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
73 Plug 'wellle/targets.vim', { 'on': [] }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
74 augroup load_targets
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
75 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
76 autocmd InsertEnter * call plug#load('targets.vim') | autocmd! load_targets
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
77 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
78 Plug 'mhinz/vim-grepper', { 'on' : 'Grepper' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
79
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
80 " Indentation
296
c8041faff57e Add indent line configuration
zegervdv <zegervdv@me.com>
parents: 295
diff changeset
81 " Plug 'nathanaelkane/vim-indent-guides'
c8041faff57e Add indent line configuration
zegervdv <zegervdv@me.com>
parents: 295
diff changeset
82 Plug 'Yggdroot/indentline'
303
eaf1cdf558a0 Switch to lua branch of indent-blankline plugin
zegervdv <zegervdv@me.com>
parents: 302
diff changeset
83 Plug 'lukas-reineke/indent-blankline.nvim', { 'branch': 'lua' }
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
84
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
85 " Command line
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
86 Plug 'tpope/vim-eunuch', { 'on' : ['Remove', 'Unlink', 'Move', 'Rename', 'Mkdir', 'Chmod', 'Find', 'Locate', 'SudoEdit', 'SudoWrite']}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
87
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
88 " Undoing
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
89 Plug 'sjl/gundo.vim', { 'on': 'GundoToggle' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
90
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
91 " Tabs
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
92 Plug 'gcmt/taboo.vim'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
93
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
94 " Other
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
95 Plug 'yuttie/comfortable-motion.vim'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
96 Plug 'tpope/vim-apathy'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
97
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
98 " Tmux
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
99 Plug 'christoomey/vim-tmux-navigator'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
100 Plug 'tmux-plugins/vim-tmux-focus-events'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
101
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
102 " Background make
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
103 Plug 'tpope/vim-dispatch'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
104
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
105 " Completing and snippets
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
106 Plug 'sirver/ultisnips'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
107 Plug 'honza/vim-snippets'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
108 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
109 Plug 'neovim/nvim-lsp'
275
6eae07a6985f Update urls for completion-nvim and diagnostic-nvim
zegervdv <zegervdv@me.com>
parents: 274
diff changeset
110 Plug 'nvim-lua/completion-nvim'
292
49f6ad79b7b0 Switch back to official nvim-treesitter plugin
zegervdv <zegervdv@me.com>
parents: 289
diff changeset
111 Plug 'nvim-treesitter/nvim-treesitter'
305
10078cb76622 Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents: 303
diff changeset
112 Plug 'nvim-treesitter/nvim-treesitter-refactor'
10078cb76622 Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents: 303
diff changeset
113 Plug 'nvim-treesitter/nvim-treesitter-textobjects'
282
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
114 Plug 'nvim-treesitter/playground'
281
dfd62b5a9962 Add buffer completion source
zegervdv <zegervdv@me.com>
parents: 280
diff changeset
115 Plug 'steelsojka/completion-buffers'
285
d48b05b03ddf Add treesitter based completion
zegervdv <zegervdv@me.com>
parents: 284
diff changeset
116 Plug 'nvim-treesitter/completion-treesitter'
317
7d73e664f702 Add telescope for LSP navigation
Zeger Van de Vannet <zegervdv@me.com>
parents: 315
diff changeset
117 Plug 'nvim-lua/popup.nvim'
7d73e664f702 Add telescope for LSP navigation
Zeger Van de Vannet <zegervdv@me.com>
parents: 315
diff changeset
118 Plug 'nvim-lua/plenary.nvim'
7d73e664f702 Add telescope for LSP navigation
Zeger Van de Vannet <zegervdv@me.com>
parents: 315
diff changeset
119 Plug 'nvim-telescope/telescope.nvim'
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
120 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
121
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
122 " Copying
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
123 Plug 'ShikChen/osc52.vim'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
124
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
125 " Vim file navigation
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
126 Plug 'justinmk/vim-dirvish'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
127 Plug 'tpope/vim-projectionist'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
128
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
129 " Theme
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
130 Plug 'NLKNguyen/papercolor-theme'
309
49b61215e3d0 Update colorscheme to custom version of nvcode using rakr/vim-one colors
zegervdv <zegervdv@me.com>
parents: 305
diff changeset
131 Plug 'zegervdv/nvcode-color-schemes.vim'
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
132
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
133 "Tcl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
134 Plug 'vim-scripts/tcl.vim--smithfield-indent', { 'for': 'tcl'}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
135
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
136 Plug 'sbdchd/neoformat'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
137
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
138 Plug 'Glench/Vim-Jinja2-Syntax'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
139
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
140 if s:darwin
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
141 " Ruby
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
142 Plug 'tpope/vim-rails', { 'for': 'ruby' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
143 Plug 'vim-ruby/vim-ruby', { 'for': 'ruby' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
144 Plug 'tpope/vim-bundler', { 'for': 'ruby' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
145 Plug 'tpope/vim-rake', { 'for': 'ruby' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
146 Plug 'slim-template/vim-slim', { 'for': 'ruby' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
147 Plug 'duwanis/tomdoc.vim', { 'for': 'ruby' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
148 Plug 'keith/rspec.vim', { 'for': 'rspec' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
149
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
150 " Markdown
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
151 Plug 'tpope/vim-markdown', { 'for': 'markdown' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
152
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
153 " Jade
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
154 Plug 'digitaltoad/vim-jade', { 'for': 'jade' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
155
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
156 " Latex
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
157 Plug 'lervag/vimtex', { 'for': 'tex' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
158 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
159
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
160 " Coffeescript
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
161 Plug 'kchmck/vim-coffee-script', { 'for': 'coffee' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
162
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
163 " C
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
164 Plug 'NLKNguyen/c-syntax.vim', { 'for': 'c' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
165
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
166 " Python
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
167 Plug 'Vimjas/vim-python-pep8-indent', { 'for': 'python' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
168 Plug 'vim-python/python-syntax', { 'for': 'python' }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
169
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
170 " Git
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
171 Plug 'tpope/vim-git'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
172 call plug#end()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
173 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
174
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
175 " Activate built in plugins {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
176 if !has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
177 if has('packages')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
178 packadd! matchit
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
179 packadd! shellmenu
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
180 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
181 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
182 source $VIMRUNTIME/ftplugin/man.vim
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
183
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
184 if has('packages')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
185 silent! packadd! log_file
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
186 silent! packadd! browsify
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
187 silent! packadd! snippets
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
188 silent! packadd! chipscoper
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
189 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
190
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
191 if has("nvim")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
192 let g:python3_host_prog=expand('$HOME/.config/virtualenvs/python3/bin/python')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
193 let g:python_host_prog=expand('$HOME/.config/virtualenvs/python2/bin/python')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
194 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
195 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
196
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
197 " General Settings and options {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
198
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
199 " Backspace over everything, like normal
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
200 set backspace=2
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
201
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
202 " Buffers
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
203 set autoread " Read external changes
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
204 set hidden " Change between buffers without saving
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
205 set autowriteall " Write changes when losing focus
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
206
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
207 " Visuals
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
208 set number
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
209 set relativenumber
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
210 set ruler
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
211 syntax on
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
212 set title
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
213 set scrolloff=4 " Stay 4 lines from top/bottom
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
214 set showcmd
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
215
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
216 " Theme and style
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
217
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
218 let g:PaperColor_Theme_Options = {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
219 \ 'theme': {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
220 \ 'default': {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
221 \ 'allow_bold': 0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
222 \ }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
223 \ }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
224 \}
309
49b61215e3d0 Update colorscheme to custom version of nvcode using rakr/vim-one colors
zegervdv <zegervdv@me.com>
parents: 305
diff changeset
225
282
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
226 set termguicolors
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
227
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
228 let g:one_allow_italics=1
309
49b61215e3d0 Update colorscheme to custom version of nvcode using rakr/vim-one colors
zegervdv <zegervdv@me.com>
parents: 305
diff changeset
229 let g:nvcode_termcolors=256
282
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
230 colorscheme one
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
231 set background=dark
282
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
232
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
233 if s:darwin
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
234 set background=dark
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
235 colorscheme tomorrow-night
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
236 set guifont=inconsolata:h13
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
237 elseif s:windows
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
238 set background=light
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
239 colorscheme PaperColor
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
240 set guifont=consolas:h10
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
241 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
242
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
243 set showmatch " Highlight matching brackets
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
244
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
245 set wrap " Wrap lines
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
246 set wrapmargin=2 " Stay 2 chars from side
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
247 set textwidth=79
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
248 set colorcolumn=81
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
249 set linebreak " Smarter wrapping
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
250 if v:version > 703
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
251 set breakindent " Indent wrapped lines to same level
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
252 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
253
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
254 set fixendofline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
255
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
256 set expandtab " Expand tabs to spaces
277
a567e547b45a Set tabs to 2 spaces
zegervdv <zegervdv@me.com>
parents: 276
diff changeset
257 set tabstop=2 shiftwidth=2 " Tab is 2 spaces
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
258
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
259 set shiftround " Round shift indents to nearest value
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
260
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
261 " Searching
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
262 set magic " Use magic regexes
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
263 set hlsearch " Highlight all matches
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
264 set incsearch " Show matches while typing
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
265 set ignorecase " Ignore case when searching
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
266 set smartcase " Be case sensitive if at least one uppercase char is used
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
267 set gdefault " Default substitute all matches on a line
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
268 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
269 set inccommand=nosplit
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
270 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
271
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
272 set autoindent " Automatically indent
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
273 set cindent " Indent based on C syntax
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
274 set cinwords+=foreach
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
275
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
276 set updatetime=300
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
277
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
278 if s:darwin
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
279 set vb
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
280 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
281 set noerrorbells " Don't beep
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
282
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
283 set guioptions-=r
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
284 set guioptions-=l
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
285 set guioptions-=R
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
286 set guioptions-=L
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
287 set guioptions-=a
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
288 set guioptions-=m
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
289 set guioptions-=T
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
290 set guioptions+=c
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
291
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
292 set history=100 " Set history 100
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
293 set wildmenu " Command completion
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
294 set wildmode=longest:full,full " Complete to fullest match
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
295 set ttyfast " Use a fast terminal
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
296 set lazyredraw " No need to redraw constantly
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
297 set shortmess+=c
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
298
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
299 set ttimeoutlen=-1 " Set the timeout to a minimum
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
300 set diffopt+=iwhite " Ignore spaces in diffs"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
301
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
302 set tags=.git/tags,tags,/project/asic_fpga/tools/vim/share/vim/vimfiles/tags
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
303
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
304 " Have find look through all folders
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
305 set path+=**
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
306 " Add PRJROOT and subdirs to path if it is set
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
307 if exists('$PRJROOT')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
308 set path+=$PRJROOT/**
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
309 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
310
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
311 set formatoptions=
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
312 set formatoptions+=c " Format comments
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
313 set formatoptions+=r " Continue comments by default
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
314 set formatoptions+=o " Make comment when using o or O from comment line
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
315 set formatoptions+=q " Format comments with gq
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
316 set formatoptions+=n " Recognize numbered lists
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
317 set formatoptions+=2 " Use indent from 2nd line of a paragraph
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
318 " set formatoptions+=l " Don't break lines that are already long
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
319 set formatoptions+=1 " Break before 1-letter words
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
320
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
321 set signcolumn=yes
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
322
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
323 " Enable cursorline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
324 set cursorline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
325 augroup cline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
326 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
327 autocmd WinEnter * setlocal cursorline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
328 autocmd WinLeave * setlocal nocursorline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
329 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
330
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
331 if !s:windows
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
332 set list
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
333 set listchars=tab:»\ ,trail:·,extends:>,precedes:<,nbsp:+
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
334 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
335
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
336 set sessionoptions-=options
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
337
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
338 " Scan files for completion
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
339 set complete=.,w,b,u,k,kspell,t,i,d
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
340 " set completeopt=menuone,longest,preview,noinsert,noselect
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
341 set completeopt=noinsert,menuone,noselect
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
342
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
343 set splitright
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
344 set virtualedit=block
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
345
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
346 if v:version > 703
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
347 set conceallevel=0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
348 if !has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
349 set cryptmethod=blowfish2
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
350 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
351 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
352
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
353 filetype plugin indent on
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
354
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
355 set pastetoggle=<F2> " Toggle to paste mode
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
356
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
357 if v:version >= 703
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
358 set undofile
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
359 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
360 set undolevels=1000
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
361 set backup
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
362 set noswapfile
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
363 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
364 " set viminfo+=n~/.config/nvim/.viminfo
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
365 set backupdir=~/.config/nvim/tmp/backup/,.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
366 set directory=~/.config/nvim/tmp/swap//,.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
367 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
368 set viminfo+=n~/.vim/.viminfo
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
369 set backupdir=~/.vim/tmp/backup/,.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
370 set directory=~/.vim/tmp/swap//,.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
371 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
372 if !isdirectory(expand(&backupdir))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
373 call mkdir(expand(&backupdir), "p")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
374 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
375 if !isdirectory(expand(&directory))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
376 call mkdir(expand(&directory), "p")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
377 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
378
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
379 if v:version >= 703
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
380 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
381 set undodir=~/.config/nvim/tmp/undo//,.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
382 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
383 set undodir=~/.vim/tmp/undo//,.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
384 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
385 if !isdirectory(expand(&undodir))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
386 call mkdir(expand(&undodir), "p")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
387 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
388 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
389
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
390
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
391 set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.o,*.bin,*.elf,*.hex,*.eps,.git/**,*.dup,.hg/**,*.orig,*.*~
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
392
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
393 " No selecting via mouse (stops visual selection when scrolling)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
394 set mouse=nic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
395
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
396 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
397 " Status line {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
398 hi StatusLine ctermfg=0 ctermbg=3 cterm=NONE
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
399 hi StatusLineNC ctermfg=8 ctermbg=7 cterm=NONE
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
400 hi User1 ctermfg=0 ctermbg=7
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
401 hi User2 ctermfg=NONE ctermbg=NONE
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
402 hi User3 ctermfg=0 ctermbg=3
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
403 hi User4 ctermfg=0 ctermbg=5
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
404 function! Status()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
405 let l:statusline=''
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
406 let l:statusline.=' %t'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
407 let l:statusline.=' %1*'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
408 let l:statusline.=' %Y'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
409 let l:statusline.=' %2*'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
410 let l:statusline.='%='
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
411 let l:statusline.=' %1*'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
412 let l:statusline.=' line '
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
413 let l:statusline.=''
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
414 let l:statusline.='%l'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
415 let l:statusline.=' %3*'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
416 let l:statusline.=' of '
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
417 let l:statusline.=''
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
418 let l:statusline.='%L '
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
419 let l:statusline.=''
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
420 return l:statusline
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
421 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
422 set laststatus=2
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
423 set statusline=%!Status()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
424 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
425 " Fix Colors in colorscheme {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
426 function! SpellHighlights() abort
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
427 highlight SpellBad ctermbg=256 ctermfg=210
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
428 highlight SpellLocal ctermbg=240 ctermfg=010
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
429 highlight SpellCap ctermbg=256 ctermfg=211
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
430 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
431 augroup SpellColors
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
432 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
433 autocmd ColorScheme * call SpellHighlights()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
434 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
435 "}}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
436
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
437 " Mappings {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
438 " Set leader to spacebar
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
439 map <space> <leader>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
440
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
441 " See long lines as line breaks
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
442 noremap <expr> j (v:count? 'j' : 'gj')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
443 noremap <expr> k (v:count? 'k' : 'gk')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
444
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
445 " Remap tag-search to better place
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
446 nnoremap <C-$> g<C-]>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
447 nnoremap <C-w>y <C-w>g<C-]>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
448
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
449 nnoremap <C-s> <C-e>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
450
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
451 " Move while in insert mode
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
452 inoremap <C-f> <right>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
453
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
454 " Switch between the last two files
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
455 " nnoremap <space><space> <C-^>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
456
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
457 " " Very Magic search patterns
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
458 nnoremap / /\v
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
459 vnoremap / /\v
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
460
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
461 " Keep search matches in the middle of the window.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
462 nnoremap n nzzzv
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
463 nnoremap N Nzzzv
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
464
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
465 " Search for beginning of command
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
466 cnoremap <c-n> <down>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
467 cnoremap <c-p> <up>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
468
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
469 " Move whole lines
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
470 nnoremap [e :<c-u>execute 'move -1-'. v:count1<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
471 nnoremap ]e :<c-u>execute 'move +'. v:count1<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
472
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
473 " Insert empty lines
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
474 nnoremap [<space> :<c-u>put! =repeat(nr2char(10), v:count1)<cr>'[
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
475 nnoremap ]<space> :<c-u>put =repeat(nr2char(10), v:count1)<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
476
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
477 " Clear highlight
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
478 nnoremap <silent><leader>l :noh<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
479
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
480 inoremap £ \
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
481
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
482 " Highlight last inserted text
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
483 nnoremap gV `[v`]
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
484
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
485 " Highlight VCS conflict markers
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
486 match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
487
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
488 " Use backspace as delete in visual mode
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
489 vmap <BS> x
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
490
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
491 " Redraw screen
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
492 nnoremap <F3> :redraw!<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
493
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
494 " Keep selection when shifting
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
495 vmap <expr> > KeepVisualSelection(">")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
496 vmap <expr> < KeepVisualSelection("<")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
497
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
498 function! KeepVisualSelection(cmd)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
499 set nosmartindent
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
500 if mode() ==# "V"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
501 return a:cmd . ":set smartindent\<CR>gv"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
502 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
503 return a:cmd . ":set smartindent\<CR>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
504 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
505 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
506
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
507 " Swap backticks and quotes
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
508 nnoremap ` '
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
509 nnoremap ' `
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
510
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
511 " Open vimrc
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
512 nnoremap <leader>ve :e $MYVIMRC<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
513 nnoremap <leader>vs :so $MYVIMRC<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
514
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
515 " Open dup in diffmode
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
516 nnoremap <leader>d :call OpenDup(@%)<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
517
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
518 function! OpenDup(file)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
519 let l:filename = a:file . ".dup"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
520 execute 'vsplit' l:filename
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
521 windo diffthis
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
522 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
523
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
524 " Do not move on *
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
525 nnoremap <silent> * :let stay_star_view = winsaveview()<cr>*:call winrestview(stay_star_view)<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
526
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
527 " Search for selected text, forwards or backwards.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
528 vnoremap <silent> * :<C-U>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
529 \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
530 \gvy/<C-R><C-R>=substitute(
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
531 \escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
532 \gV:call setreg('"', old_reg, old_regtype)<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
533 vnoremap <silent> # :<C-U>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
534 \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
535 \gvy?<C-R><C-R>=substitute(
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
536 \escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
537 \gV:call setreg('"', old_reg, old_regtype)<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
538
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
539 " nnoremap <F10> :botright copen<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
540
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
541 xnoremap <silent> p p:if v:register == '"'<Bar>let @@=@0<Bar>endif<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
542
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
543 " Error navigation
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
544 nnoremap <UP> :cprev<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
545 nnoremap <DOWN> :cnext<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
546 nnoremap <RIGHT> :cnf<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
547 nnoremap <LEFT> :cpf<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
548
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
549 nnoremap <leader>y :ptjump <c-r><c-w><CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
550
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
551 function! ToggleDiff()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
552 if &diff == 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
553 windo diffoff
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
554 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
555 windo diffthis
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
556 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
557 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
558 nnoremap <leader>g :call ToggleDiff()<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
559
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
560 if has('nvim')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
561 tnoremap <space><esc> <C-\><C-n>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
562 tnoremap <C-h> <C-\><C-n><C-w>h
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
563 tnoremap <C-j> <C-\><C-n><C-w>j
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
564 tnoremap <C-k> <C-\><C-n><C-w>k
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
565 tnoremap <C-l> <C-\><C-n><C-w>l
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
566 augroup enter_term
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
567 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
568 au BufEnter * if &buftype == 'terminal' | :startinsert | endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
569 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
570 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
571
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
572 " Open buffers, tags... in vertical splits
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
573 nnoremap <leader>b :vert sbuffer
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
574 nnoremap <leader>t :vert stjump
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
575 nnoremap <leader>f :vert sfind
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
576
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
577
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
578 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
579
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
580 " Functions {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
581 " When editing a file, always jump to the last known cursor position.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
582 " Don't do it for commit messages, when the position is invalid, or when
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
583 " inside an event handler (happens when dropping a file on gvim).
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
584 autocmd BufReadPost *
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
585 \ if &ft != 'gitcommit' && line("'\"") > 0 && line("'\"") <= line("$") |
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
586 \ exe "normal g`\"" |
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
587 \ endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
588
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
589 " Thg mappings
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
590 function! s:HGhist(file)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
591 if !empty(a:file)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
592 let path = a:file
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
593 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
594 let path = expand('%')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
595 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
596 exec 'silent! !thg filelog ' . path . ' &'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
597 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
598
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
599 command! -nargs=? -complete=file HGhist call s:HGhist(<q-args>)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
600
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
601 augroup focus_lost
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
602 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
603 au FocusLost * if !&readonly | :wa | endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
604 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
605
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
606 augroup LuaHighlight
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
607 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
608 autocmd TextYankPost * silent! lua require'vim.highlight'.on_yank()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
609 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
610
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
611 " Resize splits after window resize {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
612 augroup vim_resize
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
613 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
614 au VimResized * exe "normal! \<c-w>="
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
615 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
616 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
617
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
618 " Automatically reload vimrc when saving {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
619 augroup reload_vim
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
620 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
621 autocmd BufWritePost $MYVIMRC nested source $MYVIMRC
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
622 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
623 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
624
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
625 " Reload diffs {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
626 augroup diff_files
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
627 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
628 au BufWritePost * if &diff == 1 | diffupdate | endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
629 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
630 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
631
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
632 " Custom folding by Steve Losh
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
633 function! MyFoldText() " {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
634 let line = getline(v:foldstart)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
635
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
636 let nucolwidth = &fdc + &number * &numberwidth
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
637 let windowwidth = winwidth(0) - nucolwidth - 3
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
638 let foldedlinecount = v:foldend - v:foldstart
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
639
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
640 " expand tabs into spaces
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
641 let onetab = strpart(' ', 0, &tabstop)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
642 let line = substitute(line, '\t', onetab, 'g')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
643
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
644 let line = strpart(line, 0, windowwidth - 2 -len(foldedlinecount))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
645 let fillcharcount = windowwidth - len(line) - len(foldedlinecount)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
646 return line . '…' . repeat(" ",fillcharcount) . foldedlinecount . '…' . ' '
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
647 endfunction " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
648 set foldtext=MyFoldText()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
649 set foldopen+=jump
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
650
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
651 " Detect Filetype from content if file has no extension {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
652 augroup newFileDetection
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
653 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
654 autocmd CursorMovedI * call CheckFileType()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
655 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
656
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
657 function! CheckFileType()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
658 if exists("b:countCheck") == 0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
659 let b:countCheck = 0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
660 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
661 let b:countCheck += 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
662 if &filetype == "" && b:countCheck > 20 && b:countCheck < 200
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
663 filetype detect
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
664 " Delete the function if no filetype can be established, or the type has
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
665 " been found
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
666 elseif b:countCheck >= 200 || &filetype != ""
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
667 autocmd! newFileDetection
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
668 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
669 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
670 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
671
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
672 " Convert hex <-> decimal {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
673 command! -nargs=? -range Dec2hex call s:Dec2hex(<line1>, <line2>, '<args>')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
674 function! s:Dec2hex(line1, line2, arg) range
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
675 if empty(a:arg)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
676 if histget(':', -1) =~# "^'<,'>" && visualmode() !=# 'V'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
677 let cmd = 's/\%V\<\d\+\>/\=printf("0x%x",submatch(0)+0)/g'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
678 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
679 let cmd = 's/\<\d\+\>/\=printf("0x%x",submatch(0)+0)/g'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
680 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
681 try
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
682 execute a:line1 . ',' . a:line2 . cmd
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
683 catch
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
684 echo 'Error: No decimal number found'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
685 endtry
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
686 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
687 echo printf('%x', a:arg + 0)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
688 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
689 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
690
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
691 command! -nargs=? -range Hex2dec call s:Hex2dec(<line1>, <line2>, '<args>')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
692 function! s:Hex2dec(line1, line2, arg) range
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
693 if empty(a:arg)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
694 if histget(':', -1) =~# "^'<,'>" && visualmode() !=# 'V'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
695 let cmd = 's/\%V0x\x\+/\=submatch(0)+0/g'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
696 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
697 let cmd = 's/0x\x\+/\=submatch(0)+0/g'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
698 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
699 try
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
700 execute a:line1 . ',' . a:line2 . cmd
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
701 catch
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
702 echo 'Error: No hex number starting "0x" found'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
703 endtry
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
704 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
705 echo (a:arg =~? '^0x') ? a:arg + 0 : ('0x'.a:arg) + 0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
706 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
707 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
708 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
709
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
710 " Recognize filetype for dup files {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
711 autocmd! BufRead *.dup call DupSetSyntax(@%)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
712
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
713 function! DupSetSyntax(name)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
714 let extension = matchlist(a:name, '\v.+.\.([^\.]+).dup')[1]
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
715 if extension == "vhd"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
716 setlocal filetype=vhdl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
717 elseif extension == "v"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
718 setlocal filetype=verilog
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
719 elseif extension == "sv"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
720 setlocal filetype=verilog
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
721 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
722 echo "Unknown filetype"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
723 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
724 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
725 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
726
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
727 " Create arguments list from files in quickfix list
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
728 " Allows to Grep for a pattern and apply an argdo command on each of the
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
729 " matching files {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
730 command! -nargs=0 -bar Qargs execute 'args' QuickfixFilenames()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
731 function! QuickfixFilenames()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
732 " Building a hash ensures we get each buffer only once
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
733 let buffer_numbers = {}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
734 for quickfix_item in getqflist()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
735 let buffer_numbers[quickfix_item['bufnr']] = bufname(quickfix_item['bufnr'])
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
736 endfor
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
737 return join(map(values(buffer_numbers), 'fnameescape(v:val)'))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
738 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
739 "}}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
740
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
741 augroup mark_files
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
742 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
743 au BufLeave test.tcl mark T
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
744 au BufLeave case.do mark C
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
745 au BufLeave drv_*.tcl mark D
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
746 au BufLeave *.rtl.vhd mark R
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
747 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
748
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
749
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
750 " Toggle between opening/closing the quickfix window {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
751 function! GetBufferList()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
752 redir =>buflist
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
753 silent! ls!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
754 redir END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
755 return buflist
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
756 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
757
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
758 function! ToggleList(bufname, pfx)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
759 let buflist = GetBufferList()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
760 for bufnum in map(filter(split(buflist, '\n'), 'v:val =~ "'.a:bufname.'"'), 'str2nr(matchstr(v:val, "\\d\\+"))')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
761 if bufwinnr(bufnum) != -1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
762 exec(a:pfx.'close')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
763 return
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
764 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
765 endfor
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
766 if a:pfx == 'l' && len(getloclist(0)) == 0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
767 echohl ErrorMsg
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
768 echo "Location List is Empty."
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
769 return
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
770 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
771 let winnr = winnr()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
772 exec('botright '.a:pfx.'open')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
773 if winnr() != winnr
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
774 wincmd p
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
775 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
776 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
777
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
778 nnoremap <silent> <F10> :call ToggleList("Quickfix List", 'c')<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
779 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
780
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
781
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
782 " Make list-like commands more intuitive {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
783 " Copied from https://gist.github.com/romainl/047aca21e338df7ccf771f96858edb86
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
784 function! CCR()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
785 let cmdline = getcmdline()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
786 if cmdline =~ '\v\C^(ls|files|buffers)'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
787 " like :ls but prompts for a buffer command
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
788 return "\<CR>:b"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
789 elseif cmdline =~ '\v\C/(#|nu|num|numb|numbe|number)$'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
790 " like :g//# but prompts for a command
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
791 return "\<CR>:"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
792 elseif cmdline =~ '\v\C^(dli|il)'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
793 " like :dlist or :ilist but prompts for a count for :djump or :ijump
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
794 return "\<CR>:" . cmdline[0] . "j " . split(cmdline, " ")[1] . "\<S-Left>\<Left>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
795 elseif cmdline =~ '\v\C^(cli|lli)'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
796 " like :clist or :llist but prompts for an error/location number
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
797 return "\<CR>:sil " . repeat(cmdline[0], 2) . "\<Space>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
798 elseif cmdline =~ '\C^old'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
799 " like :oldfiles but prompts for an old file to edit
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
800 set nomore
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
801 return "\<CR>:sil se more|e #<"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
802 elseif cmdline =~ '\C^changes'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
803 " like :changes but prompts for a change to jump to
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
804 set nomore
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
805 return "\<CR>:sil se more|norm! g;\<S-Left>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
806 elseif cmdline =~ '\C^ju'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
807 " like :jumps but prompts for a position to jump to
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
808 set nomore
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
809 return "\<CR>:sil se more|norm! \<C-o>\<S-Left>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
810 elseif cmdline =~ '\C^marks'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
811 " like :marks but prompts for a mark to jump to
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
812 return "\<CR>:norm! `"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
813 elseif cmdline =~ '\C^undol'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
814 " like :undolist but prompts for a change to undo
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
815 return "\<CR>:u "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
816 else
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
817 return "\<CR>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
818 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
819 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
820 cnoremap <expr> <CR> CCR()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
821 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
822
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
823 " Text objects {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
824 function! s:inIndentation()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
825 " select all text in current indentation level excluding any empty lines
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
826 " that precede or follow the current indentationt level;
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
827 "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
828 " the current implementation is pretty fast, even for many lines since it
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
829 " uses "search()" with "\%v" to find the unindented levels
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
830 "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
831 " NOTE: if the current level of indentation is 1 (ie in virtual column 1),
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
832 " then the entire buffer will be selected
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
833 "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
834 " WARNING: python devs have been known to become addicted to this
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
835 " magic is needed for this
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
836 let l:magic = &magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
837 set magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
838
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
839 " move to beginning of line and get virtcol (current indentation level)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
840 " BRAM: there is no searchpairvirtpos() ;)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
841 normal! ^
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
842 let l:vCol = virtcol(getline('.') =~# '^\s*$' ? '$' : '.')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
843
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
844 " pattern matching anything except empty lines and lines with recorded
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
845 " indentation level
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
846 let l:pat = '^\(\s*\%'.l:vCol.'v\|^$\)\@!'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
847
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
848 " find first match (backwards & don't wrap or move cursor)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
849 let l:start = search(l:pat, 'bWn') + 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
850
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
851 " next, find first match (forwards & don't wrap or move cursor)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
852 let l:end = search(l:pat, 'Wn')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
853
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
854 if (l:end !=# 0)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
855 " if search succeeded, it went too far, so subtract 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
856 let l:end -= 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
857 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
858
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
859 " go to start (this includes empty lines) and--importantly--column 0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
860 execute 'normal! '.l:start.'G0'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
861
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
862 " skip empty lines (unless already on one .. need to be in column 0)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
863 call search('^[^\n\r]', 'Wc')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
864
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
865 " go to end (this includes empty lines)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
866 execute 'normal! Vo'.l:end.'G'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
867
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
868 " skip backwards to last selected non-empty line
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
869 call search('^[^\n\r]', 'bWc')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
870
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
871 " go to end-of-line 'cause why not
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
872 normal! $o
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
873
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
874 " restore magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
875 let &magic = l:magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
876 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
877
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
878 " "in indentation" (indentation level sans any surrounding empty lines)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
879 xnoremap <silent> ii :<c-u>call <sid>inIndentation()<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
880 onoremap <silent> ii :<c-u>call <sid>inIndentation()<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
881
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
882 function! s:aroundIndentation()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
883 " select all text in the current indentation level including any emtpy
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
884 " lines that precede or follow the current indentation level;
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
885 "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
886 " the current implementation is pretty fast, even for many lines since it
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
887 " uses "search()" with "\%v" to find the unindented levels
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
888 "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
889 " NOTE: if the current level of indentation is 1 (ie in virtual column 1),
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
890 " then the entire buffer will be selected
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
891 "
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
892 " WARNING: python devs have been known to become addicted to this
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
893
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
894 " magic is needed for this (/\v doesn't seem work)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
895 let l:magic = &magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
896 set magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
897
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
898 " move to beginning of line and get virtcol (current indentation level)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
899 " BRAM: there is no searchpairvirtpos() ;)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
900 normal! ^
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
901 let l:vCol = virtcol(getline('.') =~# '^\s*$' ? '$' : '.')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
902
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
903 " pattern matching anything except empty lines and lines with recorded
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
904 " indentation level
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
905 let l:pat = '^\(\s*\%'.l:vCol.'v\|^$\)\@!'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
906
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
907 " find first match (backwards & don't wrap or move cursor)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
908 let l:start = search(l:pat, 'bWn') + 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
909
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
910 " NOTE: if l:start is 0, then search() failed; otherwise search() succeeded
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
911 " and l:start does not equal line('.')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
912 " FORMER: l:start is 0; so, if we add 1 to l:start, then it will match
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
913 " everything from beginning of the buffer (if you don't like
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
914 " this, then you can modify the code) since this will be the
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
915 " equivalent of "norm! 1G" below
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
916 " LATTER: l:start is not 0 but is also not equal to line('.'); therefore,
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
917 " we want to add one to l:start since it will always match one
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
918 " line too high if search() succeeds
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
919
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
920 " next, find first match (forwards & don't wrap or move cursor)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
921 let l:end = search(l:pat, 'Wn')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
922
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
923 " NOTE: if l:end is 0, then search() failed; otherwise, if l:end is not
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
924 " equal to line('.'), then the search succeeded.
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
925 " FORMER: l:end is 0; we want this to match until the end-of-buffer if it
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
926 " fails to find a match for same reason as mentioned above;
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
927 " again, modify code if you do not like this); therefore, keep
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
928 " 0--see "NOTE:" below inside the if block comment
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
929 " LATTER: l:end is not 0, so the search() must have succeeded, which means
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
930 " that l:end will match a different line than line('.')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
931
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
932 if (l:end !=# 0)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
933 " if l:end is 0, then the search() failed; if we subtract 1, then it
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
934 " will effectively do "norm! -1G" which is definitely not what is
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
935 " desired for probably every circumstance; therefore, only subtract one
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
936 " if the search() succeeded since this means that it will match at least
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
937 " one line too far down
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
938 " NOTE: exec "norm! 0G" still goes to end-of-buffer just like "norm! G",
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
939 " so it's ok if l:end is kept as 0. As mentioned above, this means
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
940 " that it will match until end of buffer, but that is what I want
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
941 " anyway (change code if you don't want)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
942 let l:end -= 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
943 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
944
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
945 " finally, select from l:start to l:end
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
946 execute 'normal! '.l:start.'G0V'.l:end.'G$o'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
947
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
948 " restore magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
949 let &magic = l:magic
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
950 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
951
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
952 " "around indentation" (indentation level and any surrounding empty lines)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
953 xnoremap <silent> ai :<c-u>call <sid>aroundIndentation()<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
954 onoremap <silent> ai :<c-u>call <sid>aroundIndentation()<cr>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
955 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
956 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
957
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
958 " Filetype specific settings {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
959 " Latex {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
960 " Open pdf
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
961
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
962 function! Latexprog()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
963 if !filereadable("./Makefile")
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
964 setlocal makeprg=latexmk\ -interaction=nonstopmode\ -synctex=1\ -file-line-error\ -pdf\ %:r
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
965 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
966 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
967
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
968 augroup latex
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
969 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
970 autocmd FileType tex call Latexprog()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
971 au BufNewFile,BufRead,BufEnter *.tex setlocal spell spelllang=en_gb
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
972 au BufNewFile,BufRead,BufEnter *.tex setlocal textwidth=0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
973 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
974 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
975 " Markdown {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
976 let g:vim_markdown_folding_disabled=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
977 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
978 " Text {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
979 augroup ft_text
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
980 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
981 " au BufNewFile,BufRead,BufEnter *.txt setlocal spell spelllang=en_gb
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
982 au BufNewFile,BufRead,BufEnter *.txt setlocal textwidth=0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
983 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
984 augroup ft_report
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
985 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
986 au BufNewFile,BufRead,BufEnter *.rpt setlocal nowrap
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
987 au BufNewFile,BufRead,BufEnter *.rpt call ColorRpt()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
988 au BufNewFile,BufRead,BufEnter *.log call ColorRpt()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
989 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
990
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
991 function! ColorRpt()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
992 " Color numbers based on length
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
993 syn match String "\v<\d{1,3}>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
994 syn match Number "\v<\d{4,6}>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
995 syn match Statement "\v<\d{7,9}>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
996
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
997 " Color errors
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
998 syn match Error "\v^ERROR:.*$"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
999 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1000 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1001 " Git commit messages {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1002 augroup ft_git
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1003 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1004 au FileType gitcommit setlocal spell spelllang=en_gb
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1005 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1006 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1007 " Ruby {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1008 augroup ft_ruby
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1009 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1010 autocmd BufRead *_spec.rb set filetype=rspec
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1011 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1012 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1013 " Matlab {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1014 augroup ft_matlab
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1015 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1016 autocmd FileType matlab setlocal commentstring=\%\ %s
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1017 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1018 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1019 " C {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1020 augroup ft_c
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1021 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1022 au FileType c setlocal foldmethod=syntax
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1023 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1024 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1025 " VHDL {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1026 " VHDL ctags
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1027 let g:tlist_vhdl_settings = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;r:procedures'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1028 let g:vhdl_indent_genportmap =0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1029 let g:vhdl_indent_rhassign = 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1030
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1031 augroup ft_vhdl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1032 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1033 autocmd FileType vhdl call VHDLColonAlign()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1034 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1035
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1036 function! SetAutoAlign()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1037 inoremap <silent> => =><ESC>mzvip:EasyAlign/=>/<CR>`z$a
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1038 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1039
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1040 function! VHDLChipScopeMacro()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1041 let @c = "mtyiw'Sosignal \"_cs : std_logic;'Coattribute mark_debug of \"_cs : signal is \"true\";
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1042 attribute dont_touch of \"_cs : signal is \"true\";'Do\"_cs <= \";=='t"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1043 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1044
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1045 function! VHDLColonAlign()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1046 let g:easy_align_delimiters = {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1047 \ ':': { 'pattern': ':', 'left_margin': 1, 'right_margin': 1, 'stick_to_left': 0}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1048 \}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1049 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1050 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1051 " TCL {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1052
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1053 augroup ft_tcl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1054 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1055 autocmd FileType tcl setlocal commentstring=#\ %s
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1056 " autocmd FileType tcl compiler nagelfar
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1057 autocmd BufRead *.do set filetype=tcl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1058 autocmd BufRead *.hal set filetype=tcl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1059 autocmd FileType tcl setlocal iskeyword+=:
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1060 autocmd FileType tcl setlocal breakat-=:
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1061 autocmd FileType tcl setlocal suffixesadd+=.tcl,.do
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1062 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1063 " shortcuts
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1064 iabbrev procargs array set arg [::argument_processing::proces_arguments $args];
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1065 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1066 " GPG {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1067 " Don't save backups of gpg asc files
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1068 set backupskip+=*.asc
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1069
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1070 " Convenient editing of ascii-armoured encrypted files
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1071 augroup GPGASCII
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1072 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1073 au BufReadPost *.asc :%!gpg -q -d
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1074 au BufReadPost *.asc |redraw
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1075 au BufWritePre *.asc :%!gpg -q -e -a
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1076 au BufWritePost *.asc u
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1077 au VimLeave *.asc :!clear
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1078 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1079 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1080 " System Verilog {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1081 augroup ft_systemverilog
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1082 au!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1083 au FileType systemverilog setlocal suffixesadd+=.sv,.v
305
10078cb76622 Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents: 303
diff changeset
1084 au FileType systemverilog setlocal foldmethod=expr
10078cb76622 Add treesitter refactor and textobjects plugins
zegervdv <zegervdv@me.com>
parents: 303
diff changeset
1085 au FileType systemverilog setlocal foldexpr=nvim_treesitter#foldexpr()
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1086 au FileType systemverilog,verilog call SVAlign()
276
ecc3074ac1fc Add delimitMate config for systemverilog and python
zegervdv <zegervdv@me.com>
parents: 275
diff changeset
1087 au FileType systemverilog,verilog let b:delimitMate_quotes = "\""
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1088 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1089
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1090 function! SVAlign()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1091 let g:easy_align_delimiters = {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1092 \ ')': { 'pattern': '[()]', 'left_margin': 0, 'right_margin': 0, 'stick_to_left': 0}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1093 \}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1094 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1095 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1096 " Make {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1097 augroup ft_make
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1098 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1099 autocmd BufEnter *.make setlocal filetype=make
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1100 autocmd FileType make setlocal noexpandtab
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1101 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1102 " JSON {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1103 augroup ft_json
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1104 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1105 autocmd FileType json setlocal equalprg=jq
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1106 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1107 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1108 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1109 " Python {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1110 augroup f_python
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1111 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1112 autocmd FileType python setlocal shiftwidth=4
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1113 au FileType python setlocal formatprg=autopep8\ -
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1114 autocmd FileType python setlocal path-=**
276
ecc3074ac1fc Add delimitMate config for systemverilog and python
zegervdv <zegervdv@me.com>
parents: 275
diff changeset
1115 autocmd Filetype python let b:delimitMate_nesting_quotes = ['"', "'"]
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1116 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1117
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1118 let g:python_highlight_all=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1119 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1120 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1121
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1122 " Plugin settings {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1123 " Easy-align {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1124 " Start interactive EasyAlign in visual mode (e.g. vip<Enter>)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1125 vmap <Enter> <Plug>(EasyAlign)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1126
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1127 " Start interactive EasyAlign for a motion/text object (e.g. gaip)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1128 nmap ga <Plug>(EasyAlign)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1129 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1130 " Gundo tree {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1131 nnoremap <leader>u :GundoToggle<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1132 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1133 " Projectionist {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1134 let g:projectionist_heuristics = {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1135 \ "*.c": {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1136 \ "*.c": {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1137 \ "alternate": "{}.h",
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1138 \ "type": "source",
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1139 \ "template": ["#include \"{}.h\""],
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1140 \ "make": "make -wC {project}"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1141 \ },
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1142 \ "*.h": {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1143 \ "alternate": "{}.c",
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1144 \ "type": "header",
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1145 \ "template": ["#ifndef {uppercase}_H", "#define {uppercase}_H", "", "#endif"]
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1146 \ },
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1147 \ "Makefile": {"type": "makefile"},
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1148 \ },
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1149 \ "*.py": {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1150 \ "*.py": { "make": "ipython {}" }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1151 \ },
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1152 \ }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1153 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1154 " Grep {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1155 let g:grepper = {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1156 \ 'tools': ['ag', 'hg'],
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1157 \ 'highlight': 1,
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1158 \ 'ag': {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1159 \ 'grepprg': 'rg --vimgrep',
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1160 \ }}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1161
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1162 nnoremap gs <plug>(GrepperOperator)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1163 xnoremap gs <plug>(GrepperOperator)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1164
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1165
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1166 command! -nargs=* -complete=file Ag Grepper -noprompt -tool ag -grepprg rg --vimgrep <args>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1167 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1168 " Vinegar/NetRW {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1169 autocmd FileType netrw setl bufhidden=delete
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1170 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1171 " NCM {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1172 function! s:check_back_space() abort
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1173 let col = col('.') - 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1174 return !col || getline('.')[col - 1] =~# '\s'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1175 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1176
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1177
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1178 " Auto close popup menu when finish completion
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1179 autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif
284
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1180
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1181 " Use <Tab> and <S-Tab> to navigate through popup menu
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1182 inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1183 inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1184
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1185 " Set completeopt to have a better completion experience
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1186 set completeopt=menuone,noinsert,noselect
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1187
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1188 " Avoid showing message extra message when using completion
3c5523f18d0a Clean up autocomplete options
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
1189 set shortmess+=c
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1190
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1191 let g:completion_enable_snippet = 'UltiSnips'
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1192 "Fallback for https://github.com/Raimondi/delimitMate expanding on enter
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1193 let g:completion_confirm_key_rhs = "\<Plug>delimitMateCR"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1194 let g:UltiSnipsJumpForwardTrigger="<c-b>"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1195 let g:UltiSnipsJumpBackwardTrigger="<c-z>"
276
ecc3074ac1fc Add delimitMate config for systemverilog and python
zegervdv <zegervdv@me.com>
parents: 275
diff changeset
1196
ecc3074ac1fc Add delimitMate config for systemverilog and python
zegervdv <zegervdv@me.com>
parents: 275
diff changeset
1197 let delimitMate_expand_cr = 1
ecc3074ac1fc Add delimitMate config for systemverilog and python
zegervdv <zegervdv@me.com>
parents: 275
diff changeset
1198 let delimitMate_expand_space = 1
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1199 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1200 " Background make {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1201 nnoremap <F9> :PMake<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1202 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1203 " Splice {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1204 let g:splice_initial_diff_grid=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1205 let g:splice_initial_diff_compare=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1206 let g:splice_initial_diff_path=0
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1207 let g:splice_initial_scrollbind_grid=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1208 let g:splice_initial_scrollbind_compare=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1209 let g:splice_initial_scrollbind_path=1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1210 let g:splice_wrap="nowrap"
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1211 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1212 " Chipscoper {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1213 nnoremap <leader>cm :call ChipScoperMark()<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1214 nnoremap <leader>ci :call ChipScoperInsert()<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1215 nnoremap <leader>cd :call ChipScoperUnMark()<CR>
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1216 augroup cs_vhdl
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1217 autocmd!
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1218 autocmd FileType vhdl packadd chipscoper
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1219 autocmd FileType vhdl silent! call ChipScoperSetup()
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1220 augroup END
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1221 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1222 " GDB {{{
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1223 let g:nvimgdb_disable_start_keymaps = 1
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1224 " }}}
296
c8041faff57e Add indent line configuration
zegervdv <zegervdv@me.com>
parents: 295
diff changeset
1225 " Indents {{{
c8041faff57e Add indent line configuration
zegervdv <zegervdv@me.com>
parents: 295
diff changeset
1226 let g:indentLine_char = '|'
c8041faff57e Add indent line configuration
zegervdv <zegervdv@me.com>
parents: 295
diff changeset
1227 " }}}
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1228 " }}}
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1229
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1230 function! SendOSCClipboard(lines, regtype)
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1231 call SendViaOSC52(join(a:lines, "\n"))
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1232 endfunction
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1233
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1234 let g:clipboard = {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1235 \ 'name': 'TMUX',
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1236 \ 'copy': {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1237 \ '+': function('SendOSCClipboard'),
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1238 \ '*': 'tmux load-buffer -',
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1239 \ },
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1240 \ 'paste': {
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1241 \ '+': 'tmux save-buffer -',
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1242 \ '*': 'tmux save-buffer -',
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1243 \ },
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1244 \ 'cache_enabled': 1,
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1245 \ }
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1246
319
b93f12d23fbd Rename init.lua to config.lua
Zeger Van de Vannet <zegervdv@me.com>
parents: 317
diff changeset
1247 luafile ~/.config/nvim/config.lua
280
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents: 278
diff changeset
1248
273
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1249 " Load local vimrc
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1250 if filereadable($HOME . '/.vimrc.local')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1251 source ~/.vimrc.local
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1252 endif
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1253
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1254 " Load project local vimrc
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1255 if filereadable('.vimrc.local')
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1256 source .vimrc.local
e6c22e1383c6 Add jinja syntax
zegervdv <zegervdv@me.com>
parents:
diff changeset
1257 endif
282
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
1258