Mercurial > ec-dotfiles
annotate rc/vimrc @ 731:4d037b0a9f41
[bashrc] Better FreeBSD compat with Windows Terminal
Reference: https://github.com/microsoft/terminal/discussions/18332
| author | nanaya <me@nanaya.net> | 
|---|---|
| date | Wed, 08 Jan 2025 19:02:53 +0900 | 
| parents | 3e31009ab5cc | 
| children | 0589105e685a | 
| rev | line source | 
|---|---|
| 730 
3e31009ab5cc
Pretend xterm to always support 256 colors
 nanaya <me@nanaya.net> parents: 
729diff
changeset | 1 if $TERM == 'screen' || $TERM == 'xterm' | 
| 607 | 2 set t_Co=256 | 
| 3 endif | |
| 4 | |
| 525 
1dd96a55b7ac
Invoke nocompatible earliest so it doesn't override anything preceeded it.
 edogawaconan <me@myconan.net> parents: 
503diff
changeset | 5 set nocompatible | 
| 424 | 6 set showmode " shows mode insert/replace/visual | 
| 7 set showcmd " shows last command on screen | |
| 8 set nomodeline " disallow automatic vim command execution on arbitrary file | |
| 3 | 9 set autoindent | 
| 10 set lazyredraw | |
| 424 | 11 set vb t_vb= " disables visual bell | 
| 3 | 12 set ruler | 
| 424 | 13 set backspace=2 " make backspace work like most other apps | 
| 3 | 14 set esckeys | 
| 15 set noerrorbells | |
| 637 | 16 set backupcopy=yes | 
| 641 
84a1e86d1afc
[vimrc] Prevent pointer to stick at the bottom of screen
 nanaya <me@nanaya.pro> parents: 
637diff
changeset | 17 set scrolloff=5 | 
| 680 
a34ee4c7d0ce
[vimrc] Newer vim seem to have mouse enabled by default?
 nanaya <me@nanaya.pro> parents: 
671diff
changeset | 18 set mouse= " disables mouse usage | 
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 19 | 
| 574 | 20 set softtabstop=4 tabstop=4 shiftwidth=4 expandtab | 
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 21 | 
| 535 
70d4fb4f7d9f
copyindent instead of expandtab.
 edogawaconan <me@myconan.net> parents: 
531diff
changeset | 22 set copyindent | 
| 32 | 23 set title | 
| 531 | 24 set incsearch | 
| 25 set ignorecase | |
| 26 set smartcase | |
| 424 | 27 set hlsearch | 
| 28 set ls=2 " always show status line | |
| 556 | 29 | 
| 577 | 30 set hidden " it's buffer time? | 
| 31 | |
| 648 | 32 set list listchars=tab:>-,trail:.,extends:>,nbsp:? | 
| 570 
3bd22b75cdc4
Make sure autocmd is executed when vim has it.
 nanaya <me@myconan.net> parents: 
565diff
changeset | 33 | 
| 424 | 34 set number | 
| 35 | |
| 529 
de3ff51840a3
Skip clipboard loading for speedup in current setup.
 edogawaconan <me@myconan.net> parents: 
525diff
changeset | 36 " http://stackoverflow.com/questions/14635295/vim-takes-a-very-long-time-to-start-up | 
| 
de3ff51840a3
Skip clipboard loading for speedup in current setup.
 edogawaconan <me@myconan.net> parents: 
525diff
changeset | 37 set clipboard=exclude:.* | 
| 
de3ff51840a3
Skip clipboard loading for speedup in current setup.
 edogawaconan <me@myconan.net> parents: 
525diff
changeset | 38 | 
| 682 | 39 filetype plugin on | 
| 40 filetype indent off | |
| 33 | 41 | 
| 42 map <C-t><up> :tabr<cr> | |
| 43 map <C-t><down> :tabl<cr> | |
| 44 map <C-t><left> :tabp<cr> | |
| 45 map <C-t><right> :tabn<cr> | |
| 35 
a8dc309a1b8a
Misc adjusments for vim keys
 Edho Prima Arief <me@myconan.net> parents: 
33diff
changeset | 46 map <C-t>p :tabp<cr> | 
| 
a8dc309a1b8a
Misc adjusments for vim keys
 Edho Prima Arief <me@myconan.net> parents: 
33diff
changeset | 47 map <C-t>n :tabn<cr> | 
| 33 | 48 map <C-t><C-t> :NERDTreeToggle<cr> | 
| 49 map <C-t><C-m> :NERDTreeMirror<cr> | |
| 50 | |
| 531 | 51 " clears out highlight | 
| 635 
5d3ce722285a
Use function keys for some functions
 nanaya <me@nanaya.pro> parents: 
626diff
changeset | 52 nmap <esc>[13~ <esc>:nohlsearch<cr> | 
| 721 | 53 nmap <F3> <esc>:nohlsearch<cr> | 
| 531 | 54 | 
| 55 " toggles paste mode | |
| 635 
5d3ce722285a
Use function keys for some functions
 nanaya <me@nanaya.pro> parents: 
626diff
changeset | 56 nmap <esc>[14~ <esc>:set paste!<cr> | 
| 659 
be98916b55df
[vimrc] Support xorg native function keys
 nanaya <me@nanaya.pro> parents: 
650diff
changeset | 57 nmap <F4> <esc>:set paste!<cr> | 
| 531 | 58 | 
| 59 " removes prefix for windows copypasta | |
| 635 
5d3ce722285a
Use function keys for some functions
 nanaya <me@nanaya.pro> parents: 
626diff
changeset | 60 nmap <esc>[15~ <esc>:set number! list!<cr> | 
| 659 
be98916b55df
[vimrc] Support xorg native function keys
 nanaya <me@nanaya.pro> parents: 
650diff
changeset | 61 nmap <F5> <esc>:set number! list!<cr> | 
| 424 | 62 | 
| 467 | 63 " format JSON | 
| 64 map <leader>j <esc>:%!python -m json.tool<cr> | |
| 65 | |
| 531 | 66 " visual navigation instead of logical | 
| 67 nmap j gj | |
| 68 nmap k gk | |
| 69 | |
| 33 | 70 "autocmd VimEnter * NERDTree | 
| 71 "autocmd BufEnter * NERDTreeMirror | |
| 72 | |
| 329 
ea82caf6c059
Added test to verify vim version (lite or full).
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 73 if has('syntax') | 
| 
ea82caf6c059
Added test to verify vim version (lite or full).
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 74 syntax on | 
| 650 
6ca63cec0879
[vim] Disable foldmethod to speed up things
 nanaya <me@nanaya.pro> parents: 
648diff
changeset | 75 set foldmethod=manual | 
| 432 | 76 set nofoldenable | 
| 446 
3022c5d1f8ed
Back to dark theme for compatibility with non-personal systems.
 Edho Arief <edho@myconan.net> parents: 
432diff
changeset | 77 set background=dark | 
| 554 | 78 | 
| 666 
f5e12f656c03
[vimrc] move color adjustment closer to colorscheme definition
 nanaya <me@nanaya.pro> parents: 
665diff
changeset | 79 if has("autocmd") | 
| 667 
6887e66d83b4
[vim] The specialthing color is way better using the provided theme
 nanaya <me@nanaya.pro> parents: 
666diff
changeset | 80 "autocmd colorscheme * highlight specialkey ctermfg=gray | 
| 666 
f5e12f656c03
[vimrc] move color adjustment closer to colorscheme definition
 nanaya <me@nanaya.pro> parents: 
665diff
changeset | 81 endif | 
| 
f5e12f656c03
[vimrc] move color adjustment closer to colorscheme definition
 nanaya <me@nanaya.pro> parents: 
665diff
changeset | 82 | 
| 709 | 83 let g:ctrlp_clear_cache_on_exit = 0 | 
| 84 let g:ctrlp_prompt_mappings = { | |
| 85 \ 'PrtClearCache()': ['<F5>', '<esc>[15~'], | |
| 86 \ } | |
| 708 | 87 packadd! ctrlp.vim | 
| 709 | 88 | 
| 729 | 89 let g:srcery_bg=['NONE', 'NONE'] | 
| 704 
1e0f578f6752
Update vendor and add support for vim packs
 nanaya <me@nanaya.net> parents: 
687diff
changeset | 90 packadd! srcery-vim | 
| 662 
f280738a90a6
[vim] vendor theme and add some more
 nanaya <me@nanaya.pro> parents: 
659diff
changeset | 91 colorscheme srcery | 
| 329 
ea82caf6c059
Added test to verify vim version (lite or full).
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 92 endif | 
| 350 | 93 | 
| 94 if has("autocmd") | |
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 95 function In2() | 
| 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 96 set softtabstop=2 tabstop=2 shiftwidth=2 expandtab | 
| 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 97 endfunction | 
| 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 98 | 
| 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 99 function In4() | 
| 574 | 100 set softtabstop=4 tabstop=4 shiftwidth=4 expandtab | 
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 101 endfunction | 
| 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 102 | 
| 574 | 103 function In4t() | 
| 104 set softtabstop=4 tabstop=4 shiftwidth=4 noexpandtab | |
| 105 endfunction | |
| 563 
7cac401e5c78
Add configurable to always assume two spaces/no tab in vim.
 nanaya <me@myconan.net> parents: 
560diff
changeset | 106 | 
| 545 
c9ea8dd9d382
Remove unnecessary json configs.
 edogawaconan <me@myconan.net> parents: 
544diff
changeset | 107 " required by syntax file | 
| 
c9ea8dd9d382
Remove unnecessary json configs.
 edogawaconan <me@myconan.net> parents: 
544diff
changeset | 108 " reference: https://github.com/elzr/vim-json/blob/master/ftplugin/json.vim | 
| 
c9ea8dd9d382
Remove unnecessary json configs.
 edogawaconan <me@myconan.net> parents: 
544diff
changeset | 109 let g:vim_json_syntax_conceal = 1 | 
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 110 | 
| 539 
05785a85d603
Fix json syntax highlighter config.
 edogawaconan <me@myconan.net> parents: 
538diff
changeset | 111 autocmd BufNewFile,BufRead *.json set filetype=json | 
| 
05785a85d603
Fix json syntax highlighter config.
 edogawaconan <me@myconan.net> parents: 
538diff
changeset | 112 autocmd BufNewFile,BufRead *.jsonp set filetype=json | 
| 541 | 113 autocmd BufRead,BufNewFile *.blade.php set filetype=blade | 
| 114 autocmd BufRead,BufNewFile *.coffee set filetype=coffee | |
| 115 autocmd BufRead,BufNewFile *.erb set filetype=eruby | |
| 116 autocmd BufRead,BufNewFile *.less set filetype=less | |
| 117 autocmd BufRead,BufNewFile *.scss set filetype=scss | |
| 118 autocmd BufRead,BufNewFile *.slim set filetype=slim | |
| 119 autocmd BufRead,BufNewFile Gemfile set filetype=ruby | |
| 560 | 120 autocmd BufRead,BufNewFile Vagrantfile set filetype=ruby | 
| 541 | 121 autocmd BufRead,BufNewFile config.ru set filetype=ruby | 
| 720 | 122 autocmd BufRead,BufNewFile smb.conf set ft=dosini | 
| 541 | 123 autocmd BufRead,BufNewFile supervisord.conf set filetype=dosini | 
| 622 | 124 autocmd BufRead,BufNewFile php-fpm.conf set filetype=dosini | 
| 125 autocmd BufRead,BufNewFile */php-fpm.d/* set filetype=dosini | |
| 620 | 126 " stolen from https://github.com/leafgarland/typescript-vim/blob/master/ftdetect/typescript.vim | 
| 127 " use `set filetype` to override default filetype=xml for *.ts files | |
| 128 autocmd BufNewFile,BufRead *.ts set filetype=typescript | |
| 671 | 129 autocmd BufNewFile,BufRead *.tsx set filetype=typescriptreact | 
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 130 | 
| 596 | 131 autocmd BufRead,BufNewFile *.nginx set ft=nginx | 
| 132 autocmd BufRead,BufNewFile */etc/nginx/* set ft=nginx | |
| 133 autocmd BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx | |
| 134 autocmd BufRead,BufNewFile */opt/nginx/conf/* set ft=nginx | |
| 135 autocmd BufRead,BufNewFile nginx.conf set ft=nginx | |
| 136 | |
| 550 | 137 autocmd FileType coffee call In2() | 
| 626 | 138 autocmd FileType css call In2() | 
| 550 | 139 autocmd FileType eruby call In2() | 
| 544 
75c30f2b4694
Add special setting for ruby, global default to 4/noet (ruby is 2/et).
 edogawaconan <me@myconan.net> parents: 
542diff
changeset | 140 autocmd FileType ruby call In2() | 
| 550 | 141 autocmd FileType scss call In2() | 
| 575 | 142 autocmd FileType less call In2() | 
| 550 | 143 autocmd FileType yaml call In2() | 
| 616 
dc2070cb5d71
Default json to 2 spaces indentation
 nanaya <me@nanaya.pro> parents: 
607diff
changeset | 144 autocmd FileType json call In2() | 
| 617 | 145 autocmd FileType javascript call In2() | 
| 624 | 146 autocmd FileType typescript call In2() | 
| 637 | 147 autocmd FileType typescriptreact call In2() | 
| 596 | 148 autocmd FileType nginx setlocal commentstring=#\ %s | 
| 602 | 149 autocmd FileType nginx setlocal iskeyword& | 
| 687 | 150 | 
| 151 " https://vimdoc.sourceforge.net/htmldoc/change.html#fo-table | |
| 152 " disable comment auto format | |
| 153 autocmd BufRead,BufNewFile * setlocal formatoptions-=c | |
| 154 autocmd BufRead,BufNewFile * setlocal formatoptions-=r | |
| 155 autocmd BufRead,BufNewFile * setlocal formatoptions-=o | |
| 350 | 156 endif | 
| 412 
7ceec4404caf
Add restore cursor position for vim.
 Edho Arief <edho@myconan.net> parents: 
410diff
changeset | 157 | 
| 448 
e0e8de4135bc
Testing for function never returns true. Replaced with autocmd.
 Edho Arief <edho@myconan.net> parents: 
446diff
changeset | 158 if has('autocmd') | 
| 418 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 159 "Restore cursor position | 
| 645 | 160 set viminfo='50,\"1000,<1000,:100,%,h,n~/.viminfo | 
| 418 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 161 function! ResCur() | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 162 if line("'\"") <= line("$") | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 163 normal! g`" | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 164 return 1 | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 165 endif | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 166 endfunction | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 167 augroup resCur | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 168 autocmd! | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 169 autocmd BufWinEnter * call ResCur() | 
| 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 170 augroup END | 
| 496 
6bdf99bfbe97
Newer git use different filename, I think.
 edogawaconan <me@myconan.net> parents: 
494diff
changeset | 171 autocmd BufWinEnter */.git/COMMIT_EDITMSG exe "normal! gg" | 
| 451 
abb434518e1f
Always start editing git commit message from line 1.
 Edho Arief <edho@myconan.net> parents: 
448diff
changeset | 172 autocmd BufWinEnter .git/COMMIT_EDITMSG exe "normal! gg" | 
| 418 
c0ac21407903
Disable features on vim basic.
 Edho Arief <edho@myconan.net> parents: 
412diff
changeset | 173 endif | 
| 424 | 174 | 
| 175 if has('statusline') | |
| 176 " Status line detail: | |
| 177 " %f file path | |
| 178 " %y file type between braces (if defined) | |
| 179 " %([%R%M]%) read-only, modified and modifiable flags between braces | |
| 180 " %{'!'[&ff=='default_file_format']} | |
| 181 " shows a '!' if the file format is not the platform | |
| 182 " default | |
| 183 " %{'$'[!&list]} shows a '*' if in list mode | |
| 184 " %{'~'[&pm=='']} shows a '~' if in patchmode | |
| 185 " (%{synIDattr(synID(line('.'),col('.'),0),'name')}) | |
| 186 " only for debug : display the current syntax item name | |
| 187 " %= right-align following items | |
| 188 " #%n buffer number | |
| 189 " %l/%L,%c%V line number, total number of lines, and column number | |
| 190 function SetStatusLineStyle() | |
| 191 if &stl == '' || &stl =~ 'synID' | |
| 192 let &stl="%f %y%([%R%M]%)%{'!'[&ff=='".&ff."']}%{'$'[!&list]}%{'~'[&pm=='']}%=#%n %l/%L,%c%V " | |
| 193 else | |
| 194 let &stl="%f %y%([%R%M]%)%{'!'[&ff=='".&ff."']}%{'$'[!&list]} (%{synIDattr(synID(line('.'),col('.'),0),'name')})%=#%n %l/%L,%c%V " | |
| 195 endif | |
| 196 endfunc | |
| 197 " Switch between the normal and vim-debug modes in the status line | |
| 198 nmap _ds :call SetStatusLineStyle()<CR> | |
| 199 call SetStatusLineStyle() | |
| 200 " Window title | |
| 201 if has('title') | |
| 728 | 202 if &term == "screen" || &term == "screen-256color" | 
| 493 
1ad9091c464e
Properly set window name for vim.
 edogawaconan <me@myconan.net> parents: 
476diff
changeset | 203 set t_ts=]0; | 
| 
1ad9091c464e
Properly set window name for vim.
 edogawaconan <me@myconan.net> parents: 
476diff
changeset | 204 set t_fs= | 
| 
1ad9091c464e
Properly set window name for vim.
 edogawaconan <me@myconan.net> parents: 
476diff
changeset | 205 endif | 
| 494 | 206 set title | 
| 207 let &titlestring = $user | |
| 424 | 208 endif | 
| 209 endif | |
| 618 | 210 | 
| 619 | 211 if filereadable($HOME."/.vimrc.local") | 
| 212 source $HOME/.vimrc.local | |
| 618 | 213 endif | 
