View difference between Paste ID: UYXq7rBP and Q7vAFYx8
SHOW: | | - or go back to the newest paste.
1
" Tim Holt's vimrc file
2
" Created probably in 2010, Idunno.
3-
"   modified extensively continously since then.
3+
"   modified extensively continuously since then.
4
"
5
" This file is full of ‘*’ command ‘links’ __in_this_format.
6
"
7
" Free to use for anyone
8
9-
"│-v-1 │ To-Do's  
9+
"│-v-1 │ To-Do's
10
"└─────┴─────────
11
  " (not actually settings, just settings todo's)
12
  " TODO Look into the 'tabline' setting
13
  " TODO When numbers are off, change window width.
14
  "
15
  " TODO Use winnr("$"), winnr(), winfixwidth to create a better resize
16
    " This may be obsolete, but I don’t think it is—it’s still necessary when
17
    " not on a wide screen.
18
  " TODO Make “i_Ctrl-R ,” put the “+” yank buffer’s contents.
19
  "
20
  " TODO mappings that “Hesitate”:
21
    " <leader>i
22
    " <leader>w
23
  " TODO Look into the conceal setting and this reddit thread:
24
  "   http://redd.it/okzja
25
  " TODO Set up some cool Arpeggio mappings.
26
  " TODO Look into the 'comments' setting and gq (to add "/// " and stuff)
27
28
"│-v-1 │ “precedence” necessaries.
29
"└─────┴───────────────────────────
30
  "For virtually everything, and sanity in general:
31
  set nocp
32
  filetype plugin on
33
34
  "For that which __requires_utf_8:
35-
      call pathogen#infect() 
35+
36-
      call pathogen#helptags() 
36+
37
  " Note: Make sure to link here from _every_ line that has a prerequisite,
38
  " and from every location in this file where the prerequisite would more
39
  " naturally be categorized.
40
41
42
"│-v-1 │ Plug-in Settings
43
"└─┬───┴─┬────────────────
44
  "│-v-2 │ plug-in manager
45
  "└─────┴─────────────────
46
    " pathogen startup stuff
47
      filetype off
48
      call pathogen#infect()
49
      call pathogen#helptags()
50
      filetype plugin on
51
52
53
  "│-v-2 │ Individual plug-ins
54
  "└─┬───┴─┬───────────────────
55
    "│-v-3 │ Gundo Settings
56
    "└─────┴────────────────
57
      nnoremap <silent> <leader>u :GundoToggle<cr>
58
      let g:gundo_help=1
59
      let g:gundo_right=0
60
      let g:gundo_preview_bottom=0
61
62
      " Mappings (@__gundo_mappings):
63-
      let g:vimwiki_list = [wiki_1, wiki_2]
63+
64
65
    "│-v-3 │ vimwiki Settings
66
    "└─────┴──────────────────
67
      let g:vimwiki_camel_case = 0
68
69
      let wiki_1 = {}
70
      let wiki_1.path = '~/Dropbox/Vim/vimwiki/'
71
      let wiki_1.nested_syntaxes = {'c++': 'cpp', 'asm': 'asm', 'sh': 'sh'}
72
73
      let wiki_2 = {}
74
      let wiki_2.path = '~/Dropbox/timwrite/vimfriendly/Inhuman_Universe/wiki/'
75
76
      let wiki_3 = {}
77
      let wiki_3.path = '~/Dropbox/code/ZigZagDungeon/productionwiki/'
78
79
      let g:vimwiki_list = [wiki_1, wiki_2, wiki_3]
80-
      " (Steve Losh's modified version, cleaned up and jazz)
80+
81
    "│-v-3 │ Full-Screen Mode Settings
82
    "└─────┴───────────────────────────
83
      " Mappings (@__full_screen_mappings):
84
      function! ToggleFullScreen()
85
        if has('win32')
86
          :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)
87
        endif
88-
  "│-v-2 │ Behavior  
88+
89
90
    "│-v-3 │ 'a' settings
91
    "└─────┴──────────────
92
      " Mappings (@__a_mappings):
93
94-
        " TODO: maybe make this a function
94+
      "Hopefully, changing the default when associated source doesn't yet exist.
95-
        nnoremap <silent> <F2> :tabedit $MYVIMRC<cr>:lcd $HOME<cr>:vs ~/Dropbox/Vim/vimrc.vim<cr>
95+
      let g:alternateExtensions_h = "cpp,c,cxx,cc,CC"
96
97
    "│-v-3 │ OmniCppComplete Settings
98
    "└─────┴──────────────────────────
99
      au BufNewFile,BufRead,BufEnter *.cpp,*.h set omnifunc=omni#cpp#complete#Main
100
      let OmniCpp_ShowPrototypeInAbbr = 1
101-
        " Doesn't work, because MyRefreshFullScreen doesn't work.
101+
102
    "│-v-3 │ PowerShell syntaxy-stuff settings
103
    "└─────┴───────────────────────────────────
104
      au BufNewFile,BufRead,BufEnter *.ps1 set filetype=ps1
105
106
    "│-v-3 │ Rainbow Parentheses Settings
107
    "└─────┴──────────────────────────────
108
      " (Steve Losh’s modified version, cleaned up and jazz)
109
110
      " Mappings (@__rainbow_parentheses_mappings):
111
      autocmd BufEnter * RainbowParenthesesLoadRound
112
      autocmd BufEnter * RainbowParenthesesLoadBraces
113
      "autocmd BufEnter * RainbowParenthesesLoadChevrons
114
115
    "│-v-3 │ Powerline Settings
116
    "└─────┴────────────────────
117
      let Powerline_cache_file = ""
118
      let Powerline_symbols = "fancy"
119
120
    "│-v-3 │ UltiSnips Settings
121
    "└─────┴────────────────────
122
      let g:UltiSnipsSnippetsDir = "~/Dropbox/Vim/GlobalRuntimePath/UltiSnipsSnippets/"
123
      let g:UltiSnipsSnippetDirectories=["UltiSnips", "UltiSnipsSnippets"]
124
      let g:UltiSnipsEditSplit = "horizontal"
125
      let g:UltiSnipsUsePythonVersion = 2
126
127
      " Wasn't compatible with digraphs, so I thought I'd try a remap.
128
      let g:UltiSnipsExpandTrigger="<c-t>"
129
      let g:UltiSnipsJumpForwardTrigger="<tab>"
130
      let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
131
132
    "│-v-3 │ Arpeggio Settings
133
    "└─────┴───────────────────
134
      call arpeggio#load()
135
136
    "│-v-3 │ EasyMotion
137
    "└─────┴────────────
138
      let g:EasyMotion_leader_key = '('
139
140
    "│-v-3 │ Indent Guides
141-
          ":set statusline=%F%m%r%h%w\ (%{&ff})\ typ:%Y\ ASCII=\%04.8b\ HEX=\%04.4B\ %l,%v %p%%\ LEN=%L 
141+
    "└─────┴───────────────
142
      let g:indent_guides_space_guides = 0
143
144
    "│-v-3 │ Showmarks
145
    "└─────┴───────────
146
      let showmarks_enable = 0
147
      "let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.'`^<>[]{}()\""
148
      let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.'`^"
149
      let g:showmarks_ignore_type = "q"
150
151
      let showmarks_textlower = "\t:"
152-
          :set foldmarker=-v-,-^-
152+
      let showmarks_textupper = "\t:"
153
      let showmarks_textother = "\t:"
154
155
"│-v-1 │ Set-up
156-
          set wildmode=longest,list,full 
156+
157
  "│-v-2 │ Behavior
158
  "└─┬───┴─┬────────
159
    "│-v-3 │ “meta” (settings settings)
160
    "└─────┴────────────────────────────
161
162
      " Quick settings access
163
        " TODO: Move the function to function area, remap to remap area?
164
        "         Honestly, I think not—an exception makes sense here, at least.
165
        function! MyQuickSettings()
166
          :tabedit $MYVIMRC
167
          :lcd $HOME
168
          :vs ~/Dropbox/Vim/vimrc.vim
169
          :vertical resize 101
170
        endfunction
171
172-
            " Switch off search highlighting.
172+
        nnoremap <silent> <F2> :call MyQuickSettings()<cr>
173
174
175
      " Reload vimrc when saved
176
        au! BufWritePost $MYVIMRC source $MYVIMRC
177
178
        " Doesn’t work, because MyRefreshFullScreen doesn’t work.
179
        " TODO: evaluate this thing.
180
        function! MyRefreshVimrc()
181-
          if has('win32')
181+
182
          :call MyRefreshFullScreen()
183
        endfunction
184
185
    "│-v-3 │ Tweakings/Feature Settings
186
    "└─┬───┴─┬──────────────────────────
187
      "│-v-4 │ Intended/Built-In Settings
188
      "└─┬───┴─┬──────────────────────────
189
        "│-v-5 │ Editing Settings
190
        "└─────┴──────────────────
191
          set expandtab
192-
        " (mapping @__spell_check_mapping)
192+
193-
        let g:timspellmode = 0
193+
194-
        function! g:ToggleSpellMode()
194+
195-
          if g:timspellmode == 0
195+
196-
            let g:timspellmode = 1
196+
197-
            set spell
197+
198
          :set cindent
199-
            let g:timspellmode = 0
199+
200-
            set nospell
200+
          " Stopped using this when I started using Powershell more.
201
          ":set shellslash
202
203
          :set switchbuf=useopen,usetab,newtab
204
205
          " Allows the closing of buffers without saving.
206-
          " r----v-,
206+
207
208
          " allows cursor position past true end of line
209
          set virtualedit=all
210
211
          " Whether jumping to another line (like with "G") goes to the start
212-
          " L----^-’
212+
213
          set nostartofline
214
215
        "│-v-5 │ vimdiff settings
216
        "└─────┴──────────────────
217
          set diffopt=filler,vertical,context:3
218
219
        "│-v-5 │ Spelling
220
        "└─────┴──────────
221
          set spelllang=en_us,es,eo
222
223
        "│-v-5 │ Status Line
224
        "└─────┴─────────────
225
          ":set statusline=%F%m%r%h%w\ (%{&ff})\ typ:%Y\ ASCII=\%04.8b\ HEX=\%04.4B\ %l,%v %p%%\ LEN=%L
226
          "set statusline=%<[%02n]\ %F%(\ %m%h%w%y%r%)\ %a%=\ %8l,%c%V/%L\ (%P)\ [%08O:%02B]
227
          set statusline=%<[%02n]\ %F%(\ %m%h%w%y%r%)\ %a%=\ %8l,%c%V/%L\ (%P)\ [%02B]
228
229
          set laststatus=2
230
            " “The value of this option influences when the
231
            " last window will have a status line…”
232
233
        "│-v-5 │ Folds
234
        "└─────┴──────────
235
          :set foldmethod=marker
236
          :set foldmarker=//v,//^
237
          :set commentstring=%s
238
239
        "│-v-5 │ WildMenu
240
        "└─────┴──────────
241
          set wildmode=longest,list,full
242
          :set wildmenu
243
244
        "│-v-5 │ persistent undo
245
        "└─────┴─────────────────
246
          set undofile
247
248
        "│-v-5 │ search settings
249
        "└─────┴─────────────────
250
          set ignorecase
251
          set smartcase
252
          set gdefault
253
          set incsearch
254
          set showmatch
255
          set hlsearch
256
          " Mappings (@__search_mappings):
257
          " - Switch off search highlighting.
258
259
        "│-v-5 │ netrw settings
260
        "└─────┴────────────────
261-
              :vertical resize
261+
262
263-
              :set norelativenumber
263+
264-
              :set nonumber
264+
265
          " __requires_utf_8:
266
267
          " The && !(&diff) is there because shell=powershell.exe breaks
268
          " vimdiff.
269
          if has('win32') && !(&diff) && 0
270
            set shell=powershell.exe
271-
                :vertical resize 81
271+
272
            set shellpipe=|
273-
                :vertical resize 85
273+
274
          endif
275
276
        "│-v-5 │ mkview settings
277
        "└─────┴─────────────────
278
          set viewdir=~/Dropbox/Vim/GlobalRuntimePath/view/
279
280
        "│-v-5 │ Custom Digraph Settings
281
        "└─────┴─────────────────────────
282
        " Esperanto:
283
          :digraph Cx 264
284
          :digraph cx 265
285
          :digraph Gx 284
286
          :digraph gx 285
287
          :digraph Hx 292
288
          :digraph hx 293
289
          :digraph Jx 308
290
          :digraph jx 309
291
          :digraph Sx 348
292
          :digraph sx 349
293
          :digraph Ux 364
294
          :digraph ux 365
295
296
      "│-v-4 │ Customized behavior
297
      "└─┬───┴─┬───────────────────
298-
              let g:tim_number_mode = a:1 " TODO: use this somewhere.
298+
299
        "└─────┴───────────────────────────────────
300
          " (mapping @__spell_check_mapping)
301
          function! g:ToggleSpellMode()
302
            :set spell!
303
            if &l:spell
304
              echo "Spell check ON"
305
            else
306
              echo "Spell check OFF"
307
            endif
308
          endfunction
309
310
        "│-v-5 │ (function) Toggle Fixed Window Width.
311-
          endfunc 
311+
        "└─────┴───────────────────────────────────────
312
          " (mapping @__fixed_window_width)
313
314
          function! g:TimToggleWindowFixedWidth()
315
            :set winfixwidth!
316-
                :vertical resize 85
316+
            if &l:winfixwidth
317
              echo "Fixed Window Width ON"
318
            else
319
              echo "Fixed Window Width OFF"
320
            endif
321-
                :vertical resize 85
321+
322
323
        "│-v-5 │ (function) Box character (turburul) hax
324
        "└─────┴─────────────────────────────────────────
325
          " This:
326-
                :vertical resize 81
326+
          " r---—v-,
327
          " |    | |
328
          " >----+-<
329
          " |    | |
330
          " >————+—<
331
          " |    | |
332
          " L----^—’
333
          "
334
          " Becomes This:
335
          " ┌────┬─┐
336
          " │    │ │
337
          " ├────┼─┤
338
          " │    │ │
339
          " ├────┼─┤
340
          " │    │ │
341
          " └────┴─┘
342
        " (mapping @__box_characters_mapping)
343
          function! g:BoxCharacters()
344
            :s'r'┌'e
345-
          nnoremap <tab> %
345+
346-
          vnoremap <tab> %
346+
347
            gv
348
            :s'’'┘'e
349-
          nnoremap <silent> <leader>b :ls<cr>
349+
350
            :s/'/┘/e
351
            gv
352
            :s'L'└'e
353
354
            gv
355
            :s'|'│'e
356
            gv
357
            :s'-'─'e
358-
            " for use with the numeric version:
358+
359-
          nnoremap <leader>W <C-W><C-W>
359+
360
            gv
361
            :s'+'┼'e
362
363
            gv
364-
          if has('win32')
364+
365-
            inoremap hh <esc>
365+
366-
            cnoremap hh <esc>
366+
367
            gv
368
            :s'v'┬'e
369
            gv
370
            :s'T'┬'e
371-
          nnoremap <silent> <leader>i :set list!<cr>
371+
372
            :s'<'┤'e
373
          endfunction
374
375
        "│-v-5 │ (functions) Multi-Window automatic stuff
376
        "└─────┴──────────────────────────────────────────
377
          " These settings rely heavily on the specific ways I personally use Vim.
378
          " (auto-commands @__multi_window_autocmds)
379
380
          function! TimWinLeaveWithGundo()
381
            if !GundoInTab() && g:timdisplaymode == 'code'
382
              ":vertical resize
383
              :set nowrap
384
              ":set norelativenumber
385
              ":set nonumber
386
            endif
387
          endfunction
388
389
          function! TimWinEnterWithGundo()
390
            if !GundoInTab() && g:timdisplaymode == 'code'
391
              if g:tim_number_mode == 0
392
                ":vertical resize 81
393
              else
394
                ":vertical resize 85
395
              endif
396
              :set wrap
397
              :call g:TimDisplayNumbers()
398
            endif
399
          endfunction
400
401
          function! GundoInTab()
402-
          nnoremap <leader><Bar> :vertical resize 85<cr>
402+
403
            for i in s:current_tabpagebuflist
404
              if bufname(i) == "__Gundo__"
405
                return 1
406
              endif
407-
          map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q *.h *.cpp<CR>
407+
408
            return 0
409
          endfunction
410-
        "└─┬───┴─┬──────────────────────────────────────────
410+
411
        "│-v-5 │ (functions) Line-number Mode switching
412
        "└─────┴────────────────────────────────────────
413
          " (mappings @__line_number_modes_mappings)
414
415
          let g:tim_number_mode = 1
416
417-
            vnoremap <silent> <leader>b :call g:BoxCharacters()<cr>
417+
418
            if a:0
419
              if(a:1 != -1)
420
                let g:tim_number_mode = a:1
421-
            " TODO: use <leader>n for cycle, <leader>N[mnemonic] for absolute.
421+
422
                let g:tim_number_mode -= 1
423-
            nnoremap <silent> 3<leader>n :call g:ToggleNuMode(0)<cr>
423+
424-
            nnoremap <silent> 1<leader>n :call g:ToggleNuMode(1)<cr>
424+
425-
            nnoremap <silent> 2<leader>n :call g:ToggleNuMode(2)<cr>
425+
426-
            nnoremap <silent> <leader>N :call g:ToggleNuMode()<cr>:call g:ToggleNuMode()<cr>
426+
427
428
            if g:tim_number_mode > 2
429
              let g:tim_number_mode = 0
430
            endif
431
            if g:tim_number_mode < 0
432
              let g:tim_number_mode = 2
433
            endif
434
435
            call g:TimDisplayNumbers()
436
          endfunc
437
438
          function! g:TimDisplayNumbers()
439
            if(g:tim_number_mode == 1)
440
              if g:timdisplaymode == 'code'
441
                ":vertical resize 85
442
              endif
443
              set number
444
            elseif(g:tim_number_mode == 2)
445
              if g:timdisplaymode == 'code'
446
                ":vertical resize 85
447
              endif
448
              set relativenumber
449
            else
450
              if g:timdisplaymode == 'code'
451
                ":vertical resize 81
452
              endif
453
              set nonumber
454
              set norelativenumber
455
            endif
456-
          autocmd BufRead,BufNewFile *.txtfmt setfiletype txtfmt 
456+
457
458
        "│-v-5 │ (functions) View and Folds saving
459
        "└─────┴───────────────────────────────────
460
          " (mappings @__viewdir_mappings)
461
          " TODO: for realsy, this needs to be its own script in the
462
          " repository
463
          " TODO: echo the current mode on toggle
464
          " TODO: loadview automatically in zigzagproj mode on file loading
465
466
          function! g:toggleviewdir()
467
            if g:viewdirmode == "normal"
468
              let g:viewdirmode = "zigzagproj"
469
            else
470
              let g:viewdirmode = "normal"
471
            endif
472
473
            call g:applyviewdir()
474
          endfunction
475
476
          function! g:applyviewdir()
477
            if g:viewdirmode == "normal"
478
              set viewdir=~/Dropbox/Vim/GlobalRuntimePath/view/
479
            else
480
              set viewdir=~/Dropbox/code/ZigZagDungeon/vimview/
481
            endif
482
            "echo "
483
          endfunction
484
485
          let g:viewdirmode = "normal"
486
          call g:applyviewdir()
487
488
    "│-v-3 │ Mappings, Auto-Commands & Abbreviations.
489
    "└─┬───┴─┬────────────────────────────────────────
490
      "│-v-4 │ Mappings
491-
        :set guioptions=
491+
492
        "│-v-5 │ Leader Key Settings
493
        "└─────┴─────────────────────
494
          let mapleader = ","
495
                " doesn't work?:
496
          noremap <C-,> <leader>
497
498
          " Still want this functionality!
499
          map \u <Nop>
500
          nnoremap \ ,
501
502-
        " Some favorite color schemes. Just leave your choice the only
502+
503-
        " un-commented one. (and make sure you actually have the colorscheme,
503+
504-
        " and it's compatible!)
504+
          "nnoremap <tab> %
505
          "vnoremap <tab> %
506-
        :colorscheme timbat
506+
507-
        ":colorscheme timatrix " I've put a lot of my own adjustments into this one.
507+
508-
        ":colorscheme pyte
508+
509
          nnoremap j gj
510
          nnoremap k gk
511
          nnoremap gj j
512-
        autocmd WinLeave * set nocursorline nocursorcolumn
512+
          nnoremap gk k
513-
        autocmd WinEnter * set cursorline cursorcolumn
513+
514-
        set cursorline cursorcolumn
514+
515
          nnoremap <leader>l <C-W>l
516
          nnoremap <leader>j <C-W>j
517
          nnoremap <leader>k <C-W>k
518-
        set winminwidth=12
518+
519
        "│-v-5 │ Normal-Mode alternative access.
520
        "└─────┴─────────────────────────────────
521
          " TODO: Change the windows mapping to changing caps lock to esc.
522
          "if has('win32')
523-
        set listchars=tab:▸\ ,eol:¬
523+
          "  inoremap hh <esc>
524
          "  cnoremap hh <esc>
525
          "endif
526
          "Arpeggio inoremap tn <esc>
527
          "Arpeggio cnoremap tn <esc>
528
529
        "│-v-5 │ toggle showing of invisible characters
530
        "└─────┴────────────────────────────────────────
531
          nnoremap <silent> <leader>I :call g:ToggleList()<cr>
532
          " TODO finish this indicator and stick it in the right place.
533
          function! g:ToggleList()
534
            :set list!
535
            if &l:list
536
              echo "List Invisible Characters ON"
537
            else
538
              echo "List Invisible Characters OFF"
539
            endif
540-
            set cursorcolumn
540+
541
542
        "│-v-5 │ OS clip-board easy-integration.
543
        "└─────┴─────────────────────────────────
544
          nnoremap <leader>y "+y
545
          vnoremap <leader>y "+y
546
547
          nnoremap <leader>Y "+Y
548
          vnoremap <leader>Y "+Y
549
550-
              :set guifont=consolas:h11
550+
551
          vnoremap <leader>p "+p
552-
              set guifont=Consolas\ 12
552+
553
          nnoremap <leader>P "+P
554
          vnoremap <leader>P "+P
555-
            colorscheme timbat
555+
556
        "│-v-5 │ Jump to file shortcut
557
        "└─────┴───────────────────────
558
          nnoremap <silent> <leader>f <c-w>gf
559-
            au WinEnter * set cursorcolumn
559+
560
        "│-v-5 │ File-name completion shortcut
561
        "└─────┴───────────────────────────────
562
          inoremap <c-f> <c-x><c-f>
563
564
        "│-v-5 │ __search_mappings:
565
        "└─────┴────────────────────
566
          " Switch off search highlighting.
567
          nnoremap <silent> <leader><space> :noh<cr>
568
569-
              :set guifont=consolas:h16
569+
570
        "└─────┴──────────────────────────
571-
              setlocal guifont=Consolas\ 16
571+
          nnoremap <leader><Bar>    :vertical resize 85<cr>
572
          nnoremap <leader><Bslash> :vertical resize 85<cr>
573
574-
            colorscheme timatrix
574+
575
        "└─────┴────────────────────
576
          "map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
577
          "map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q *.h *.cpp<CR>
578
          map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ .<CR>
579
580
        "│-v-5 │ Arpeggio shortcuts experiment
581
        "└─────┴───────────────────────────────
582
          Arpeggio inoremap s, /
583
          Arpeggio inoremap s. \
584
585
          Arpeggio cnoremap s, /
586
          Arpeggio cnoremap s. \
587
588
        "│-v-5 │ Digraph
589
        "└─────┴─────────
590
          Arpeggio inoremap jk <c-k>
591
592
        "│-v-5 │ mappings to customized-behavior & functions.
593
        "└─┬───┴─┬────────────────────────────────────────────
594
          "│-v-6 │ __spell_check_mapping:
595
          "└─────┴────────────────────────
596
            nnoremap <F5> :call g:ToggleSpellMode()<cr>
597-
597+
598-
598+
          "│-v-6 │ __fixed_window_width:
599
          "└─────┴───────────────────────
600
            nnoremap <leader>W :call g:TimToggleWindowFixedWidth()<cr>
601
602
          "│-v-6 │ __box_characters_mapping:
603
          "└─────┴───────────────────────────
604
            vnoremap <silent> <leader>x :call g:BoxCharacters()<cr>
605
606
          "│-v-6 │ __line_number_modes_mappings:
607
          "└─────┴───────────────────────────────
608
            nnoremap <silent> <leader>n :call g:ToggleNuMode()<cr>
609
610
            nnoremap <silent> <leader>NN :call g:ToggleNuMode(-1)<cr>
611
612
613
            nnoremap <silent> <leader>N0 :call g:ToggleNuMode(0)<cr>
614
            nnoremap <silent> <leader>No :call g:ToggleNuMode(0)<cr>
615
            nnoremap <silent> <leader>NO :call g:ToggleNuMode(0)<cr>
616
617
            nnoremap <silent> <leader>Na :call g:ToggleNuMode(1)<cr>
618
            nnoremap <silent> <leader>NA :call g:ToggleNuMode(1)<cr>
619
620
            nnoremap <silent> <leader>Nr :call g:ToggleNuMode(2)<cr>
621
            nnoremap <silent> <leader>NR :call g:ToggleNuMode(2)<cr>
622
623
          "│-v-6 │ __display_mode_mappings:
624
          "└─────┴──────────────────────────
625
            nnoremap <silent> <leader>d :call ToggleDisplayMode()<cr>
626
627
          "│-v-6 │ __viewdir_mappings:
628
          "└─────┴─────────────────────
629
            nnoremap <silent> <f6> :call g:toggleviewdir()<cr>
630
631
          "│-v-6 │ Insert literal tab character
632
          "└─────┴──────────────────────────────
633
            inoremap <silent> <s-tab> <c-v><tab>
634
635
          "│-v-6 │ Insert date:
636
          "└─────┴──────────────
637
            nmap <F3> a<C-R>=strftime("%Y-%m-%d")<CR><Esc>
638
            imap <F3> <C-R>=strftime("%Y-%m-%d")<CR>
639
            vmap <F3> di<C-R>=strftime("%Y-%m-%d")<CR><Esc>
640
641
            nmap <S-F3> a<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
642
            imap <S-F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>
643
            vmap <S-F3> di<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
644
645
646
        "│-v-5 │ mappings to Plug-ins
647
        "└─┬───┴─┬────────────────────
648
          "│-v-6 │ __gundo_mappings:
649
          "└─────┴───────────────────
650
            " toggle Gundo:
651
            nnoremap <silent> <leader>u :GundoToggle<cr>
652
653
          "│-v-6 │ __full_screen_mappings:
654
          "└─────┴─────────────────────────
655
            map <silent> <F11> <Esc>:call ToggleFullScreen()<CR>
656
657
          "│-v-6 │ __a_mappings:
658
          "└─────┴───────────────
659
            nnoremap <silent> <leader>a :AV<cr>
660
            nnoremap <silent> <leader>s :AV<cr>
661
662
            " TODO: move this somewhere more sensible:
663
            nnoremap <silent> <leader>v :vs<cr>
664
665
          "│-v-6 │ __rainbow_parentheses_mappings:
666
          "└─────┴─────────────────────────────────
667
            nnoremap <silent> <leader>, :RainbowParenthesesToggle<cr>
668
669
      "│-v-4 │ Auto-commands
670
      "└─┬───┴─┬─────────────
671
        "│-v-5 │ Independent auto-commands
672
        "└─────┴───────────────────────────
673
          autocmd BufRead,BufNewFile *.txtfmt setfiletype txtfmt
674
        "│-v-5 │ function auto-commands
675
        "└─┬───┴─┬──────────────────────
676
          "│-v-6 │ __multi_window_autocmds
677
          "└─────┴─────────────────────────
678
            autocmd WinLeave * :call TimWinLeaveWithGundo()
679
            autocmd WinEnter * :call TimWinEnterWithGundo()
680
681
682
      "│-v-4 │ Abbreviations
683
      "└─┬───┴─┬─────────────
684
        "│-v-5 │ Shortcuts
685
        "└─────┴───────────
686
          ab ?! ‽
687
          ab !? ‽
688
689
          :ab ,.0 ⁰
690
          :ab ,.1 ¹
691
          :ab ,.2 ²
692
          :ab ,.3 ³
693
          :ab ,.4 ⁴
694
          :ab ,.5 ⁵
695
          :ab ,.6 ⁶
696
          :ab ,.7 ⁷
697
          :ab ,.8 ⁸
698
          :ab ,.9 ⁹
699
700
        "│-v-5 │ Corrections
701
        "└─────┴─────────────
702
          :cab Wa wa
703
704
  "│-v-2 │ Appearance
705
  "└─┬───┴─┬──────────
706
    "│-v-3 │ Built-in Settings
707
    "└─┬───┴─┬─────────────────
708
      "│-v-4 │ GUI Options (default is "egmrLtT")
709
      "└─────┴────────────────────────────────────
710
        :set guioptions=c
711
        " Note that fullscreen plugin doesn't work well with anything but null
712
        " (or similar).
713
714
      "│-v-4 │ Color scheme
715
      "└─────┴──────────────
716
        set t_Co=256
717
718
        " Not sure if this one's actually necessary.
719
        :set background=dark
720
721
        if &t_Co > 2 || has("gui_running")
722
          ":colorscheme timbat
723
          :colorscheme badwolf
724
          ":colorscheme timatrix " I've put a lot of my own adjustments into this one.
725
          ":colorscheme pyte
726
        else
727
          :colorscheme morodark
728
        endif
729
730
      "│-v-4 │ Current-Row-Column highlighting
731
      "└─────┴─────────────────────────────────
732
        "autocmd WinLeave * set nocursorline nocursorcolumn
733
        "autocmd WinEnter * set cursorline cursorcolumn
734
        "set cursorline cursorcolumn
735
736
        autocmd WinLeave * set nocursorline
737
        autocmd WinEnter * set cursorline
738
        set cursorline
739
740
      "│-v-4 │ Window Width & Such
741
      "└─────┴─────────────────────
742
        set winminwidth=5
743
744
      "│-v-4 │ Invisible characters depiction.
745
      "└─────┴─────────────────────────────────
746
        " __requires_utf_8:
747
        set listchars=tab:│·,trail:·,extends:→
748
749
        au BufNewFile,BufRead *.cpp,*.h,*.vim,*.rb,*.java,*.snippets,*.py set list
750
751
      "│-v-4 │ Miscellaneous
752
      "└─────┴───────────────
753
        set showcmd
754
        setglobal display=lastline,uhex
755
756
      "│-v-4 │ Color Column
757
      "└─────┴──────────────
758
        set colorcolumn=81,101,121
759
760
    "│-v-3 │ Custom Functions
761
    "└─┬───┴─┬────────────────
762
      "│-v-4 │ Display Mode Stuff
763
      "└─────┴────────────────────
764
        " Mappings (@__display_mode_mappings):
765
        function! g:ApplyDisplayMode(...)
766
          if a:0
767
            let g:timdisplaymode = a:1
768
          endif
769
770
          if g:timdisplaymode == 'code'
771
            "set cursorcolumn
772
            set nospell                                    " -v-
773
774
            if &filetype=='vimwiki'
775
              setlocal linebreak
776
            else
777
              set nolinebreak
778
            endif
779
780
            if has('win32')
781
              " :set guifont=consolas:h12
782
              set guifont=Liberation\ Mono:h9
783
            else
784
              set guifont=Liberation\ Mono\ 9
785
            endif
786
787
            colorscheme badwolf
788
            set display-=lastline
789
            let &showbreak = ''
790
            set foldmarker=-v-,-^-
791
            "au WinEnter * set cursorcolumn
792
                                                           " -^-
793
          elseif g:timdisplaymode == 'composition'
794
            set nocursorcolumn
795
            setlocal spell                                 " -v-
796
            inoremap <C-BS> <Esc>b1z=wi
797
798
            setlocal linebreak
799
800
            if has('win32')
801
              set guifont=Liberation\ Mono:h13
802
            else
803
              set guifont=Liberation\ Mono\ 13
804
            endif
805
806
            "colorscheme timatrix
807
            setlocal display+=lastline
808
            let &showbreak = '  '
809
            " setlocal foldmarker={{{,}}}
810
            set foldmarker=-v-,-^-
811
            au BufEnter * set nocursorcolumn
812
          endif                                            " -^-
813
        endfunction
814
815
        let g:timdisplaymode = ''
816
        call g:ApplyDisplayMode('code')
817
818
        function! ToggleDisplayMode()
819
          if g:timdisplaymode == 'code'
820
            let g:timdisplaymode = 'composition'
821
          else
822
            let g:timdisplaymode = 'code'
823
          endif
824
825
          call g:ApplyDisplayMode()
826
        endfunction
827
828
"│-v-1 │ Transient settings
829
"└─────┴────────────────────
830
  " This is meant for sourcing in convenience settings that don't really
831
  " belong in this file.
832
  :source ~/Dropbox/code/ZigZagDungeon/vimsetup.vim
833
834
" vim: set fmr=-v-,-^- fdm=marker cms=//%s et ts=2 sw=2 :