───────┬────────────────────────────────────────────────────────────────────────
       File: /home/mitch/.vimrc
───────┼────────────────────────────────────────────────────────────────────────
   1    " Description: My setting file for vim
   2    " Author.....: Mitchell Johnston
   3    " Updated....: Thu 27 Feb 2025 11:20:08 AM CST
   4    " Updated....: Wed 14 May 2025 07:02:45 AM CDT
   5    " Reference
   6    " =========
   7    "
   8    " Macros
   9    " j gj      Allows scroll down in sentence by line
  10    " k gk      Allows scroll up in sentence by line
  11    " \b        Markdown __bold__ word
  12    " \i        Markdown _italic_ word
  13    " \e        Open tab with emoji
  14    " \l        Run dictionary lookup script (default to lookup word under cursor)
  15    " \N        Toggle line numbers
  16    " \n        Scratch Pad
  17    " \s        Search KJV
  18    " \S        Toggle spell check
  19    " \t        Term in split window
  20    " \T        Term in a Tab
  21    " \v        Open .vimrc in new tab, sources when saved
  22    " \pb       Paragraph style=blue
  23    " \py       Paragraph style=yellow
  24    " \pr       Paragraph style=red
  25    " \pg       Paragraph style=green
  26    " \wa       Bash Cookbook
  27    " \wb       Bash Quick ref
  28    
  29    " Control and Alt Key mappings
  30    " A-g Mark class=green
  31    " A-r Mark class=red
  32    " C-b Mark class=blue
  33    " C-t Toggle Terminal
  34    " C-y Mark class=yellow
  35    
  36    " F-Keys
  37    " F2 New tab Netrw
  38    " F3 Get URLS in current buffer (uses youtube-dl)
  39    " F4 - autocomplete, backward Insert mode
  40    " F5 - autocomplete, forward Insert mode
  41    " F6 Replace current line with kjv output
  42    " F7 Replace current line with formated output for file under /var/www (mp4 or
  43    " picture)
  44    " F8 Replace current line with link to file unde /var/www
  45    " F9 Run ./compiler in current directory
  46    " F12 Open file current buffer
  47    " S-F12 Open file new tab
  48    
  49    " :Commands
  50    
  51    " :Plug{tab}   Plugin manager
  52    " :term        Open a split window term
  53    " :TableModeToggle   VIM Table Mode toggle
  54    
  55    
  56    " Typing savers 
  57    " ==============
  58    
  59    " bash
  60    ab _var # Variables<CR>---------<CR><ESC>0D
  61    ab _func # Functions<CR>---------<CR><ESC>0D
  62    ab _main # Main<CR>----<CR><ESC>0D
  63    
  64    " urls
  65    ab _crn http://crn.hopto.org/ 
  66    ab _email mitch@crn.hopto.org
  67    ab _gop gopher://crn.hopto.org
  68    ab _Jesus [Jesus](/Jesus)
  69    ab _kjv [KJV](/#kjv)
  70    ab _KJV [KJV](/#kjv)
  71    ab _Bible [Bible](/bible)
  72    ab _bible [Bible](/bible)
  73    ab _study [Study Bible](/study)
  74    
  75    " dates
  76    ab _date <C-R>=strftime("%a %b %d %Y")<CR>
  77    ab _time <C-R>=strftime("%r %Z")<CR>
  78    ab _u Updated: <C-R>=strftime('%A %m/%d/%y')<CR>
  79    
  80    " admonitions
  81    ab _? :question: 
  82    ab _! :exclamation: __Important:__
  83    ab _ao 🎧 __Audio Only__
  84    ab _bl 🤬 __Warning bad language__
  85    ab _c :computer: __Code:__
  86    ab _ch :chart_with_upwards_trend: _Chart Of The Day:_
  87    ab _hc :sparkling_heart: __Health Clip__
  88    ab _d 🥵 __Warning Disturbing__
  89    ab _fun :laughing: __Some humor to lighten the day:__
  90    ab _geek 🧠 __Geek Related:__
  91    ab _k :key: 
  92    ab _l - [🔗 title](link){target="blank"}<ESC>04l
  93    ab _memo :memo: __Note:__
  94    ab _book 📖 __Worth Reading:__
  95    ab _mw 🤓 ___Must Watch___
  96    ab _rl :+1: __Rule of Thumb__
  97    ab _tip :bulb: __Tip:__
  98    ab _up 🔧 __Updates:__
  99    ab _warn :warning: __Warning:__
 100    ab _ar  🔗 _Off-site Artical_
 101    
 102    " misc 
 103    ab --0 [🔝](#)<CR><HR><CR><ESC>
 104    ab --1 <hr class="one">
 105    ab --2 <hr class="two">
 106    ab --3 <hr class="three">
 107    ab --p <hr class="packman">
 108    ab _A >🎧 Audio Included<CR>
 109    ab _V >🎥 Video Included<CR>
 110    ab _L ### [🔗 title](link){target="blank"} <C-R>=strftime("%r %Z")<CR><ESC>44h
 111    ab _mj Mitchell Johnston - UID 0
 112    ab _nl :newspaper: __News Links:__<CR>
 113    ab _see - [👓 See more](link)
 114    ab _sn - [📝 Show Notes](link){target="blank"}<ESC>21h
 115    ab _ts :mortar_board: [__Theological Seminary Of The Air__](/mp3/ruckman/theologic-seminary-of-the-air/)<CR>
 116    ab _tb {target="blank"}
 117    ab _div <div style="text-align: center;">
 118    ab _re <u>Related:</u>  
 119    ab _U </u>
 120    ab _u <u><ESC>i
 121    ab _vc <script src="https://av1611.com/verseclick/verseclick.js"></script>
 122    ab _iframe <iframe src="link" scrolling="no" width="100%" height="400" style="border:1px solid black;"></iframe>
 123    ab _Iframe <iframe src="link" scrolling="no" onload="resizeIframe(this) style="border:1px solid black;"></iframe>
 124    
 125    " Offsite
 126    ab _axe - [🔗 Dr Axe](https://draxe.com/){target="blank"} 
 127    ab _ak - [🔗 Andrew Kaufman, M.D.](https://rumble.com/c/c-1128483){target="blank"} 
 128    ab _da - [🔗 Dr. Ardis](https://thedrardisshow.com/){target="blank"} 
 129    ab _dlm - [🔗 Dr. Lee Merritt](https://drleemerritt.com/){target="blank"} 
 130    ab _ere - [🔗 Eredin](https://www.patreon.com/eredin?utm_source=search){target="blank"} 
 131    ab _ep - [🔗 Eric Peters](https://www.ericpetersautos.com/){target="blank"} 
 132    ab _dk - [🔗 The David Knight Show](http://www.thedavidknightshow.com/){target="blank"}<CR>- [🔗 David Knight Gold](https://davidknight.gold/){target="blank"} 
 133    ab _fed - [🔗 Flat Earth Dave](https://flatearthdave.com/){target="blank"} 
 134    ab _jl - [🔗 Jon Levi](https://jonlevichannel.com/){target="blank"}<CR>- [📖 Evidence of the OLD WORLD by Jon Levi and David Edward](https://www.amazon.com/Evidence-Old-World-David-Edward/dp/B0CJ4546QY/)<CR>
 135    ab _kb - [🔗 Dr. Ken Berry](https://www.drberry.com/){target="blank"}<CR>- [📖 His books](https://www.amazon.com/stores/Ken-D.-Berry-MD/author/B0777N6CYH)<CR>
 136    ab _lrt - [🔗 Lei's Real Talk](https://rumble.com/c/c-1991822){target="blank"}  
 137    ab _mia - [🔗 Man in America](https://rumble.com/c/ManInAmerica){target="blank"}  
 138    ab _mi - [🔗 Mises](https://mises.org/){target="blank"}  
 139    ab _mlb - [🔗 MYLUNCHBREAK](https://rumble.com/c/MYLUNCHBREAK){target="blank"} 
 140    ab _norm - [🔗 Norml](https://norml.org/){target="blank"}  
 141    ab _rc - [🔗 Rain Country](https://rumble.com/c/RainCountryHomestead){target="blank"}  
 142    ab _rr - [🔗 Recollection Road](https://rumble.com/c/c-2011177){target="blank"}  
 143    ab _pft - [🔗 Press for Truth](https://pressfortruth.ca/){target="blank"}  
 144    ab _rg - [🔗 ReallyGraceful](https://rumble.com/user/reallygraceful){target="blank"}<CR>- [📖 The Deep State Encyclopedia: Exposing the Cabal's Playbook](https://www.amazon.com/Deep-State-Encyclopedia-Exposing-Playbook/dp/B0BW2K4GRT/ref=sr_1_1?crid=L3E7PRK32XAF&dib=eyJ2IjoiMSJ9.abdCs2CjZJUaoZb39XP1UU8PqU7hXwaPfdKvrBkA9eCv7-LBc27eAel8xNDCA9zbfMUzTLgmqVOaHUFVH93Cd75NVYt7BO7hi5OldPhjRiz70HMSGAcxacy0gIN3us4p.OuuQzd1UMe1hFSXk6R4NUlJB66CS144pPKpvG3mP8MA&dib_tag=se&keywords=deep+state+encyclopedia+really+graceful&qid=1726739581&sprefix=really+gra%2Caps%2C158&sr=8-1){target="blank"} 
 145    ab _sr - [🔗 Solari Report](https://home.solari.com/){target="blank"}  
 146    ab _stl - [🔗 Switched To Linux](https://switchedtolinux.com/){target="blank"}  
 147    ab _wf - [🔗 The Why Files](https://rumble.com/c/TheWhyFiles){target="blank"}  
 148    
 149    " On-site
 150    
 151    ab _911 - [🎬 More on 911](/media/911/)
 152    ab _addict - [🎬 More on Addiction](/media/health/addiction/)
 153    ab _arc - [🎬 For more content check the archives](/media/) 
 154    ab _ba - [💻 Bible Analyzer](/media/bible-analyzer)
 155    ab _berg - [🎬 More from Dr Berg](/media/health/dr-berg/)<CR>- [⬇️ Downloadable Resources](https://www.drberg.com/resources)
 156    ab _bio - [🎬 More on Biography](/media/biography/)
 157    ab _chicks - [🎬 More on Chickens](/media/prep/chickens-rabbits/)
 158    ab _cooper - [🎬 More from Bill Cooper](/media/bill-cooper/)
 159    ab _control - [🎬 More on Control](/media/control/)
 160    ab _covid - [🎬 More on Covid](/media/health/covid/)
 161    ab _cr - [🎬 More from James Corbett](/media/corbett/)<CR>- [📖 Reportage: Essays on the New World Order](https://reportagebook.com/){target="blank"}<CR>
 162    ab _cults - [🎬 More on Cults](/media/cults/) 
 163    ab _dental - [🎬 More on Dental](/media/health/dental/)
 164    ab _detox - [🎬 More on Detox](health/#detox)
 165    ab _diet - [🎬 More on Diet](/media/health/diet/)
 166    ab _dirt - [🎬 More on Diatomaceous Earth](/media/health/minerals/diatomaceous-earth/)
 167    ab _env - [🎬 More on Environment](/media/environment/)
 168    ab _em - [🎬 More Eustace Mullins](/media/eustace-mullins/)
 169    ab _flat - [🎬 More on Flat Earth](/media/flat/) 
 170    ab _gatto - [🎬 More from John Talor Gatto](/media/john-t-gatto/)<CR>- [📖 Books](https://www.amazon.com/stores/John-Taylor-Gatto/author/B001K7S0AE)<CR> 
 171    ab _gear - [🎬 More on Gear](/media/gear/) 
 172    ab _geg - [🎬 More from G.Edward Griffin](/media/g-edward-griffin/) 
 173    ab _gipp - [🎬 More from Sam Gipp](/media/gipp)<CR>- [📖 Daystar Publishing](https://daystarpublishing.org/)<CR>
 174    ab _gr - [🎬 More from Gail Riplinger](/media/riplinger/)<CR>- [📖 AV Publications](https://avpublications.com/)<CR> 
 175    ab _garden - [🎬 More on Gardening](/media/prep/garden/) 
 176    ab _hemp - [🎬 More on Hemp](/media/health/remedies/hemp/) 
 177    ab _herbs - [🎬 More on Herbs](/media/health/remedies/herbs/) 
 178    ab _history - [🎬 More on history](/media/history/) 
 179    ab _jd - [🎬 More from Dr James Dinicolantonio](/media/health/dr-james-dinicolantonio/)<CR> - [Store](https://linktr.ee/drjamesdinic)<CR>
 180    ab _law - [🎬 More on Law](/media/law/)
 181    ab _km - [🎬 More on Kary Mullis](/media/health/kary-mullis/)<CR>- [📖 Dancing Naked in the Mind Field](https://www.amazon.com/Dancing-Naked-Mind-Field-Mullis-ebook/dp/B004AM5R0W?ref_=ast_author_mpb)<CR>
 182    ab _larkin - [🎬 More from Larkin Rose](/media/larkin/)<CR>- [The Most Dangerous Superstition](https://www.amazon.com/Most-Dangerous-Superstition-Larken-Rose-ebook/dp/B00UV41W2U?ref_=ast_author_dp)<CR>
 183    ab _levy - [🎬 More from Dr Thomas Levy](/media/health/dr-thomas-levy/)<CR>- [📖 Dr. Levy's Books](https://www.tomlevymd.com/books.php)<CR>
 184    ab _mica - [🎬 More from Mica Colston](/media/mica-colston/)
 185    ab _min [🎬 More on Minerals](/include/vids/health/minerals/)
 186    ab _money - [🎬 More on Money](/media/money/) 
 187    ab _mp3 - [🎧 MP3 Files](/mp3)
 188    ab _ortho - [🎬 More on Orthomolecular Medicine](/include/vids/health/orthomolecular/)
 189    ab _pets - [🎧 More on Pets](/media/prep/pets/)
 190    ab _pics - [🎨 More Pictures](/pics)
 191    ab _radio - [🎬 More on Radio](/media/gear/radio/)
 192    ab _rem - [🎬 More on Remedies](/include/vids/health/remedies/)
 193    ab _mms - [🎬 More on MMS](/include/vids/health/remedies/mms)
 194    ab _ruckman - [🎬 More from Peter Ruckman](/media/ruckman/)<CR>- [📖 BBB Store](https://store.kjv1611.org/)<CR>
 195    ab _sam - [🎬 More from Dr Sam Bailey](/media/health/dr-sam-bailey/)<CR>- [📖 The Final Pandemic: An Antidote To Medical Tyranny](https://www.amazon.com/Final-Pandemic-Antidote-Medical-Tyranny-ebook/dp/B0CW1QXP31/ref=sr_1_1?sr=8-1)<CR>- [📖 Terrain Therapy: How To Achieve Perfect Health Through Diet, Living Habits & Divine Thinking](https://www.amazon.com/Terrain-Therapy-Achieve-Perfect-Thinking/dp/1991185502/ref=sr_1_2?sr=8-2)<CR>- [📖 Virus Mania: Corona/COVID-19, Measles, Swine Flu, Cervical Cancer, Avian Flu, SARS, BSE, Hepatitis C, AIDS, Polio, Spanish Flu. How the Medical Industry ... Billion-Dollar Profits At Our Expense](https://www.amazon.com/Virus-Mania-COVID-19-Hepatitis-Billion-Dollar-ebook/dp/B08YFBCH2F/ref=sr_1_3?sr=8-3)<CR>
 196    ab _sircus - [🎬 More from Dr Mark Sircus](/media/health/dr-mark-sircus/)<CR>- [drsircus.com/](https://drsircus.com/)<CR>
 197    ab _save - [🔗 Salvation (forgiveness)](/salvation)
 198    ab _selft - [🎬 More on Self Therapy](/media/health/self-therapy/)
 199    ab _spy - [🎬 More on Spying](/media/spying/) 
 200    ab _survive - [🎬 More on Survival](/media/survive/)
 201    ab _tea - [🎬 More on Tea](/include/vids/health/remedies/tea/)
 202    ab _tracks - [📚 Tracks](/tracks)
 203    ab _turp - [🎬 More on Turpentine](/include/vids/health/remedies/essential-oils/turpentine)
 204    ab _vax - [🎬 More on Vaccines](/media/health/vaccines/)
 205    ab _vernon - [🎬 More from Dr Vernon Coleman](/media/health/vernon/)
 206    
 207    
 208    " Create task, check off, uncheck (see my .bashrc functions 'today' & 'task')
 209    ab ,c - [ ]
 210    map ,C :s/\[ \]/\[✔\]<CR> " Completed
 211    map ,X :s/\[❌\]/\[ \]<CR> " Unmark completed
 212    map ,i :s/\[ \]/\[🔨\]<CR> " In progress
 213    map ,I :s/\[🔨\]/\[ \]<CR> " Unmark In progress
 214    map ,o :s/\[ \]/\[⭕\]<CR> " Outsourced
 215    map ,O :s/\[⭕\]/\[ \]<CR> " Unmark Outsourced
 216    
 217    " Settings
 218    " ========
 219    
 220    set wildoptions=pum
 221    set cryptmethod=blowfish " use blowfish encryption for encrytped files
 222    set switchbuf=usetab     " when switching buffers, include tabs
 223    set splitright           " create vertical splits to the right
 224    set splitbelow           " create horizontal splits below
 225    set formatoptions=croq   " c=autowrap comments, r=continue comment on <enter>,
 226                             " o=continue comment on o or O, q=allow format comment with gqgq
 227    set backspace=2          " allow backspacing over everything in insert mode
 228    set encoding=UTF-8
 229    
 230    " Folds
 231    set foldenable               " Enable folding
 232    set foldmethod=indent        " Folding based on markers
 233    set foldlevelstart=10        " open most folds by default
 234    set foldnestmax=10           " 10 nested fold max
 235    
 236    " Tabs
 237    set hardtabs=4               " Tab setups
 238    set tabstop=4
 239    set shiftwidth=4
 240    set expandtab                " tab to spaces
 241    set softtabstop=4            " number of spaces in tab when editing
 242    set tabpagemax=15            " Max number of tabs displayed
 243    set showtabline=2            " always display tab line
 244    
 245    " Completion
 246    set dictionary+=~/etc/words-alpha.txt "Ctr-n, Ctr-p word complete
 247    set complete+=k
 248    set ignorecase               " On searches
 249    set infercase
 250    set autoindent               " Good for codding
 251    set smartindent              " Turn on file typed indenting
 252    set shiftround               " When shifting lines, round the indentation to the nearest multiple of “shiftwidth.”
 253    set history=50               " keep 50 lines of command line history
 254    set laststatus=2             " Make sure the status line is always displayed
 255    set nocompatible             " Better for Vim features
 256    set shell=/bin/bash          " Set default shell
 257    set scrolloff=0              " Start scrolling when I'm 3 lines from top/bottom
 258    set backspace=indent,eol,start "Allow backspacing over indention, line breaks and insertion start
 259    set lbr!                     " wrap on words
 260    set formatoptions+=j         " Delete comment characters when joining lines.
 261    set spell                    " Turn on spell check
 262    set belloff=all
 263    
 264    " Display
 265    set number relativenumber    "turn on normal and relitive line numbers
 266    set ruler                    " Display ruler
 267    set showcmd                  " Show commands
 268    set showmatch                " Show matching brackets
 269    set showmode                 " Display what mode you are in
 270    " Allow crosshair cursor highlighting.
 271    hi CursorLine   cterm=NONE ctermbg=0
 272    hi CursorColumn cterm=NONE ctermbg=0
 273    nnoremap <Leader>c :set cursorline! cursorcolumn!<CR>
 274    set wildmenu                 " visual autocomplete for command menu
 275    "set list                     " show hidden characters
 276    set listchars=eol:¬,tab:→→,trail:.,extends:>,precedes:<
 277    set autoread
 278    
 279    " Search
 280    set path+=**                 " :find {file} supports wilecard
 281    set wildmenu                 " tab completetion 
 282    set hlsearch                 " Highlight search matches
 283    set smartcase                " Turn off ignorcase if caps is used
 284    set incsearch                " search as characters are entered
 285    
 286    " netrw setting
 287    let g:netrw_liststyle = 3
 288    let ghregex='\(^\|\s\s\)\zs\.\S\+'
 289    let g:netrw_list_hide=ghregex
 290    
 291    " backup files
 292    silent !mkdir ~/.vim/backup > /dev/null 2>&1
 293    set viminfo='1000,f1,<500    " File information to Keep
 294    set backup                   "Turn on backups
 295    set backupdir=~/.vim/backup     "The place to remove files after I make big errors
 296    set backupskip=/tmp/*,~/.vim/backup/*
 297    set writebackup              "Make backup before overwriting the current buffer
 298    set backupcopy=yes           "Overwrite the original backup file
 299    au BufWritePre * let &bex = '@' . strftime("%F.%H:%M")
 300    
 301    " Keep undo history across sessions by storing it in a file
 302    if has('persistent_undo')
 303        call system('mkdir ~/.vim/undo')
 304        set undodir=~/.vim/undo/
 305        set undofile
 306        set undolevels=1000
 307        set undoreload=10000
 308    endif
 309    
 310    " Vim-plug
 311    if empty(glob('~/.vim/autoload/plug.vim'))
 312      silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
 313        \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
 314      autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
 315    endif
 316    
 317    " Plugins will be downloaded under the specified directory.
 318    call plug#begin('~/.vim/plugged')
 319    " Declare the list of plugins.
 320    Plug 'ryanoasis/vim-devicons'
 321    Plug 'marcopaganini/termschool-vim-theme'
 322    Plug 'junegunn/fzf'
 323    Plug 'junegunn/fzf.vim'
 324    Plug 'katono/rogue.vim'
 325    Plug 'dhruvasagar/vim-table-mode'
 326    Plug 'hallison/vim-markdown'
 327    Plug 'ap/vim-css-color'
 328    Plug 'glensc/vim-syntax-lighttpd'
 329    Plug 'jclsn/glow.vim'
 330    
 331    "Vim Rogue options
 332    let g:rogue#name = 'Mitch'
 333    let g:rogue#directory = '/home/mitch/etc'
 334    let g:rogue#jump = '1'
 335    let g:rogue#tombstone = '1'
 336    let g:rogue#fruit = 'Grapes'
 337    
 338    " enable this plugin for filetypes, '*' for all files.
 339    let g:apc_enable_ft = {'text':1, 'markdown':1, 'php':1}
 340    
 341    " List ends here. Plugins become visible to Vim after this call.
 342    call plug#end()
 343    
 344    " File types 
 345    " ==========
 346    augroup configgroup
 347        autocmd!
 348        autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown 
 349        autocmd BufNewFile,BufFilePre,BufRead *.txt set filetype=txt
 350        autocmd FileType make setlocal noexpandtab
 351        autocmd BufEnter Makefile setlocal noexpandtab
 352        autocmd BufEnter *.sh setlocal tabstop=2
 353        autocmd BufEnter *.sh setlocal shiftwidth=2
 354        autocmd BufEnter *.sh setlocal softtabstop=2
 355        au BufNewFile,BufRead *conkyrc* set filetype=conkyrc
 356        autocmd bufwritepost .vimrc source $MYVIMRC
 357        autocmd bufwritepost sp.md <ESC>:!pandoc sp.md -o sp.html<CR>
 358    augroup END
 359    
 360    " Display setup 
 361    " ==============
 362    colorscheme termschool
 363    :set guioptions-=r  "remove right-hand scroll bar
 364    set background=dark " Modify for dark background
 365    "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
 366    "au InsertEnter * hi StatusLine term=reverse ctermbg=5 gui=undercurl guisp=Magenta 
 367    "au InsertLeave * hi StatusLine term=reverse ctermfg=0 ctermbg=2 gui=bold,reverse 
 368    
 369    " using Source Code Pro
 370    set anti enc=utf-8
 371    set guifont=Source\ Code\ Pro\ 16
 372    filetype plugin on
 373    syntax on
 374    set conceallevel=2
 375    
 376    " Set style for spelling errors
 377    hi clear SpellBad
 378    hi SpellBad cterm=reverse 
 379    hi SpellBad gui=reverse
 380    
 381    " Macros 
 382    " ======
 383    map j gj
 384    map k gk
 385    map <leader>a <ESC>A [AW](#archaic) [NA](#names)<ESC>0n
 386    map <leader>l <ESC>:term ++close lu <c-r><c-w><CR>
 387    map <leader>N <ESC>:set nu! rnu!<CR>
 388    map <leader>pb 0i<p class="blue"><ESC>A</p><ESC>
 389    map <leader>pg 0i<p class="green"><ESC>A</p><ESC>
 390    map <leader>pr 0i<p class="red"><ESC>A</p><ESC>
 391    map <leader>py 0i<p class="yellow"><ESC>A</p><ESC>
 392    map <leader>qn :tabedit ~/Documents/jots/scratch.md<CR>
 393    " vim-powered terminal in split window
 394    map <Leader>t :term ++close<cr>
 395    tmap <Leader>t <c-w>:term ++close<cr>
 396    
 397    " vim-powered terminal in new tab
 398    map <Leader>T :tab term ++close<cr>
 399    tmap <Leader>T <c-w>:tab term ++close<cr>
 400    map <leader>v :tabedit $MYVIMRC<CR>
 401    map <leader>wb <ESC>:!epy ~/Documents/books/tech/dev-bash/bash-pocket-reference.epub<CR>
 402    map <leader>wh <ESC>:!epy ~/Documents/books/tech/dev-web/oreilly-html-and-css-the-good-parts-by-the-good-parts.epub<CR>
 403    noremap <space> za " space open/closes folds
 404    noremap H :set hlsearch!<CR>
 405    
 406    " HTML
 407    " ----
 408    " Highlite in blue (Ruckman) or yellow (mine) or green X-ref
 409    map <C-b> 0i<mark class="blue"><ESC>A</mark><ESC>03j
 410    map <C-y> 0i<mark class="yellow"><ESC>A</mark><ESC>03j
 411    map <A-g> 0i<mark class="green";<ESC>A</mark><ESC>0
 412    map <A-r> 0i<mark class="red";<ESC>A</mark><ESC>0
 413    
 414    " Function keys
 415    " -------------
 416    
 417    " noh - no highlight
 418    map <esc> :noh <CR>
 419    
 420    " <F2> Explorer in newtab
 421    map <F2> <ESC>:tabe .<CR>
 422    map! <F2> <ESC>:tabe .<CR>
 423    
 424    " This calls my download manager. I make a list in vim, hit F3 and it downloads them.
 425    map <F3> <ESC>:w ~/Downloads/get.txt<CR>:term ++close /home/mitch/bin/get -d<CR>>
 426    
 427    " F4 - autocomplete, backward Insert mode
 428    inoremap <F4> <C-P>
 429    
 430    " F5 - autocomplete, forward Insert mode
 431    inoremap <F5> <C-N>
 432    
 433    " This allows me to insert a Bible quote in to a document.
 434    map <F6> <ESC>0D<ESC>!!kjv 
 435    map! <F6> <ESC>0D<ESC>:!kjv 
 436    "map! <F6> <ESC>0D<ESC>:.!kjv 
 437    
 438    " pi take the name of a mp4 or picture file under /var/www and will return html with png
 439    " created for a markdown document.
 440    map <F7> <ESC>0D<ESC>:.!pi 
 441    map! <F7> <ESC>0D<ESC>:.!pi 
 442    
 443    " mkln is "make link" will return markdown formated link with emoji for major
 444    " file types, and will auto-local file under /var/www.
 445    map <F8> <ESC>0D<ESC>:.!mkln 
 446    map! <F8> <ESC>0D<ESC>:.!mkln 
 447    
 448    " Run external compiler (used for CRN’s AV Bible)
 449    map <F9> <ESC>:w!<ESC>:tab term ++close glow -p %<CR>
 450    
 451    " <F10> Place holder
 452    
 453    " Easy tab navigation
 454    nnoremap <Leader>1 1gt
 455    nnoremap <Leader>2 2gt
 456    nnoremap <Leader>3 3gt
 457    nnoremap <Leader>4 4gt
 458    nnoremap <Leader>5 5gt
 459    nnoremap <Leader>6 6gt
 460    nnoremap <Leader>7 7gt
 461    nnoremap <Leader>8 8gt
 462    nnoremap <Leader>9 9gt
 463    
 464    
 465    " ===== new status line ====
 466    
 467    "" This was made by Reddit user u/SamLovesNotion. Also with the help of - https://tdaly.co.uk/projects/vim-statusline-generator/ for learning the syntax. Sorry for English & grammar, this post was made in hurry.
 468    
 469    " Images - https://www.reddit.com/r/vim/comments/ld8h2j/i_made_a_status_line_from_scratch_no_plugins_used/
 470    " I have used Nerd icon fonts. Icons won't work without them. https://github.com/ryanoasis/nerd-fonts/
 471    
 472    " This statusline looks exactly like Vim Airline (even more customizable & powerful) & loads faster than Vim airline. Only take few ms to load.
 473    
 474    " STARTUP TIME - With Vim Airline - ~250ms. With this statusline - ~100ms. Without any statusline - ~98ms.
 475    
 476    " Add all of this at the end of your vimrc OR Create separate file like 'statusline.vim' & 'colorsgroup.vim' & source those files in your main vimrc.
 477    " e.g. source "~/.config/vim/statusline.vim"
 478    
 479    
 480    
 481    " Color highlighting groups
 482    " Add this AFTER `colorscheme` option in your vimrc. Otherwise your colorscheme will clear this highlightings. OR use ColorScheme autocommand. VERY IMPORTANT.
 483    
 484    " Color pallet
 485    " Green  - #2BBB4F (BG) - #080808 (FG)
 486    " Blue   - #4799EB
 487    " Violet - #986FEC 
 488    " Yellow - #D7A542
 489    " Orange - #EB754D
 490    " Grey1  - #202020
 491    " Grey   - #303030
 492     
 493     
 494    " Define color variables
 495    let g:StslineColorGreen  = "#2BBB4F"
 496    let g:StslineColorBlue   = "#4799EB"
 497    let g:StslineColorViolet = "#986FEC"
 498    let g:StslineColorYellow = "#D7A542"
 499    let g:StslineColorOrange = "#EB754D"
 500     
 501    let g:StslineColorLight  = "#C0C0C0"
 502    let g:StslineColorDark   = "#080808"
 503    let g:StslineColorDark1  = "#181818"
 504    let g:StslineColorDark2  = "#202020"
 505    let g:StslineColorDark3  = "#303030"
 506     
 507     
 508    " Define colors
 509    let g:StslineBackColor   = g:StslineColorDark2
 510    let g:StslineOnBackColor = g:StslineColorLight
 511    "let g:StslinePriColor   = g:StslineColorGreen
 512    let g:StslineOnPriColor  = g:StslineColorDark
 513    let g:StslineSecColor    = g:StslineColorDark3
 514    let g:StslineOnSecColor  = g:StslineColorLight
 515     
 516     
 517    " Create highlight groups
 518    execute 'highlight StslineSecColorFG guifg=' . g:StslineSecColor   ' guibg=' . g:StslineBackColor
 519    execute 'highlight StslineSecColorBG guifg=' . g:StslineColorLight ' guibg=' . g:StslineSecColor
 520    execute 'highlight StslineBackColorBG guifg=' . g:StslineColorLight ' guibg=' . g:StslineBackColor
 521    execute 'highlight StslineBackColorFGSecColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslineSecColor
 522    execute 'highlight StslineSecColorFGBackColorBG guifg=' . g:StslineSecColor ' guibg=' . g:StslineBackColor
 523    execute 'highlight StslineModColorFG guifg=' . g:StslineColorYellow ' guibg=' . g:StslineBackColor
 524     
 525     
 526     
 527    " Statusline
 528    
 529    " Enable statusline
 530    set laststatus=2
 531    
 532    " Disable showmode - i.e. Don't show mode like --INSERT-- in current statusline.
 533    set noshowmode
 534    
 535    " Enable GUI colors for terminals (Some terminals may not support this, so you'll have to *manually* set color pallet for tui colors. Lie tuibg=255, tuifg=120, etc.).
 536    set termguicolors
 537    
 538    
 539    
 540    " Understand statusline elements
 541    
 542    " %{StslineMode()}  = Output of a function
 543    " %#StslinePriColorBG# = Highlight group
 544    " %F, %c, etc. are variables which contain value like - current file path, current colums, etc.
 545    " %{&readonly?\"\ \":\"\"} = If file is readonly ? Then "Lock icon" Else : "Nothing"
 546    " %{get(b:,'coc_git_status',b:GitBranch)}    = If b:coc_git_status efists, then it's value, else value of b:GitBranch
 547    " &filetype, things starting with & are also like variables with info.
 548    " \  - Is for escaping a space. \" is for escaping a double quote.
 549    " %{&fenc!='utf-8'?\"\ \":''}   = If file encoding is NOT!= 'utf-8' ? THEN output a "Space" else : no character 
 550    
 551    
 552    
 553    " Define active statusline
 554    
 555    function! ActivateStatusline()
 556    call GetFileType()
 557    setlocal statusline=%#StslinePriColorBG#\ %{StslineMode()}%#StslineSecColorBG#%{get(b:,'coc_git_status',b:GitBranch)}%{get(b:,'coc_git_blame','')}%#StslineBackColorFGPriColorBG#%#StslinePriColorFG#\ %{&readonly?\"\ \":\"\"}%F\ %#StslineModColorFG#%{&modified?\"\ \":\"\"}%=%#StslinePriColorFG#\ %{b:FiletypeIcon}%{&filetype}\ %#StslineSecColorFG#%#StslineSecColorBG#%{&fenc!='utf-8'?\"\ \":''}%{&fenc!='utf-8'?&fenc:''}%{&fenc!='utf-8'?\"\ \":''}%#StslinePriColorFGSecColorBG#%#StslinePriColorBG#\ %p\%%\ %#StslinePriColorBGBold#%l%#StslinePriColorBG#/%L\ :%c\ 
 558    endfunction
 559    
 560    
 561    
 562    " Define Inactive statusline
 563    
 564    function! DeactivateStatusline()
 565    
 566    if !exists("b:GitBranch") || b:GitBranch == ''
 567    setlocal statusline=%#StslineSecColorBG#\ INACTIVE\ %#StslineSecColorBG#%{get(b:,'coc_git_statusline',b:GitBranch)}%{get(b:,'coc_git_blame','')}%#StslineBackColorFGSecColorBG#%#StslineBackColorBG#\ %{&readonly?\"\ \":\"\"}%F\ %#StslineModColorFG#%{&modified?\"\ \":\"\"}%=%#StslineBackColorBG#\ %{b:FiletypeIcon}%{&filetype}\ %#StslineSecColorFGBackColorBG#%#StslineSecColorBG#\ %p\%%\ %l/%L\ :%c\ 
 568    
 569    else
 570    setlocal statusline=%#StslineSecColorBG#%{get(b:,'coc_git_statusline',b:GitBranch)}%{get(b:,'coc_git_blame','')}%#StslineBackColorFGSecColorBG#%#StslineBackColorBG#\ %{&readonly?\"\ \":\"\"}%F\ %#StslineModColorFG#%{&modified?\"\ \":\"\"}%=%#StslineBackColorBG#\ %{b:FiletypeIcon}%{&filetype}\ %#StslineSecColorFGBackColorBG#%#StslineSecColorBG#\ %p\%%\ %l/%L\ :%c\ 
 571    endif
 572    
 573    endfunction
 574    
 575    
 576    
 577    " Get Statusline mode & also set primary color for that mode
 578    function! StslineMode()
 579    
 580        let l:CurrentMode=mode()
 581    
 582        if l:CurrentMode==#"n"
 583            let g:StslinePriColor     = g:StslineColorGreen
 584            let b:CurrentMode = "NORMAL "
 585    
 586        elseif l:CurrentMode==#"i"
 587            let g:StslinePriColor     = g:StslineColorViolet
 588            let b:CurrentMode = "INSERT "
 589    
 590        elseif l:CurrentMode==#"c"
 591            let g:StslinePriColor     = g:StslineColorYellow
 592    
 593            let b:CurrentMode = "COMMAND "
 594    
 595        elseif l:CurrentMode==#"v"
 596            let g:StslinePriColor     = g:StslineColorBlue
 597            let b:CurrentMode = "VISUAL "
 598    
 599        elseif l:CurrentMode==#"V"
 600            let g:StslinePriColor     = g:StslineColorBlue
 601            let b:CurrentMode = "V-LINE "
 602    
 603        elseif l:CurrentMode==#"\<C-v>"
 604            let g:StslinePriColor     = g:StslineColorBlue
 605            let b:CurrentMode = "V-BLOCK "
 606    
 607        elseif l:CurrentMode==#"R"
 608            let g:StslinePriColor     = g:StslineColorViolet
 609            let b:CurrentMode = "REPLACE "
 610    
 611        elseif l:CurrentMode==#"s"
 612            let g:StslinePriColor     = g:StslineColorBlue
 613            let b:CurrentMode = "SELECT "
 614    
 615        elseif l:CurrentMode==#"t"
 616            let g:StslinePriColor     =g:StslineColorYellow
 617            let b:CurrentMode = "TERM "
 618    
 619        elseif l:CurrentMode==#"!"
 620            let g:StslinePriColor     = g:StslineColorYellow
 621            let b:CurrentMode = "SHELL "
 622    
 623        endif
 624    
 625    
 626        call UpdateStslineColors()
 627        
 628        return b:CurrentMode
 629    
 630    endfunction
 631    
 632    
 633    
 634    " Update colors. Recreate highlight groups with new Primary color value.
 635    function! UpdateStslineColors()
 636    
 637    execute 'highlight StslinePriColorBG           guifg=' . g:StslineOnPriColor ' guibg=' . g:StslinePriColor
 638    execute 'highlight StslinePriColorBGBold       guifg=' . g:StslineOnPriColor ' guibg=' . g:StslinePriColor ' gui=bold'
 639    execute 'highlight StslinePriColorFG           guifg=' . g:StslinePriColor   ' guibg=' . g:StslineBackColor
 640    execute 'highlight StslinePriColorFGSecColorBG guifg=' . g:StslinePriColor   ' guibg=' . g:StslineSecColor
 641    execute 'highlight StslineSecColorFGPriColorBG guifg=' . g:StslineSecColor   ' guibg=' . g:StslinePriColor
 642    
 643    if !exists("b:GitBranch") || b:GitBranch == ''
 644    execute 'highlight StslineBackColorFGPriColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslinePriColor
 645    endif
 646    
 647    endfunction
 648    
 649    
 650    
 651    " Get git branch name
 652    
 653    function! GetGitBranch()
 654    let b:GitBranch=""
 655    try
 656        let l:dir=expand('%:p:h')
 657        let l:gitrevparse = system("git -C ".l:dir." rev-parse --abbrev-ref HEAD")
 658        if !v:shell_error
 659            let b:GitBranch="   ".substitute(l:gitrevparse, '\n', '', 'g')." "
 660            execute 'highlight StslineBackColorFGPriColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslineSecColor
 661        endif
 662    catch
 663    endtry
 664    endfunction
 665    
 666    
 667    
 668    " Get filetype & custom icon. Put your most used file types first for optimized performance.
 669    
 670    function! GetFileType()
 671    
 672    if &filetype == 'typescript'
 673    let b:FiletypeIcon = ' '
 674    
 675    elseif &filetype == 'html'
 676    let b:FiletypeIcon = ' '
 677    
 678    elseif &filetype == 'scss'
 679    let b:FiletypeIcon = ' '
 680    
 681    elseif &filetype == 'css'
 682    let b:FiletypeIcon = ' '
 683    
 684    elseif &filetype == 'javascript'
 685    let b:FiletypeIcon = ' '
 686    
 687    elseif &filetype == 'javascriptreact'
 688    let b:FiletypeIcon = ' '
 689    
 690    elseif &filetype == 'markdown'
 691    let b:FiletypeIcon = ' '
 692    
 693    elseif &filetype == 'sh' || &filetype == 'zsh'
 694    let b:FiletypeIcon = ' '
 695    
 696    elseif &filetype == 'vim'
 697    let b:FiletypeIcon = ' '
 698    
 699    elseif &filetype == ''
 700    let b:FiletypeIcon = ''
 701    
 702    elseif &filetype == 'rust'
 703    let b:FiletypeIcon = ' '
 704    
 705    elseif &filetype == 'ruby'
 706    let b:FiletypeIcon = ' '
 707    
 708    elseif &filetype == 'cpp'
 709    let b:FiletypeIcon = ' '
 710    
 711    elseif &filetype == 'c'
 712    let b:FiletypeIcon = ' '
 713    
 714    elseif &filetype == 'go'
 715    let b:FiletypeIcon = ' '
 716    
 717    elseif &filetype == 'lua'
 718    let b:FiletypeIcon = ' '
 719    
 720    elseif &filetype == 'haskel'
 721    let b:FiletypeIcon = ' '
 722    
 723    else
 724    let b:FiletypeIcon = '🖊 '
 725    
 726    endif
 727    endfunction
 728    
 729    
 730    
 731    " Get git branch name after entering a buffer
 732    augroup GetGitBranch
 733        autocmd!
 734        autocmd BufEnter * call GetGitBranch()
 735    augroup END
 736    
 737    
 738    " Set active / inactive statusline after entering, leaving buffer
 739    augroup SetStslineline
 740        autocmd!
 741        autocmd BufEnter,WinEnter * call ActivateStatusline()
 742        autocmd BufLeave,WinLeave * call DeactivateStatusline()
 743    augroup END
 744    
 745    " vim: nospell 
───────┴────────────────────────────────────────────────────────────────────────