├── Google_Dorks ├── LICENSE ├── README.md ├── generate.vim └── vimrc /Google_Dorks: -------------------------------------------------------------------------------- 1 | #Google Dorking: 2 | 3 | #-----Search for Subdomains-----# 4 | site:*.EXAMPLE.COM 5 | 6 | #-----Search for Nested Subdomains-----# 7 | site:*.*.*.EXAMPLE.COM 8 | 9 | #-----Publicly exposed documents-----# 10 | site:EXAMPLE.COM ext:doc | ext:docx | ext:odt | ext:rtf | ext:sxw | ext:psw | ext:ppt | ext:pptx | ext:pps | ext:csv 11 | 12 | #-----Directory Listing-----# 13 | site:EXAMPLE.COM intitle:index.of 14 | 15 | #-----Configuration Files-----# 16 | site:EXAMPLE.COM ext:xml | ext:conf | ext:cnf | ext:reg | ext:inf | ext:rdp | ext:cfg | ext:txt | ext:ora | ext:ini | ext:env 17 | 18 | #-----Database files exposed-----# 19 | site:EXAMPLE.COM ext:sql | ext:dbf | ext:mdb 20 | 21 | #-----Log files exposed-----# 22 | site:EXAMPLE.COM ext:log 23 | 24 | #-----Backup and old files-----# 25 | site:EXAMPLE.COM ext:bkf | ext:bkp | ext:bak | ext:old | ext:backup 26 | 27 | #-----Login pages-----# (Locating login pages is my favorite one) 28 | site:EXAMPLE.COM inurl:login | inurl:signin | intitle:Login | intitle:"sign in" | inurl:auth 29 | 30 | #-----SQL errors-----# 31 | site:EXAMPLE.COM intext:"sql syntax near" | intext:"syntax error has occurred" | intext:"incorrect syntax near" | intext:"unexpected end of SQL command" | intext:"Warning: mysql_connect()" | intext:"Warning: mysql_query()" | intext:"Warning: pg_connect()" 32 | 33 | #-----PHP errors / warnings-----# 34 | site:EXAMPLE.COM ext:php intitle:phpinfo "published by the PHP Group" 35 | 36 | #-----phpinfo()-----# 37 | site:EXAMPLE.COM ext:php intitle:phpinfo "published by the PHP Group" 38 | 39 | #-----Search Pastebin.com / pasting sites-----# 40 | site:pastebin.com | site:paste2.org | site:pastehtml.com | site:slexy.org | site:snipplr.com | site:snipt.net | site:textsnip.com | site:bitpaste.app | site:justpaste.it | site:heypasteit.com | site:hastebin.com | site:dpaste.org | site:dpaste.com | site:codepad.org | site:jsitor.com | site:codepen.io | site:jsfiddle.net | site:dotnetfiddle.net | site:phpfiddle.org | site:ide.geeksforgeeks.org | site:repl.it | site:ideone.com | site:paste.debian.net | site:paste.org | site:paste.org.ru | site:codebeautify.org | site:codeshare.io | site:trello.com "EXAMPLE.COM" 41 | 42 | #-----Search Github.com and Gitlab.com-----# 43 | site:github.com | site:gitlab.com "EXAMPLE.COM" 44 | 45 | #-----Search Stackoverflow.com-----# 46 | site:stackoverflow.com "EXAMPLE.COM" 47 | 48 | #-----Signup pages-----# 49 | site:EXAMPLE.COM inurl:signup | inurl:register | intitle:Signup 50 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Omar_Ahmed 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Thoughts 2 | Sharing Various Things 3 | 4 | Regarding Google Dorks: You can easily use bash or any other scripting language to generate the links for you, it should look something like the following: 5 | 6 | Searching for Login Pages: 7 | https://www.google.com/search?q=site:exmaple.com+inurl:login+|+inurl:signin+|+intitle:Login+|+intitle:"sign+in"+|+inurl:auth 8 | -------------------------------------------------------------------------------- /generate.vim: -------------------------------------------------------------------------------- 1 | " vim-bootstrap 2022-06-28 20:56:17 2 | 3 | "***************************************************************************** 4 | "" Vim-Plug core 5 | "***************************************************************************** 6 | let vimplug_exists=expand('~/.vim/autoload/plug.vim') 7 | if has('win32')&&!has('win64') 8 | let curl_exists=expand('C:\Windows\Sysnative\curl.exe') 9 | else 10 | let curl_exists=expand('curl') 11 | endif 12 | 13 | let g:vim_bootstrap_langs = "go,html,javascript,python" 14 | let g:vim_bootstrap_editor = "vim" " nvim or vim 15 | let g:vim_bootstrap_theme = "molokai" 16 | let g:vim_bootstrap_frams = "" 17 | 18 | if !filereadable(vimplug_exists) 19 | if !executable(curl_exists) 20 | echoerr "You have to install curl or first install vim-plug yourself!" 21 | execute "q!" 22 | endif 23 | echo "Installing Vim-Plug..." 24 | echo "" 25 | silent exec "!"curl_exists" -fLo " . shellescape(vimplug_exists) . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" 26 | let g:not_finish_vimplug = "yes" 27 | 28 | autocmd VimEnter * PlugInstall 29 | endif 30 | 31 | " Required: 32 | call plug#begin(expand('~/.vim/plugged')) 33 | 34 | "***************************************************************************** 35 | "" Plug install packages 36 | "***************************************************************************** 37 | Plug 'scrooloose/nerdtree' 38 | Plug 'jistr/vim-nerdtree-tabs' 39 | Plug 'tpope/vim-commentary' 40 | Plug 'tpope/vim-fugitive' 41 | Plug 'vim-airline/vim-airline' 42 | Plug 'vim-airline/vim-airline-themes' 43 | Plug 'airblade/vim-gitgutter' 44 | Plug 'vim-scripts/grep.vim' 45 | Plug 'vim-scripts/CSApprox' 46 | Plug 'Raimondi/delimitMate' 47 | Plug 'majutsushi/tagbar' 48 | Plug 'dense-analysis/ale' 49 | Plug 'Yggdroot/indentLine' 50 | Plug 'editor-bootstrap/vim-bootstrap-updater' 51 | Plug 'tpope/vim-rhubarb' " required by fugitive to :Gbrowse 52 | Plug 'tomasr/molokai' 53 | 54 | 55 | if isdirectory('/usr/local/opt/fzf') 56 | Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' 57 | else 58 | Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' } 59 | Plug 'junegunn/fzf.vim' 60 | endif 61 | let g:make = 'gmake' 62 | if exists('make') 63 | let g:make = 'make' 64 | endif 65 | Plug 'Shougo/vimproc.vim', {'do': g:make} 66 | 67 | "" Vim-Session 68 | Plug 'xolox/vim-misc' 69 | Plug 'xolox/vim-session' 70 | 71 | "" Snippets 72 | Plug 'SirVer/ultisnips' 73 | Plug 'honza/vim-snippets' 74 | 75 | "***************************************************************************** 76 | "" Custom bundles 77 | "***************************************************************************** 78 | 79 | " go 80 | "" Go Lang Bundle 81 | Plug 'fatih/vim-go', {'do': ':GoInstallBinaries'} 82 | 83 | 84 | " html 85 | "" HTML Bundle 86 | Plug 'hail2u/vim-css3-syntax' 87 | Plug 'gko/vim-coloresque' 88 | Plug 'tpope/vim-haml' 89 | Plug 'mattn/emmet-vim' 90 | 91 | 92 | " javascript 93 | "" Javascript Bundle 94 | Plug 'jelera/vim-javascript-syntax' 95 | 96 | 97 | " python 98 | "" Python Bundle 99 | Plug 'davidhalter/jedi-vim' 100 | Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'} 101 | 102 | 103 | "***************************************************************************** 104 | "***************************************************************************** 105 | 106 | "" Include user's extra bundle 107 | if filereadable(expand("~/.vimrc.local.bundles")) 108 | source ~/.vimrc.local.bundles 109 | endif 110 | 111 | call plug#end() 112 | 113 | " Required: 114 | filetype plugin indent on 115 | 116 | 117 | "***************************************************************************** 118 | "" Basic Setup 119 | "*****************************************************************************" 120 | "" Encoding 121 | set encoding=utf-8 122 | set fileencoding=utf-8 123 | set fileencodings=utf-8 124 | set ttyfast 125 | 126 | "" Fix backspace indent 127 | set backspace=indent,eol,start 128 | 129 | "" Tabs. May be overridden by autocmd rules 130 | set tabstop=4 131 | set softtabstop=0 132 | set shiftwidth=4 133 | set expandtab 134 | 135 | "" Map leader to , 136 | let mapleader=',' 137 | 138 | "" Enable hidden buffers 139 | set hidden 140 | 141 | "" Searching 142 | set hlsearch 143 | set incsearch 144 | set ignorecase 145 | set smartcase 146 | 147 | set fileformats=unix,dos,mac 148 | 149 | if exists('$SHELL') 150 | set shell=$SHELL 151 | else 152 | set shell=/bin/sh 153 | endif 154 | 155 | " session management 156 | let g:session_directory = "~/.vim/session" 157 | let g:session_autoload = "no" 158 | let g:session_autosave = "no" 159 | let g:session_command_aliases = 1 160 | 161 | "***************************************************************************** 162 | "" Visual Settings 163 | "***************************************************************************** 164 | syntax on 165 | set ruler 166 | set number 167 | 168 | let no_buffers_menu=1 169 | colorscheme molokai 170 | 171 | 172 | " Better command line completion 173 | set wildmenu 174 | 175 | " mouse support 176 | set mouse=a 177 | 178 | set mousemodel=popup 179 | set t_Co=256 180 | set guioptions=egmrti 181 | set gfn=Monospace\ 10 182 | 183 | if has("gui_running") 184 | if has("gui_mac") || has("gui_macvim") 185 | set guifont=Menlo:h12 186 | set transparency=7 187 | endif 188 | else 189 | let g:CSApprox_loaded = 1 190 | 191 | " IndentLine 192 | let g:indentLine_enabled = 1 193 | let g:indentLine_concealcursor = '' 194 | let g:indentLine_char = '┆' 195 | let g:indentLine_faster = 1 196 | 197 | 198 | if $COLORTERM == 'gnome-terminal' 199 | set term=gnome-256color 200 | else 201 | if $TERM == 'xterm' 202 | set term=xterm-256color 203 | endif 204 | endif 205 | 206 | endif 207 | 208 | 209 | if &term =~ '256color' 210 | set t_ut= 211 | endif 212 | 213 | 214 | "" Disable the blinking cursor. 215 | set gcr=a:blinkon0 216 | 217 | set scrolloff=3 218 | 219 | 220 | "" Status bar 221 | set laststatus=2 222 | 223 | "" Use modeline overrides 224 | set modeline 225 | set modelines=10 226 | 227 | set title 228 | set titleold="Terminal" 229 | set titlestring=%F 230 | 231 | set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\ 232 | 233 | " Search mappings: These will make it so that going to the next one in a 234 | " search will center on the line it's found in. 235 | nnoremap n nzzzv 236 | nnoremap N Nzzzv 237 | 238 | if exists("*fugitive#statusline") 239 | set statusline+=%{fugitive#statusline()} 240 | endif 241 | 242 | " vim-airline 243 | let g:airline_theme = 'powerlineish' 244 | let g:airline#extensions#branch#enabled = 1 245 | let g:airline#extensions#ale#enabled = 1 246 | let g:airline#extensions#tabline#enabled = 1 247 | let g:airline#extensions#tagbar#enabled = 1 248 | let g:airline_skip_empty_sections = 1 249 | 250 | "***************************************************************************** 251 | "" Abbreviations 252 | "***************************************************************************** 253 | "" no one is really happy until you have this shortcuts 254 | cnoreabbrev W! w! 255 | cnoreabbrev Q! q! 256 | cnoreabbrev Qall! qall! 257 | cnoreabbrev Wq wq 258 | cnoreabbrev Wa wa 259 | cnoreabbrev wQ wq 260 | cnoreabbrev WQ wq 261 | cnoreabbrev W w 262 | cnoreabbrev Q q 263 | cnoreabbrev Qall qall 264 | 265 | "" NERDTree configuration 266 | let g:NERDTreeChDirMode=2 267 | let g:NERDTreeIgnore=['node_modules','\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__'] 268 | let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$'] 269 | let g:NERDTreeShowBookmarks=1 270 | let g:nerdtree_tabs_focus_on_files=1 271 | let g:NERDTreeMapOpenInTabSilent = '' 272 | let g:NERDTreeWinSize = 50 273 | set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite,*node_modules/ 274 | nnoremap :NERDTreeFind 275 | nnoremap :NERDTreeToggle 276 | 277 | " grep.vim 278 | nnoremap f :Rgrep 279 | let Grep_Default_Options = '-IR' 280 | let Grep_Skip_Files = '*.log *.db' 281 | let Grep_Skip_Dirs = '.git node_modules' 282 | 283 | " terminal emulation 284 | nnoremap sh :terminal 285 | 286 | 287 | "***************************************************************************** 288 | "" Commands 289 | "***************************************************************************** 290 | " remove trailing whitespaces 291 | command! FixWhitespace :%s/\s\+$//e 292 | 293 | "***************************************************************************** 294 | "" Functions 295 | "***************************************************************************** 296 | if !exists('*s:setupWrapping') 297 | function s:setupWrapping() 298 | set wrap 299 | set wm=2 300 | set textwidth=79 301 | endfunction 302 | endif 303 | 304 | "***************************************************************************** 305 | "" Autocmd Rules 306 | "***************************************************************************** 307 | "" The PC is fast enough, do syntax highlight syncing from start unless 200 lines 308 | augroup vimrc-sync-fromstart 309 | autocmd! 310 | autocmd BufEnter * :syntax sync maxlines=200 311 | augroup END 312 | 313 | "" Remember cursor position 314 | augroup vimrc-remember-cursor-position 315 | autocmd! 316 | autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif 317 | augroup END 318 | 319 | "" txt 320 | augroup vimrc-wrapping 321 | autocmd! 322 | autocmd BufRead,BufNewFile *.txt call s:setupWrapping() 323 | augroup END 324 | 325 | "" make/cmake 326 | augroup vimrc-make-cmake 327 | autocmd! 328 | autocmd FileType make setlocal noexpandtab 329 | autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake 330 | augroup END 331 | 332 | set autoread 333 | 334 | "***************************************************************************** 335 | "" Mappings 336 | "***************************************************************************** 337 | 338 | "" Split 339 | noremap h :split 340 | noremap v :vsplit 341 | 342 | "" Git 343 | noremap ga :Gwrite 344 | noremap gc :Git commit --verbose 345 | noremap gsh :Git push 346 | noremap gll :Git pull 347 | noremap gs :Git 348 | noremap gb :Git blame 349 | noremap gd :Gvdiffsplit 350 | noremap gr :GRemove 351 | 352 | " session management 353 | nnoremap so :OpenSession 354 | nnoremap ss :SaveSession 355 | nnoremap sd :DeleteSession 356 | nnoremap sc :CloseSession 357 | 358 | "" Tabs 359 | nnoremap gt 360 | nnoremap gT 361 | nnoremap :tabnew 362 | 363 | "" Set working directory 364 | nnoremap . :lcd %:p:h 365 | 366 | "" Opens an edit command with the path of the currently edited file filled in 367 | noremap e :e =expand("%:p:h") . "/" 368 | 369 | "" Opens a tab edit command with the path of the currently edited file filled 370 | noremap te :tabe =expand("%:p:h") . "/" 371 | 372 | "" fzf.vim 373 | set wildmode=list:longest,list:full 374 | set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__ 375 | let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null" 376 | 377 | " The Silver Searcher 378 | if executable('ag') 379 | let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""' 380 | set grepprg=ag\ --nogroup\ --nocolor 381 | endif 382 | 383 | " ripgrep 384 | if executable('rg') 385 | let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"' 386 | set grepprg=rg\ --vimgrep 387 | command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape().'| tr -d "\017"', 1, 0) 388 | endif 389 | 390 | cnoremap =expand("%:p:h") . "/" 391 | nnoremap b :Buffers 392 | nnoremap e :FZF -m 393 | "Recovery commands from history through FZF 394 | nmap y :History: 395 | 396 | " snippets 397 | let g:UltiSnipsExpandTrigger="" 398 | let g:UltiSnipsJumpForwardTrigger="" 399 | let g:UltiSnipsJumpBackwardTrigger="" 400 | let g:UltiSnipsEditSplit="vertical" 401 | 402 | " ale 403 | let g:ale_linters = {} 404 | 405 | " Tagbar 406 | nmap :TagbarToggle 407 | let g:tagbar_autofocus = 1 408 | 409 | " Disable visualbell 410 | set noerrorbells visualbell t_vb= 411 | if has('autocmd') 412 | autocmd GUIEnter * set visualbell t_vb= 413 | endif 414 | 415 | "" Copy/Paste/Cut 416 | if has('unnamedplus') 417 | set clipboard=unnamed,unnamedplus 418 | endif 419 | 420 | noremap YY "+y 421 | noremap p "+gP 422 | noremap XX "+x 423 | 424 | if has('macunix') 425 | " pbcopy for OSX copy/paste 426 | vmap :!pbcopy 427 | vmap :w !pbcopy 428 | endif 429 | 430 | "" Buffer nav 431 | noremap z :bp 432 | noremap q :bp 433 | noremap x :bn 434 | noremap w :bn 435 | 436 | "" Close buffer 437 | noremap c :bd 438 | 439 | "" Clean search (highlight) 440 | nnoremap :noh 441 | 442 | "" Switching windows 443 | noremap j 444 | noremap k 445 | noremap l 446 | noremap h 447 | 448 | "" Vmap for maintain Visual Mode after shifting > and < 449 | vmap < >gv 451 | 452 | "" Move visual block 453 | vnoremap J :m '>+1gv=gv 454 | vnoremap K :m '<-2gv=gv 455 | 456 | "" Open current line on GitHub 457 | nnoremap o :.Gbrowse 458 | 459 | "***************************************************************************** 460 | "" Custom configs 461 | "***************************************************************************** 462 | 463 | " go 464 | " vim-go 465 | " run :GoBuild or :GoTestCompile based on the go file 466 | function! s:build_go_files() 467 | let l:file = expand('%') 468 | if l:file =~# '^\f\+_test\.go$' 469 | call go#test#Test(0, 1) 470 | elseif l:file =~# '^\f\+\.go$' 471 | call go#cmd#Build(0) 472 | endif 473 | endfunction 474 | 475 | let g:go_list_type = "quickfix" 476 | let g:go_fmt_command = "goimports" 477 | let g:go_fmt_fail_silently = 1 478 | 479 | let g:go_highlight_types = 1 480 | let g:go_highlight_fields = 1 481 | let g:go_highlight_functions = 1 482 | let g:go_highlight_methods = 1 483 | let g:go_highlight_operators = 1 484 | let g:go_highlight_build_constraints = 1 485 | let g:go_highlight_structs = 1 486 | let g:go_highlight_generate_tags = 1 487 | let g:go_highlight_space_tab_error = 0 488 | let g:go_highlight_array_whitespace_error = 0 489 | let g:go_highlight_trailing_whitespace_error = 0 490 | let g:go_highlight_extra_types = 1 491 | 492 | autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 493 | 494 | augroup completion_preview_close 495 | autocmd! 496 | if v:version > 703 || v:version == 703 && has('patch598') 497 | autocmd CompleteDone * if !&previewwindow && &completeopt =~ 'preview' | silent! pclose | endif 498 | endif 499 | augroup END 500 | 501 | augroup go 502 | 503 | au! 504 | au Filetype go command! -bang A call go#alternate#Switch(0, 'edit') 505 | au Filetype go command! -bang AV call go#alternate#Switch(0, 'vsplit') 506 | au Filetype go command! -bang AS call go#alternate#Switch(0, 'split') 507 | au Filetype go command! -bang AT call go#alternate#Switch(0, 'tabe') 508 | 509 | au FileType go nmap dd (go-def-vertical) 510 | au FileType go nmap dv (go-doc-vertical) 511 | au FileType go nmap db (go-doc-browser) 512 | 513 | au FileType go nmap r (go-run) 514 | au FileType go nmap t (go-test) 515 | au FileType go nmap gt (go-coverage-toggle) 516 | au FileType go nmap i (go-info) 517 | au FileType go nmap l (go-metalinter) 518 | au FileType go nmap :GoDecls 519 | au FileType go nmap dr :GoDeclsDir 520 | au FileType go imap :GoDecls 521 | au FileType go imap dr :GoDeclsDir 522 | au FileType go nmap rb :call build_go_files() 523 | 524 | augroup END 525 | 526 | " ale 527 | :call extend(g:ale_linters, { 528 | \"go": ['golint', 'go vet'], }) 529 | 530 | 531 | " html 532 | " for html files, 2 spaces 533 | autocmd Filetype html setlocal ts=2 sw=2 expandtab 534 | 535 | 536 | " javascript 537 | let g:javascript_enable_domhtmlcss = 1 538 | 539 | " vim-javascript 540 | augroup vimrc-javascript 541 | autocmd! 542 | autocmd FileType javascript setl tabstop=4|setl shiftwidth=4|setl expandtab softtabstop=4 543 | augroup END 544 | 545 | 546 | " python 547 | " vim-python 548 | augroup vimrc-python 549 | autocmd! 550 | autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8 colorcolumn=79 551 | \ formatoptions+=croq softtabstop=4 552 | \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with 553 | augroup END 554 | 555 | " jedi-vim 556 | let g:jedi#popup_on_dot = 0 557 | let g:jedi#goto_assignments_command = "g" 558 | let g:jedi#goto_definitions_command = "d" 559 | let g:jedi#documentation_command = "K" 560 | let g:jedi#usages_command = "n" 561 | let g:jedi#rename_command = "r" 562 | let g:jedi#show_call_signatures = "0" 563 | let g:jedi#completions_command = "" 564 | let g:jedi#smart_auto_mappings = 0 565 | 566 | " ale 567 | :call extend(g:ale_linters, { 568 | \'python': ['flake8'], }) 569 | 570 | " vim-airline 571 | let g:airline#extensions#virtualenv#enabled = 1 572 | 573 | " Syntax highlight 574 | let python_highlight_all = 1 575 | 576 | 577 | 578 | "***************************************************************************** 579 | "***************************************************************************** 580 | 581 | "" Include user's local vim config 582 | if filereadable(expand("~/.vimrc.local")) 583 | source ~/.vimrc.local 584 | endif 585 | 586 | "***************************************************************************** 587 | "" Convenience variables 588 | "***************************************************************************** 589 | 590 | " vim-airline 591 | if !exists('g:airline_symbols') 592 | let g:airline_symbols = {} 593 | endif 594 | 595 | if !exists('g:airline_powerline_fonts') 596 | let g:airline#extensions#tabline#left_sep = ' ' 597 | let g:airline#extensions#tabline#left_alt_sep = '|' 598 | let g:airline_left_sep = '▶' 599 | let g:airline_left_alt_sep = '»' 600 | let g:airline_right_sep = '◀' 601 | let g:airline_right_alt_sep = '«' 602 | let g:airline#extensions#branch#prefix = '⤴' "➔, ➥, ⎇ 603 | let g:airline#extensions#readonly#symbol = '⊘' 604 | let g:airline#extensions#linecolumn#prefix = '¶' 605 | let g:airline#extensions#paste#symbol = 'ρ' 606 | let g:airline_symbols.linenr = '␊' 607 | let g:airline_symbols.branch = '⎇' 608 | let g:airline_symbols.paste = 'ρ' 609 | let g:airline_symbols.paste = 'Þ' 610 | let g:airline_symbols.paste = '∥' 611 | let g:airline_symbols.whitespace = 'Ξ' 612 | else 613 | let g:airline#extensions#tabline#left_sep = '' 614 | let g:airline#extensions#tabline#left_alt_sep = '' 615 | 616 | " powerline symbols 617 | let g:airline_left_sep = '' 618 | let g:airline_left_alt_sep = '' 619 | let g:airline_right_sep = '' 620 | let g:airline_right_alt_sep = '' 621 | let g:airline_symbols.branch = '' 622 | let g:airline_symbols.readonly = '' 623 | let g:airline_symbols.linenr = '' 624 | endif 625 | -------------------------------------------------------------------------------- /vimrc: -------------------------------------------------------------------------------- 1 | " vim-bootstrap 2022-06-28 20:51:05 2 | 3 | "***************************************************************************** 4 | "" Vim-Plug core 5 | "***************************************************************************** 6 | let vimplug_exists=expand('~/.config/nvim/autoload/plug.vim') 7 | if has('win32')&&!has('win64') 8 | let curl_exists=expand('C:\Windows\Sysnative\curl.exe') 9 | else 10 | let curl_exists=expand('curl') 11 | endif 12 | 13 | let g:vim_bootstrap_langs = "go,html,javascript,lua,python" 14 | let g:vim_bootstrap_editor = "nvim" " nvim or vim 15 | let g:vim_bootstrap_theme = "molokai" 16 | let g:vim_bootstrap_frams = "" 17 | 18 | if !filereadable(vimplug_exists) 19 | if !executable(curl_exists) 20 | echoerr "You have to install curl or first install vim-plug yourself!" 21 | execute "q!" 22 | endif 23 | echo "Installing Vim-Plug..." 24 | echo "" 25 | silent exec "!"curl_exists" -fLo " . shellescape(vimplug_exists) . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" 26 | let g:not_finish_vimplug = "yes" 27 | 28 | autocmd VimEnter * PlugInstall 29 | endif 30 | 31 | " Required: 32 | call plug#begin(expand('~/.config/nvim/plugged')) 33 | 34 | "***************************************************************************** 35 | "" Plug install packages 36 | "***************************************************************************** 37 | Plug 'scrooloose/nerdtree' 38 | Plug 'jistr/vim-nerdtree-tabs' 39 | Plug 'tpope/vim-commentary' 40 | Plug 'tpope/vim-fugitive' 41 | Plug 'vim-airline/vim-airline' 42 | Plug 'vim-airline/vim-airline-themes' 43 | Plug 'airblade/vim-gitgutter' 44 | Plug 'vim-scripts/grep.vim' 45 | Plug 'vim-scripts/CSApprox' 46 | Plug 'Raimondi/delimitMate' 47 | Plug 'majutsushi/tagbar' 48 | Plug 'dense-analysis/ale' 49 | Plug 'Yggdroot/indentLine' 50 | Plug 'editor-bootstrap/vim-bootstrap-updater' 51 | Plug 'tpope/vim-rhubarb' " required by fugitive to :Gbrowse 52 | Plug 'tomasr/molokai' 53 | 54 | 55 | if isdirectory('/usr/local/opt/fzf') 56 | Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' 57 | else 58 | Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' } 59 | Plug 'junegunn/fzf.vim' 60 | endif 61 | let g:make = 'gmake' 62 | if exists('make') 63 | let g:make = 'make' 64 | endif 65 | Plug 'Shougo/vimproc.vim', {'do': g:make} 66 | 67 | "" Vim-Session 68 | Plug 'xolox/vim-misc' 69 | Plug 'xolox/vim-session' 70 | 71 | "" Snippets 72 | Plug 'SirVer/ultisnips' 73 | Plug 'honza/vim-snippets' 74 | 75 | "***************************************************************************** 76 | "" Custom bundles 77 | "***************************************************************************** 78 | 79 | " go 80 | "" Go Lang Bundle 81 | Plug 'fatih/vim-go', {'do': ':GoInstallBinaries'} 82 | 83 | 84 | " html 85 | "" HTML Bundle 86 | Plug 'hail2u/vim-css3-syntax' 87 | Plug 'gko/vim-coloresque' 88 | Plug 'tpope/vim-haml' 89 | Plug 'mattn/emmet-vim' 90 | 91 | 92 | " javascript 93 | "" Javascript Bundle 94 | Plug 'jelera/vim-javascript-syntax' 95 | 96 | 97 | " lua 98 | "" Lua Bundle 99 | Plug 'xolox/vim-lua-ftplugin' 100 | Plug 'xolox/vim-lua-inspect' 101 | 102 | 103 | " python 104 | "" Python Bundle 105 | Plug 'davidhalter/jedi-vim' 106 | Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'} 107 | 108 | 109 | "***************************************************************************** 110 | "***************************************************************************** 111 | 112 | "" Include user's extra bundle 113 | if filereadable(expand("~/.config/nvim/local_bundles.vim")) 114 | source ~/.config/nvim/local_bundles.vim 115 | endif 116 | 117 | call plug#end() 118 | 119 | " Required: 120 | filetype plugin indent on 121 | 122 | 123 | "***************************************************************************** 124 | "" Basic Setup 125 | "*****************************************************************************" 126 | "" Encoding 127 | set encoding=utf-8 128 | set fileencoding=utf-8 129 | set fileencodings=utf-8 130 | 131 | 132 | "" Fix backspace indent 133 | set backspace=indent,eol,start 134 | 135 | "" Tabs. May be overridden by autocmd rules 136 | set tabstop=4 137 | set softtabstop=0 138 | set shiftwidth=4 139 | set expandtab 140 | 141 | "" Map leader to , 142 | let mapleader=',' 143 | 144 | "" Enable hidden buffers 145 | set hidden 146 | 147 | "" Searching 148 | set hlsearch 149 | set incsearch 150 | set ignorecase 151 | set smartcase 152 | 153 | set fileformats=unix,dos,mac 154 | 155 | if exists('$SHELL') 156 | set shell=$SHELL 157 | else 158 | set shell=/bin/sh 159 | endif 160 | 161 | " session management 162 | let g:session_directory = "~/.config/nvim/session" 163 | let g:session_autoload = "no" 164 | let g:session_autosave = "no" 165 | let g:session_command_aliases = 1 166 | 167 | "***************************************************************************** 168 | "" Visual Settings 169 | "***************************************************************************** 170 | syntax on 171 | set ruler 172 | set number 173 | 174 | let no_buffers_menu=1 175 | colorscheme molokai 176 | 177 | 178 | " Better command line completion 179 | set wildmenu 180 | 181 | " mouse support 182 | set mouse=a 183 | 184 | set mousemodel=popup 185 | set t_Co=256 186 | set guioptions=egmrti 187 | set gfn=Monospace\ 10 188 | 189 | if has("gui_running") 190 | if has("gui_mac") || has("gui_macvim") 191 | set guifont=Menlo:h12 192 | set transparency=7 193 | endif 194 | else 195 | let g:CSApprox_loaded = 1 196 | 197 | " IndentLine 198 | let g:indentLine_enabled = 1 199 | let g:indentLine_concealcursor = '' 200 | let g:indentLine_char = '┆' 201 | let g:indentLine_faster = 1 202 | 203 | 204 | endif 205 | 206 | 207 | 208 | "" Disable the blinking cursor. 209 | set gcr=a:blinkon0 210 | 211 | au TermEnter * setlocal scrolloff=0 212 | au TermLeave * setlocal scrolloff=3 213 | 214 | 215 | "" Status bar 216 | set laststatus=2 217 | 218 | "" Use modeline overrides 219 | set modeline 220 | set modelines=10 221 | 222 | set title 223 | set titleold="Terminal" 224 | set titlestring=%F 225 | 226 | set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\ 227 | 228 | " Search mappings: These will make it so that going to the next one in a 229 | " search will center on the line it's found in. 230 | nnoremap n nzzzv 231 | nnoremap N Nzzzv 232 | 233 | if exists("*fugitive#statusline") 234 | set statusline+=%{fugitive#statusline()} 235 | endif 236 | 237 | " vim-airline 238 | let g:airline_theme = 'powerlineish' 239 | let g:airline#extensions#branch#enabled = 1 240 | let g:airline#extensions#ale#enabled = 1 241 | let g:airline#extensions#tabline#enabled = 1 242 | let g:airline#extensions#tagbar#enabled = 1 243 | let g:airline_skip_empty_sections = 1 244 | 245 | "***************************************************************************** 246 | "" Abbreviations 247 | "***************************************************************************** 248 | "" no one is really happy until you have this shortcuts 249 | cnoreabbrev W! w! 250 | cnoreabbrev Q! q! 251 | cnoreabbrev Qall! qall! 252 | cnoreabbrev Wq wq 253 | cnoreabbrev Wa wa 254 | cnoreabbrev wQ wq 255 | cnoreabbrev WQ wq 256 | cnoreabbrev W w 257 | cnoreabbrev Q q 258 | cnoreabbrev Qall qall 259 | 260 | "" NERDTree configuration 261 | let g:NERDTreeChDirMode=2 262 | let g:NERDTreeIgnore=['node_modules','\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__'] 263 | let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$'] 264 | let g:NERDTreeShowBookmarks=1 265 | let g:nerdtree_tabs_focus_on_files=1 266 | let g:NERDTreeMapOpenInTabSilent = '' 267 | let g:NERDTreeWinSize = 50 268 | set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite,*node_modules/ 269 | nnoremap :NERDTreeFind 270 | nnoremap :NERDTreeToggle 271 | 272 | " grep.vim 273 | nnoremap f :Rgrep 274 | let Grep_Default_Options = '-IR' 275 | let Grep_Skip_Files = '*.log *.db' 276 | let Grep_Skip_Dirs = '.git node_modules' 277 | 278 | " terminal emulation 279 | nnoremap sh :terminal 280 | 281 | 282 | "***************************************************************************** 283 | "" Commands 284 | "***************************************************************************** 285 | " remove trailing whitespaces 286 | command! FixWhitespace :%s/\s\+$//e 287 | 288 | "***************************************************************************** 289 | "" Functions 290 | "***************************************************************************** 291 | if !exists('*s:setupWrapping') 292 | function s:setupWrapping() 293 | set wrap 294 | set wm=2 295 | set textwidth=79 296 | endfunction 297 | endif 298 | 299 | "***************************************************************************** 300 | "" Autocmd Rules 301 | "***************************************************************************** 302 | "" The PC is fast enough, do syntax highlight syncing from start unless 200 lines 303 | augroup vimrc-sync-fromstart 304 | autocmd! 305 | autocmd BufEnter * :syntax sync maxlines=200 306 | augroup END 307 | 308 | "" Remember cursor position 309 | augroup vimrc-remember-cursor-position 310 | autocmd! 311 | autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif 312 | augroup END 313 | 314 | "" txt 315 | augroup vimrc-wrapping 316 | autocmd! 317 | autocmd BufRead,BufNewFile *.txt call s:setupWrapping() 318 | augroup END 319 | 320 | "" make/cmake 321 | augroup vimrc-make-cmake 322 | autocmd! 323 | autocmd FileType make setlocal noexpandtab 324 | autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake 325 | augroup END 326 | 327 | set autoread 328 | 329 | "***************************************************************************** 330 | "" Mappings 331 | "***************************************************************************** 332 | 333 | "" Split 334 | noremap h :split 335 | noremap v :vsplit 336 | 337 | "" Git 338 | noremap ga :Gwrite 339 | noremap gc :Git commit --verbose 340 | noremap gsh :Git push 341 | noremap gll :Git pull 342 | noremap gs :Git 343 | noremap gb :Git blame 344 | noremap gd :Gvdiffsplit 345 | noremap gr :GRemove 346 | 347 | " session management 348 | nnoremap so :OpenSession 349 | nnoremap ss :SaveSession 350 | nnoremap sd :DeleteSession 351 | nnoremap sc :CloseSession 352 | 353 | "" Tabs 354 | nnoremap gt 355 | nnoremap gT 356 | nnoremap :tabnew 357 | 358 | "" Set working directory 359 | nnoremap . :lcd %:p:h 360 | 361 | "" Opens an edit command with the path of the currently edited file filled in 362 | noremap e :e =expand("%:p:h") . "/" 363 | 364 | "" Opens a tab edit command with the path of the currently edited file filled 365 | noremap te :tabe =expand("%:p:h") . "/" 366 | 367 | "" fzf.vim 368 | set wildmode=list:longest,list:full 369 | set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__ 370 | let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null" 371 | 372 | " The Silver Searcher 373 | if executable('ag') 374 | let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""' 375 | set grepprg=ag\ --nogroup\ --nocolor 376 | endif 377 | 378 | " ripgrep 379 | if executable('rg') 380 | let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"' 381 | set grepprg=rg\ --vimgrep 382 | command! -bang -nargs=* Find call fzf#vim#grep('rg --column --line-number --no-heading --fixed-strings --ignore-case --hidden --follow --glob "!.git/*" --color "always" '.shellescape().'| tr -d "\017"', 1, 0) 383 | endif 384 | 385 | cnoremap =expand("%:p:h") . "/" 386 | nnoremap b :Buffers 387 | nnoremap e :FZF -m 388 | "Recovery commands from history through FZF 389 | nmap y :History: 390 | 391 | " snippets 392 | let g:UltiSnipsExpandTrigger="" 393 | let g:UltiSnipsJumpForwardTrigger="" 394 | let g:UltiSnipsJumpBackwardTrigger="" 395 | let g:UltiSnipsEditSplit="vertical" 396 | 397 | " ale 398 | let g:ale_linters = {} 399 | 400 | " Tagbar 401 | nmap :TagbarToggle 402 | let g:tagbar_autofocus = 1 403 | 404 | " Disable visualbell 405 | set noerrorbells visualbell t_vb= 406 | if has('autocmd') 407 | autocmd GUIEnter * set visualbell t_vb= 408 | endif 409 | 410 | "" Copy/Paste/Cut 411 | if has('unnamedplus') 412 | set clipboard=unnamed,unnamedplus 413 | endif 414 | 415 | noremap YY "+y 416 | noremap p "+gP 417 | noremap XX "+x 418 | 419 | if has('macunix') 420 | " pbcopy for OSX copy/paste 421 | vmap :!pbcopy 422 | vmap :w !pbcopy 423 | endif 424 | 425 | "" Buffer nav 426 | noremap z :bp 427 | noremap q :bp 428 | noremap x :bn 429 | noremap w :bn 430 | 431 | "" Close buffer 432 | noremap c :bd 433 | 434 | "" Clean search (highlight) 435 | nnoremap :noh 436 | 437 | "" Switching windows 438 | noremap j 439 | noremap k 440 | noremap l 441 | noremap h 442 | 443 | "" Vmap for maintain Visual Mode after shifting > and < 444 | vmap < >gv 446 | 447 | "" Move visual block 448 | vnoremap J :m '>+1gv=gv 449 | vnoremap K :m '<-2gv=gv 450 | 451 | "" Open current line on GitHub 452 | nnoremap o :.Gbrowse 453 | 454 | "***************************************************************************** 455 | "" Custom configs 456 | "***************************************************************************** 457 | 458 | " go 459 | " vim-go 460 | " run :GoBuild or :GoTestCompile based on the go file 461 | function! s:build_go_files() 462 | let l:file = expand('%') 463 | if l:file =~# '^\f\+_test\.go$' 464 | call go#test#Test(0, 1) 465 | elseif l:file =~# '^\f\+\.go$' 466 | call go#cmd#Build(0) 467 | endif 468 | endfunction 469 | 470 | let g:go_list_type = "quickfix" 471 | let g:go_fmt_command = "goimports" 472 | let g:go_fmt_fail_silently = 1 473 | 474 | let g:go_highlight_types = 1 475 | let g:go_highlight_fields = 1 476 | let g:go_highlight_functions = 1 477 | let g:go_highlight_methods = 1 478 | let g:go_highlight_operators = 1 479 | let g:go_highlight_build_constraints = 1 480 | let g:go_highlight_structs = 1 481 | let g:go_highlight_generate_tags = 1 482 | let g:go_highlight_space_tab_error = 0 483 | let g:go_highlight_array_whitespace_error = 0 484 | let g:go_highlight_trailing_whitespace_error = 0 485 | let g:go_highlight_extra_types = 1 486 | 487 | autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 488 | 489 | augroup completion_preview_close 490 | autocmd! 491 | if v:version > 703 || v:version == 703 && has('patch598') 492 | autocmd CompleteDone * if !&previewwindow && &completeopt =~ 'preview' | silent! pclose | endif 493 | endif 494 | augroup END 495 | 496 | augroup go 497 | 498 | au! 499 | au Filetype go command! -bang A call go#alternate#Switch(0, 'edit') 500 | au Filetype go command! -bang AV call go#alternate#Switch(0, 'vsplit') 501 | au Filetype go command! -bang AS call go#alternate#Switch(0, 'split') 502 | au Filetype go command! -bang AT call go#alternate#Switch(0, 'tabe') 503 | 504 | au FileType go nmap dd (go-def-vertical) 505 | au FileType go nmap dv (go-doc-vertical) 506 | au FileType go nmap db (go-doc-browser) 507 | 508 | au FileType go nmap r (go-run) 509 | au FileType go nmap t (go-test) 510 | au FileType go nmap gt (go-coverage-toggle) 511 | au FileType go nmap i (go-info) 512 | au FileType go nmap l (go-metalinter) 513 | au FileType go nmap :GoDecls 514 | au FileType go nmap dr :GoDeclsDir 515 | au FileType go imap :GoDecls 516 | au FileType go imap dr :GoDeclsDir 517 | au FileType go nmap rb :call build_go_files() 518 | 519 | augroup END 520 | 521 | " ale 522 | :call extend(g:ale_linters, { 523 | \"go": ['golint', 'go vet'], }) 524 | 525 | 526 | " html 527 | " for html files, 2 spaces 528 | autocmd Filetype html setlocal ts=2 sw=2 expandtab 529 | 530 | 531 | " javascript 532 | let g:javascript_enable_domhtmlcss = 1 533 | 534 | " vim-javascript 535 | augroup vimrc-javascript 536 | autocmd! 537 | autocmd FileType javascript setl tabstop=4|setl shiftwidth=4|setl expandtab softtabstop=4 538 | augroup END 539 | 540 | 541 | " lua 542 | 543 | 544 | " python 545 | " vim-python 546 | augroup vimrc-python 547 | autocmd! 548 | autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8 colorcolumn=79 549 | \ formatoptions+=croq softtabstop=4 550 | \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with 551 | augroup END 552 | 553 | " jedi-vim 554 | let g:jedi#popup_on_dot = 0 555 | let g:jedi#goto_assignments_command = "g" 556 | let g:jedi#goto_definitions_command = "d" 557 | let g:jedi#documentation_command = "K" 558 | let g:jedi#usages_command = "n" 559 | let g:jedi#rename_command = "r" 560 | let g:jedi#show_call_signatures = "0" 561 | let g:jedi#completions_command = "" 562 | let g:jedi#smart_auto_mappings = 0 563 | 564 | " ale 565 | :call extend(g:ale_linters, { 566 | \'python': ['flake8'], }) 567 | 568 | " vim-airline 569 | let g:airline#extensions#virtualenv#enabled = 1 570 | 571 | " Syntax highlight 572 | let python_highlight_all = 1 573 | 574 | 575 | 576 | "***************************************************************************** 577 | "***************************************************************************** 578 | 579 | "" Include user's local vim config 580 | if filereadable(expand("~/.config/nvim/local_init.vim")) 581 | source ~/.config/nvim/local_init.vim 582 | endif 583 | 584 | "***************************************************************************** 585 | "" Convenience variables 586 | "***************************************************************************** 587 | 588 | " vim-airline 589 | if !exists('g:airline_symbols') 590 | let g:airline_symbols = {} 591 | endif 592 | 593 | if !exists('g:airline_powerline_fonts') 594 | let g:airline#extensions#tabline#left_sep = ' ' 595 | let g:airline#extensions#tabline#left_alt_sep = '|' 596 | let g:airline_left_sep = '▶' 597 | let g:airline_left_alt_sep = '»' 598 | let g:airline_right_sep = '◀' 599 | let g:airline_right_alt_sep = '«' 600 | let g:airline#extensions#branch#prefix = '⤴' "➔, ➥, ⎇ 601 | let g:airline#extensions#readonly#symbol = '⊘' 602 | let g:airline#extensions#linecolumn#prefix = '¶' 603 | let g:airline#extensions#paste#symbol = 'ρ' 604 | let g:airline_symbols.linenr = '␊' 605 | let g:airline_symbols.branch = '⎇' 606 | let g:airline_symbols.paste = 'ρ' 607 | let g:airline_symbols.paste = 'Þ' 608 | let g:airline_symbols.paste = '∥' 609 | let g:airline_symbols.whitespace = 'Ξ' 610 | else 611 | let g:airline#extensions#tabline#left_sep = '' 612 | let g:airline#extensions#tabline#left_alt_sep = '' 613 | 614 | " powerline symbols 615 | let g:airline_left_sep = '' 616 | let g:airline_left_alt_sep = '' 617 | let g:airline_right_sep = '' 618 | let g:airline_right_alt_sep = '' 619 | let g:airline_symbols.branch = '' 620 | let g:airline_symbols.readonly = '' 621 | let g:airline_symbols.linenr = '' 622 | endif 623 | --------------------------------------------------------------------------------