666840419ab639ad6a369aee4c5d9a45d36f4728
dblume Soften the status line colo...

dblume authored 11 months ago

1) " Version 2024-03-17.1 - status line color tweak
David Blume first commit

David Blume authored 9 years ago

2) set nocompatible    " Use Vim defaults, forget compatibility with vi.
3) set bs=2            " allow backspacing over everything in insert mode
4) set wildmenu        " Allows command-line completion with tab
5) set autoindent      " Copy indent from current line when starting a new line
6) set smartindent     " Do smart auto indenting when starting  new line
7) set smarttab        " Honor 'shiftwidth', 'tabstop' or 'softtabstop'
8) set hlsearch        " highlight all matches for previous search
dblume Better fold settings for zA

dblume authored 1 year ago

9) set foldlevel=99
David Blume first commit

David Blume authored 9 years ago

10) set nowrap          " no wrapping text lines on the screen (exceptions below)
11) set sidescroll=5
dblume May use nbsp in PS1; add it...

dblume authored 2 years ago

12) set listchars+=tab:>-,precedes:<,extends:>,nbsp:· " for :set list
dblume Add - as a word character

dblume authored 1 year ago

13) set iskeyword+=-    " Add - to list of non-word-breaking chars.
dblume Starting trial with vim 'in...

dblume authored 1 year ago

14) set incsearch       " Navigate to matched strings while typing. Toggle: :set is!
dblume Set scrolloff to 0, EC2 def...

dblume authored 11 months ago

15) set scrolloff=0     " EC2 defaults to 5. Set explicitly to be consistent
dblume Vim to delete comment char...

dblume authored 10 months ago

16) set formatoptions+=j " Delete comment character when joining commented lines.
dblume Improve Esc key reaction, f...

dblume authored 10 months ago

17) set ttimeoutlen=100 " Affects Esc key, not leader.
dblume .vimrc needs explicit "noru...

dblume authored 10 months ago

18) set noruler         " Don't show cursor pos on right side of status bar
dblume tmux and vim to set termina...

dblume authored 9 months ago

19) set title           " Set the title in the terminal window
David Blume first commit

David Blume authored 9 years ago

20) 
21) if v:version >= 703
22)   " Do save the undo tree to file, but not in the local directory.
23)   " Don't forget to mkdir ~/.vim_undo
24)   set undodir=~/.vim_undo,.
25)   set undofile        " undo even after closing and reopening a file
26) endif
27) 
David Blume vimrc key remappings. jk as...

David Blume authored 6 years ago

28) " Make j and k move to the next row, not file line
29) nnoremap j gj
30) nnoremap k gk
31) 
32) " From Steve Losh: http://learnvimscriptthehardway.stevelosh.com/chapters/10.html
dblume Use j and k for navigating...

dblume authored 2 years ago

33) " Map jk to ESC in insert mode (except when navigating popup menu)
34) inoremap <expr> jk pumvisible() ? '' : '<esc>'
35) inoremap <expr> j pumvisible() ? '<Down>' : 'j'
36) inoremap <expr> k pumvisible() ? '<Up>' : 'k'
dblume Map Tab and CR to pull-up-m...

dblume authored 10 months ago

37) inoremap <expr> <Tab> pumvisible() ? '<Down>' : '<Tab>'
38) inoremap <expr> <S-Tab> pumvisible() ? '<Up>' : '<S-Tab>'
39) inoremap <expr> <cr> pumvisible() ? '<C-y>' : '<cr>'
David Blume vimrc key remappings. jk as...

David Blume authored 6 years ago

40) 
dblume Add easier window navigation.

dblume authored 2 years ago

41) " https://stevelosh.com/blog/2010/09/coming-home-to-vim/#s3-why-i-came-back-to-vim
42) nnoremap <leader>v <C-w>v<C-w>l
43) nnoremap <C-h> <C-w>h
44) nnoremap <C-j> <C-w>j
45) nnoremap <C-k> <C-w>k
46) nnoremap <C-l> <C-w>l
47) 
David Blume vimrc key remappings. jk as...

David Blume authored 6 years ago

48) " clear search highlights
49) nnoremap <cr> :noh<cr><cr>
David Blume first commit

David Blume authored 9 years ago

50) 
dblume Clarify comment 'Shift-Tab'

dblume authored 9 months ago

51) " Shift-Tab switches to prev buffer
dblume Restore Ctrl-i (Tab) to mea...

dblume authored 9 months ago

52) " (Not remapping Tab because Ctrl-i in use as 'go to next jump pos')
dblume bash PROMPT_COMMAND to set...

dblume authored 9 months ago

53) " Test with this:
54) " vim -Nu NONE +'nno <C-i> :echom "C-i pressed"<cr>' +'nno <tab> :echom "Tab pressed"<cr>'
55) ""nnoremap <C-i> <C-i>
56) ""nmap <Tab> :bn<cr>
dblume Restore Ctrl-i (Tab) to mea...

dblume authored 9 months ago

57) nnoremap <S-Tab> :bp<cr>
dblume tab key navigation of buffers

dblume authored 1 year ago

58) 
dblume Remap Y to yank to end of l...

dblume authored 11 months ago

59) " Use yy to yank a whole line, use Y to yank to end of line like C and D
60) nnoremap Y y$
61) 
David Blume first commit

David Blume authored 9 years ago

62) syntax on
63) 
64) set t_Co=256
65) if v:version >= 703
66)   set colorcolumn=80
67) endif
68) if has('gui_running') " Didn't work: if &term != 'builtin_gui'
69)   " Light backgrounds for GUI experiences
70)   set background=light
71)   " colorscheme peaksea                        " install peaksea
72)   colorscheme tolerable                        " install tolerable
73)   if v:version >= 703
74)     highlight ColorColumn ctermbg=255 guibg=#F6F6F6
75)   endif
dblume nvim ColorColumn was inverted

dblume authored 11 months ago

76)   highlight statusline   ctermfg=17 ctermbg=Gray  " override scheme
77)   highlight statuslineNC ctermfg=20 ctermbg=LightGray  " override scheme
David Blume Specify a font for gvim on...

David Blume authored 4 years ago

78)   if has('win32')
79)     set guifont=DejaVu_Sans_Mono_for_Powerline:h10:cANSI:qDRAFT
80)   endif
David Blume first commit

David Blume authored 9 years ago

81)   set lines=50 columns=100
82) else
83)   " Dark backgrounds for tty experiences
84)   set background=dark
85)   colorscheme desert                           " install desert
86)   if v:version >= 703
David Blume Windows PuTTY shows ctermbg...

David Blume authored 6 years ago

87)     highlight ColorColumn ctermbg=233 guibg=Black " dark gray (or 17, dark blue)
David Blume first commit

David Blume authored 9 years ago

88)   endif
dblume Make the normal statusbar m...

dblume authored 10 months ago

89)   highlight statusline   ctermfg=23 ctermbg=250  " override scheme
dblume Change hightlight of curren...

dblume authored 10 months ago

90) "  highlight User1        ctermfg=250 ctermbg=30
dblume Soften the status line colo...

dblume authored 11 months ago

91)   highlight statuslineNC ctermfg=237 ctermbg=Gray  " override scheme
dblume Better statusline color.

dblume authored 2 years ago

92)   highlight MatchParen   term=reverse ctermbg=23  " 23 is more subtle than default
David Blume first commit

David Blume authored 9 years ago

93) endif
dblume Better statusline color.

dblume authored 2 years ago

94) 
dblume Vim insert mode's blue shou...

dblume authored 10 months ago

95) au InsertEnter * hi statusline guibg=Cyan ctermfg=25 guifg=Black ctermbg=248
dblume Make the normal statusbar m...

dblume authored 10 months ago

96) au InsertLeave * hi statusline term=bold,reverse cterm=bold,reverse ctermfg=23 ctermbg=250 guifg=black guibg=#c2bfa5
dblume Maybe I like these statusli...

dblume authored 1 year ago

97) 
David Blume first commit

David Blume authored 9 years ago

98) " set mouse=v     " visual mode, not working great for PuTTY
99) 
100) set tags=tags;/
101) 
dblume Make vim StatuslineGit() re...

dblume authored 11 months ago

102) set history=500
dblume Update vim statusline to pr...

dblume authored 1 year ago

103) set laststatus=2
104) 
dblume Retrieve git branch only on...

dblume authored 11 months ago

105) function! GitBranch()
dblume Make vim StatuslineGit() re...

dblume authored 11 months ago

106)   let l:branchname = system("git -C " . expand('%:p:h') . " rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'")
dblume vim to use the "git branch"...

dblume authored 10 months ago

107)   return strlen(l:branchname) > 0 ? '  │  '.l:branchname : ''
dblume Update vim statusline to pr...

dblume authored 1 year ago

108) endfunction
109) 
dblume Only show encoding and form...

dblume authored 10 months ago

110) function! EncodingAndFormat()
111)   if (len(&fileencoding) && &fileencoding != 'utf-8') || &fileformat != 'unix'
112)     return &fileencoding?&fileencoding:&encoding .'['. &fileformat . '] │ '
113)   endif
114)   return ''
115) endfunction
116) 
dblume Make "set ruler!" change st...

dblume authored 10 months ago

117) function! OnRuler()
118)   if &ruler
119)     return '│ '.line('.').':'.col('.').' '
120)   endif
121)   return ''
122) endfunction
123) 
dblume Default to mode() if not in...

dblume authored 1 year ago

124) function! Current_mode()
125)   let l:currentmode={
dblume Update vim statusline to pr...

dblume authored 1 year ago

126)     \ 'n'  : 'NORMAL',
127)     \ 'v'  : 'VISUAL',
128)     \ 'V'  : 'V·LINE',
129)     \ '' : 'V·BLOCK',
130)     \ 's'  : 'SELECT',
131)     \ 'S'  : 'S·LINE',
132)     \ 'i'  : 'INSERT',
dblume Default to mode() if not in...

dblume authored 1 year ago

133)     \ 'r'  : 'I·REPLACE',
dblume Update vim statusline to pr...

dblume authored 1 year ago

134)     \ 'R'  : 'REPLACE',
135)     \ 'Rv' : 'V·REPLACE',
136)     \ 'c'  : 'COMMAND',
137)     \}
dblume Default to mode() if not in...

dblume authored 1 year ago

138)     return get(l:currentmode, mode(), mode())
139) endfunction
dblume Update vim statusline to pr...

dblume authored 1 year ago

140) 
141) function! Trim_brackets(fn)
dblume Support older vim on raspi

dblume authored 1 year ago

142)   if v:version > 800
143)     return trim(a:fn, "[]")
144)   else
145)     return a:fn
146)   endif
dblume Update vim statusline to pr...

dblume authored 1 year ago

147) endfunction
148) 
dblume Default to mode() if not in...

dblume authored 1 year ago

149) set statusline=\ %{Current_mode()}
dblume Update vim statusline to pr...

dblume authored 1 year ago

150) set statusline+=%{&paste?'\ \ ·\ PASTE':''}
dblume Retrieve git branch only on...

dblume authored 11 months ago

151) set statusline+=%{b:git_branch}
dblume vimrc use box drawing vertical

dblume authored 1 year ago

152) set statusline+=\ │\ %f
dblume Default to mode() if not in...

dblume authored 1 year ago

153) set statusline+=%m
154) set statusline+=\ %r
155) set statusline+=\ %=
dblume Update vim statusline to pr...

dblume authored 1 year ago

156) set statusline+=%h
dblume Default to mode() if not in...

dblume authored 1 year ago

157) set statusline+=\ %{Trim_brackets(&filetype)}
158) set statusline+=\ %#StatusLineNC#
dblume Only show encoding and form...

dblume authored 10 months ago

159) set statusline+=\ %{b:enc_fmt}
160) set statusline+=%p%%\ of
dblume Drop column and line number...

dblume authored 11 months ago

161) set statusline+=\ %L\ 
dblume Make "set ruler!" change st...

dblume authored 10 months ago

162) set statusline+=%{OnRuler()}
David Blume first commit

David Blume authored 9 years ago

163) 
164) set encoding=utf-8
165) 
dblume No comments after key mappi...

dblume authored 2 years ago

166) " Fast saving
167) nmap <leader>w :w!<cr>
David Blume first commit

David Blume authored 9 years ago

168) " I use relative number for cursor movement.
169) nmap <leader>r :set relativenumber!<cr>
170) nmap <leader>n :set number!<cr>
171) 
172) " Useful mappings for managing tabs
dblume Remove bad vim mappings for...

dblume authored 2 years ago

173) " Tab Previous: gT or C-PageUp
174) " Tab Next: gt or C-PageDown
David Blume first commit

David Blume authored 9 years ago

175) nmap <leader>tn :tabnew
176) nmap <leader>to :tabonly<cr>
177) nmap <leader>tc :tabclose<cr>
178) nmap <leader>tm :tabmove
dblume Add shortcuts for tab selec...

dblume authored 2 years ago

179) nmap <leader>1 1gt
180) nmap <leader>2 2gt
181) nmap <leader>3 3gt
182) nmap <leader>4 4gt
183) nmap <leader>5 5gt
184) nmap <leader>6 6gt
185) nmap <leader>7 7gt
186) nmap <leader>8 8gt
187) nmap <leader>9 9gt
dblume Use <leader>o OpenCurrentAs...

dblume authored 2 years ago

188) 
189) " Open current buffer in new tab. Close with C-w,c
190) " https://vim.fandom.com/wiki/Maximize_window_and_return_to_previous_split_structure
191) function! OpenCurrentAsNewTab()
dblume Restore entire window view...

dblume authored 2 years ago

192)     let l:currentView = winsaveview()
dblume Use <leader>o OpenCurrentAs...

dblume authored 2 years ago

193)     tabedit %
dblume Restore entire window view...

dblume authored 2 years ago

194)     call winrestview(l:currentView)
dblume Use <leader>o OpenCurrentAs...

dblume authored 2 years ago

195) endfunction
196) nmap <leader>o :call OpenCurrentAsNewTab()<CR>
David Blume first commit

David Blume authored 9 years ago

197) 
198) " pastetoggle
199) nmap <leader>p :set invpaste paste?<cr>
200) 
David Blume Add mapping to paste onto n...

David Blume authored 6 years ago

201) " Control+p to paste onto next line
202) nmap <C-p> :pu<cr>
203) 
David Blume Will use netrw's Explore in...

David Blume authored 3 years ago

204) " Make netrw's Explore behave a little like NERDTreeToggle
205) " http://vimcasts.org/blog/2013/01/oil-and-vinegar-split-windows-and-project-drawer/
David Blume Remove NERDTree and use net...

David Blume authored 4 years ago

206) function! ToggleNetrw()
David Blume Improve the toggling of the...

David Blume authored 3 years ago

207)   if bufwinnr("NetrwTreeListing") > 0
208)     for i in range(1, bufnr("$"))
209)       if (getbufvar(i, "&filetype") == "netrw")
David Blume Use netrw Vexplore to assur...

David Blume authored 3 years ago

210)         silent exe "bwipeout " . i
David Blume Improve the toggling of the...

David Blume authored 3 years ago

211)         return
212)       endif
213)     endfor
214)   endif
David Blume Use netrw Vexplore to assur...

David Blume authored 3 years ago

215)   silent Vexplore %:p:h
David Blume Remove NERDTree and use net...

David Blume authored 4 years ago

216) endfunction
217) nmap <leader>e :call ToggleNetrw()<cr>
218) 
dblume No comments after key mappi...

dblume authored 2 years ago

219) " install taglist
220) let Tlist_GainFocus_On_ToggleOpen = 1  " Jump to taglist window on open
221) let Tlist_Exit_OnlyWindow = 1          " if you are the last, kill yourself
222) let Tlist_Close_On_Select = 1          " Close taglist window on select
dblume Update taglist to 4.6 in vi...

dblume authored 10 months ago

223) let Tlist_Inc_Winwidth = 0             " Only needed for neovim in tmux
dblume No comments after key mappi...

dblume authored 2 years ago

224) nmap <leader>l :TlistToggle<cr>
225) 
226) " install vim-bbye
227) nmap <leader>bd :Bdelete<cr>
David Blume first commit

David Blume authored 9 years ago

228) 
229) " Visual mode mappings
230) """
231) 
232) " map sort function to a key
233) vnoremap <leader>s :sort<cr>
234) 
235) "easier moving of code blocks
David Blume vimrc key remappings. jk as...

David Blume authored 6 years ago

236) vnoremap < <gv
237) vnoremap > >gv
David Blume first commit

David Blume authored 9 years ago

238) 
239) " If too many file system events are getting triggered.
240) set nobackup       " ~ files
241) set nowritebackup  " Don't write buff to temp, delete orig, rename temp to orig
242) set noswapfile     " .swp files
243) 
244) " Allow tags to open another buffer even if this one is modified
245) set hidden
246) 
247) " Switch between source and header files
248) function! SwitchSourceHeader()
249)   let s:ext  = expand("%:e")
250)   let s:base = expand("%:t:r")
251)   let s:cmd  = "find " . s:base
252)   if (s:ext == "cpp" || s:ext == "c")
253)     if findfile(s:base . ".h"  ) != "" | exe s:cmd . ".h"   | return | en
254)     if findfile(s:base . ".hpp") != "" | exe s:cmd . ".hpp" | return | en
255)   else
256)     if findfile(s:base . ".cpp") != "" | exe s:cmd . ".cpp" | return | en
257)     if findfile(s:base . ".c"  ) != "" | exe s:cmd . ".c"   | return | en
258)   endif
259) endfunc
260) 
261) " Demonstrates a way to look in a mirror directory
262) " function! OpenOther()
263) "    if expand("%:e") == "cpp"
264) "      exe "split" fnameescape(expand("%:p:r:s?src?include?").".h")
265) "    elseif expand("%:e") == "h"
266) "      exe "split" fnameescape(expand("%:p:r:s?include?src?").".cpp")
267) "    endif
268) " endfunc
269) 
270) " Delete trailing white space on save, useful for Python and CoffeeScript ;)
271) function! DeleteTrailingWS()
272)   exe "normal mz"
273)   %s/\s\+$//ge
274)   exe "normal `z"
275) endfunc
276) 
David Blume Add OpenInOtherWindow to .v...

David Blume authored 8 years ago

277) function! OpenInOtherWindow()
278)   if winnr('$') == 1
279)     exe "wincmd F"
280)   else
281)     let curNum = winnr()
282)     let oldBuf = bufnr( "%" )
283)     if curNum == 1
284)       let othNum = 2
285)     else
286)       let othNum = 1
287)     endif
288)     exe "normal! gF"
289)     let newBuf = bufnr( "%" )
290)     let newLine = line(".")
291)     exe 'hide buf' oldBuf
292)     exe othNum . "wincmd w"
293)     exe 'hide buf' newBuf
294)     exe "normal! " . newLine . "G"
295)   endif
296) endfunc
297) 
298) nmap <silent> <leader>F :call OpenInOtherWindow()<cr>
dblume Make OpenInOtherWindow easier.

dblume authored 2 years ago

299) nmap <silent> <leader>f :call OpenInOtherWindow()<cr>
David Blume Add OpenInOtherWindow to .v...

David Blume authored 8 years ago

300) 
David Blume first commit

David Blume authored 9 years ago

301) if has("autocmd")
302)   autocmd BufWrite *.py :call DeleteTrailingWS()  " Delete trailing whitespace
303)   " Don't let smartindent unindent the # character in Python files
304)   autocmd FileType python  inoremap # X<c-h>#
dblume expand tabs for Python

dblume authored 1 year ago

305)   autocmd FileType python,c,cpp,php,brs,sh  set expandtab  " Use spaces instead of tabs
David Blume first commit

David Blume authored 9 years ago

306)   autocmd Filetype make    setl noexpandtab       " ...not for files that use tabs.
307) 
308)   " Use the vim command %retab before applying the following
309)   " two with files that have 8-space tabs.
David Blume Add .vimrc tab values for ....

David Blume authored 8 years ago

310)   autocmd FileType c,cpp,python,php  set tabstop=4
dblume Remove some lines, allow mo...

dblume authored 2 years ago

311)   autocmd FileType c,cpp,php  set shiftwidth=4
David Blume first commit

David Blume authored 9 years ago

312) 
313)   autocmd FileType python  set foldmethod=indent  " 'za' to fold
314) 
David Blume Disable vim-airline whitesp...

David Blume authored 6 years ago

315)   autocmd FileType c,cpp nmap <buffer> <leader>s :call SwitchSourceHeader()<cr>
David Blume first commit

David Blume authored 9 years ago

316)   autocmd FileType c,cpp set foldmethod=syntax
317) 
dblume Improve focus-based switchi...

dblume authored 10 months ago

318) " https://jeffkreeftmeijer.com/vim-number/
319) augroup numbertoggle
320)   autocmd!
321)   autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu && mode() != "i" | set rnu   | endif
322)   autocmd BufLeave,FocusLost,InsertEnter,WinLeave   * if &nu                  | set nornu | endif
323) augroup END
David Blume first commit

David Blume authored 9 years ago

324) 
dblume Remove some lines, allow mo...

dblume authored 2 years ago

325)   autocmd BufRead *.txt set wrap linebreak   " "soft" wrap of existing lines
326)   autocmd BufRead README set wrap linebreak  " "soft" wrap of existing lines
dblume Add .local/bin to $PATH

dblume authored 2 years ago

327)   autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/
David Blume first commit

David Blume authored 9 years ago

328) 
dblume Always start on first line...

dblume authored 11 months ago

329)   " When editing a file, always jump to the last cursor position...
David Blume first commit

David Blume authored 9 years ago

330)   autocmd BufReadPost *
dblume Improve Esc key reaction, f...

dblume authored 10 months ago

331)   \ if &ft != "gitcommit" && line("'\"") > 0 && line ("'\"") <= line("$") |
David Blume first commit

David Blume authored 9 years ago

332)   \   exe "normal! g'\"" |
333)   \ endif
dblume Improve Esc key reaction, f...

dblume authored 10 months ago

334)   " ...except for gitcommit where we always want to start at the top (nvim)
dblume Always start on first line...

dblume authored 11 months ago

335)   autocmd FileType gitcommit exe "normal! gg"
dblume Retrieve git branch only on...

dblume authored 11 months ago

336) 
dblume Only show encoding and form...

dblume authored 10 months ago

337)   autocmd BufNewFile,BufReadPost *
338)   \ let b:git_branch = GitBranch() |
339)   \ let b:enc_fmt = EncodingAndFormat()
340)   autocmd BufEnter *
341)   \ let b:git_branch = GitBranch() |
342)   \ let b:enc_fmt = EncodingAndFormat()
David Blume first commit

David Blume authored 9 years ago

343) endif
344) 
345) " This requires vim to be compiled with +python
346) " Use auto complete in insert mode with ctrl-x, ctrl-o
347) " See :help new-omni-completion for more.
348) filetype plugin on
349) set omnifunc=syntaxcomplete#Complete
dblume Completion tweaks

dblume authored 2 years ago

350) 
351) " Torn on whether I like the omni completion preview window left open or not.
352) " autocmd CompleteDone * pclose
353) 
354) " Omni completion via ctrl-space (in addition to ctrl-x ctrl-o)
355) inoremap <Nul> <C-x><C-o>
356) 
dblume Add commands SynStack and H...

dblume authored 10 months ago

357) " These two commands display syntax/highlight info for what's under the cursor.
358) if exists(":SynStack") != 2
359)     command SynStack :echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
360) endif
361) 
362) function! SynGroup()
363)     let l:s = synID(line('.'), col('.'), 1)
364)     echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name')
365) endfun
366) command Hi :call SynGroup()
367) 
David Blume Add cscope support

David Blume authored 7 years ago

368) " cscope
369) if has("cscope")
370)     set cscopetag  " Use both cscope and ctag for 'ctrl-]'
David Blume I prefer ctags to be search...

David Blume authored 7 years ago

371)     set csto=1     " 0=cscope first; 1=ctags first
dblume Use QuickFix for cscope.

dblume authored 2 years ago

372)     set cscopequickfix=s-,c-,d-,i-,t-,e-,a- " cscope to quickfix window
373) 
David Blume Use local cscope.out databa...

David Blume authored 3 years ago

374)     set nocsverb
375)     " add any database in current directory
376)     if filereadable("cscope.out")
377)         cs add cscope.out
378)     " else add database pointed to by environment
379)     elseif $CSCOPE_DB != ""
380)         cs add $CSCOPE_DB
381)     endif
382)     set csverb
David Blume Add cscope support

David Blume authored 7 years ago

383) endif
384) 
David Blume Sort QuickFix tool by filen...

David Blume authored 3 years ago

385) " From https://stackoverflow.com/questions/15393301/how-to-automatically-sort-quickfix-entries-by-line-text-in-vim
386) " :grep term %
387) " :grep -r term path/
388) " :cw
389) " :ccl (or C-w,q)
dblume QuickFix window: only sort...

dblume authored 2 years ago

390) autocmd! QuickfixCmdPost * call MaybeSortQuickfix('QfStrCmp')
391) 
392) function! MaybeSortQuickfix(fn)
393) "    exe 'normal! '  " Doesn't work. Wanted to jump back to where we were.
394)     let t = getqflist({'title': 1}).title
dblume QuickFix sorts for 'vimgrep...

dblume authored 2 years ago

395)     " Only sort the files if for search-style commands, not "make".
dblume Follow up integrate ripgrep...

dblume authored 2 years ago

396)     if stridx(t, "cs ") == 0 || stridx(t, ":gr") == 0 || stridx(t, ":vim") == 0 || stridx(t, ":rg") == 0
dblume QuickFix window: only sort...

dblume authored 2 years ago

397)         call setqflist(sort(getqflist(), a:fn), 'r')
398)         call setqflist([], 'r', {'title': t})
399)     endif
400)     cwindow
David Blume Sort QuickFix tool by filen...

David Blume authored 3 years ago

401) endfunction
402) 
403) function! QfStrCmp(e1, e2)
404)     let [t1, t2] = [bufname(a:e1.bufnr), bufname(a:e2.bufnr)]
405)     return t1 <# t2 ? -1 : t1 ==# t2 ? 0 : 1
406) endfunction
407) 
dblume Integrate ripgrep into vim.

dblume authored 2 years ago

408) " Use ripgrep for search instead of grep
409) if executable('rg')
410)     " set grepprg=rg\ --vimgrep\ --hidden\ —glob '!.git'
411)     set grepprg=rg
412) endif
413) " Navigate quickfix list with ease
414) nnoremap <silent> [q :cprevious<CR>
415) nnoremap <silent> ]q :cnext<CR>
416) 
dblume Add DiffOrig from the vim h...

dblume authored 10 months ago

417) " From `:help :DiffOrig`.
dblume Make "set ruler!" change st...

dblume authored 10 months ago

418) if exists(":DiffOrig") != 2
419)   command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
dblume Add DiffOrig from the vim h...

dblume authored 10 months ago

420)     \ | diffthis | wincmd p | diffthis
dblume Make "set ruler!" change st...

dblume authored 10 months ago

421) endif
dblume Add DiffOrig from the vim h...

dblume authored 10 months ago

422) 
David Blume Add tip for using Roboto Mo...

David Blume authored 6 years ago

423) " I use Roboto Mono from https://github.com/powerline/fonts
David Blume Change from vim-powerline t...

David Blume authored 6 years ago

424) " On iTerm2, Preferences -> Profiles -> Text -> Font
David Blume Add tip for using Roboto Mo...

David Blume authored 6 years ago

425) " Cygwin64 won't let you choose it. Launch Cygwin64 as follows:
426) " C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -o Font="Roboto Mono for Powerline" -
David Blume Change from vim-powerline t...

David Blume authored 6 years ago

427) 
David Blume Remove NERDTree and use net...

David Blume authored 4 years ago

428) " Settings that make netrw more like NERDTree
429) let g:netrw_banner = 0
430) let g:netrw_liststyle = 3
David Blume Use netrw Vexplore to assur...

David Blume authored 3 years ago

431) let g:netrw_browse_split = 4
David Blume Remove NERDTree and use net...

David Blume authored 4 years ago

432) let g:netrw_altv = 1
David Blume Use netrw Vexplore to assur...

David Blume authored 3 years ago

433) " set g:netrw_winsize to negative for absolute width, positive for relative
434) let g:netrw_winsize = -36
435) " let g:netrw_winsize = 35
David Blume Remove NERDTree and use net...

David Blume authored 4 years ago

436) " sort is affecting only: directories on the top, files below
437) let g:netrw_sort_sequence = '[\/]$,*'
David Blume Change from vim-powerline t...

David Blume authored 6 years ago

438) 
dblume Added vim-rooter.

dblume authored 2 years ago

439) " Experimenting with vim-rooter
440) let g:rooter_patterns = ['.git', 'Makefile', 'builds/']
dblume Make vim-rooter manual.

dblume authored 2 years ago

441) let g:rooter_cd_cmd = 'lcd'
442) let g:rooter_manual_only = 1