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