───────┬────────────────────────────────────────────────────────────────────────
       File: /home/mitch/.vimrc
───────┼────────────────────────────────────────────────────────────────────────
   1    " Description: My setting file for vim
   2    " Author.....: Mitchell Johnston
   3    " Updated....: Fri 13 Jun 2025 07:30:30 AM CDT
   4    " 
   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- Open menu in console 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 _ep - [🔗 Eric Peters](https://www.ericpetersautos.com/){target="blank"} 
 131    ab _dk - [🔗 The David Knight Show](http://www.thedavidknightshow.com/){target="blank"}<CR>- [🔗 David Knight Gold](https://davidknight.gold/){target="blank"} 
 132    ab _fed - [🔗 Flat Earth Dave](https://flatearthdave.com/){target="blank"} 
 133    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>
 134    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>
 135    ab _lrt - [🔗 Lei's Real Talk](https://rumble.com/c/c-1991822){target="blank"}  
 136    ab _mia - [🔗 Man in America](https://rumble.com/c/ManInAmerica){target="blank"}  
 137    ab _mi - [🔗 Mises](https://mises.org/){target="blank"}  
 138    ab _mlb - [🔗 MYLUNCHBREAK](https://rumble.com/c/MYLUNCHBREAK){target="blank"} 
 139    ab _norm - [🔗 Norml](https://norml.org/){target="blank"}  
 140    ab _rc - [🔗 Rain Country](https://rumble.com/c/RainCountryHomestead){target="blank"}  
 141    ab _pft - [🔗 Press for Truth](https://pressfortruth.ca/){target="blank"}  
 142    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"} 
 143    ab _sr - [🔗 Solari Report](https://home.solari.com/){target="blank"}  
 144    ab _stl - [🔗 Switched To Linux](https://switchedtolinux.com/){target="blank"}  
 145    ab _tav - [🔗 The Last American Vagabond](ihttps://www.thelastamericanvagabond.com/ima-palantir-ai-panopticon/){target="blank"}  
 146    ab _wf - [🔗 The Why Files](https://rumble.com/c/TheWhyFiles){target="blank"}  
 147    
 148    " On-site
 149    
 150    ab _911 - [🎬 More on 911](/media/911/)
 151    ab _addict - [🎬 More on Addiction](/media/health/addiction/)
 152    ab _arc - [🎬 For more content check the archives](/media/) 
 153    ab _ba - [💻 Bible Analyzer](/media/bible-analyzer)
 154    ab _berg - [🎬 More from Dr Berg](/media/health/dr-berg/)<CR>- [⬇️ Downloadable Resources](https://www.drberg.com/resources)
 155    ab _bio - [🎬 More on Biography](/media/biography/)
 156    ab _chicks - [🎬 More on Chickens](/media/prep/chickens-rabbits/)
 157    ab _cooper - [🎬 More from Bill Cooper](/media/bill-cooper/)
 158    ab _control - [🎬 More on Control](/media/control/)
 159    ab _covid - [🎬 More on Covid](/media/health/covid/)
 160    ab _cr - [🎬 More from James Corbett](/media/corbett/)<CR>- [📖 Reportage: Essays on the New World Order](https://reportagebook.com/){target="blank"}<CR>
 161    ab _cults - [🎬 More on Cults](/media/cults/) 
 162    ab _dental - [🎬 More on Dental](/media/health/dental/)
 163    ab _detox - [🎬 More on Detox](health/#detox)
 164    ab _diet - [🎬 More on Diet](/media/health/diet/)
 165    ab _dirt - [🎬 More on Diatomaceous Earth](/media/health/minerals/diatomaceous-earth/)
 166    ab _env - [🎬 More on Environment](/media/environment/)
 167    ab _em - [🎬 More Eustace Mullins](/media/eustace-mullins/)
 168    ab _flat - [🎬 More on Flat Earth](/media/flat/) 
 169    ab _gatto - [🎬 More from John Talor Gatto](/media/john-t-gatto/)<CR>- [📖 Books](https://www.amazon.com/stores/John-Taylor-Gatto/author/B001K7S0AE)<CR> 
 170    ab _gear - [🎬 More on Gear](/media/gear/) 
 171    ab _geg - [🎬 More from G.Edward Griffin](/media/g-edward-griffin/) 
 172    ab _gipp - [🎬 More from Sam Gipp](/media/gipp)<CR>- [📖 Daystar Publishing](https://daystarpublishing.org/)<CR>
 173    ab _gr - [🎬 More from Gail Riplinger](/media/riplinger/)<CR>- [📖 AV Publications](https://avpublications.com/)<CR> 
 174    ab _garden - [🎬 More on Gardening](/media/prep/garden/) 
 175    ab _hemp - [🎬 More on Hemp](/media/health/remedies/hemp/) 
 176    ab _herbs - [🎬 More on Herbs](/media/health/remedies/herbs/) 
 177    ab _history - [🎬 More on history](/media/history/) 
 178    ab _jd - [🎬 More from Dr James Dinicolantonio](/media/health/dr-james-dinicolantonio/)<CR> - [Store](https://linktr.ee/drjamesdinic)<CR>
 179    ab _law - [🎬 More on Law](/media/law/)
 180    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>
 181    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>
 182    ab _levy - [🎬 More from Dr Thomas Levy](/media/health/dr-thomas-levy/)<CR>- [📖 Dr. Levy's Books](https://www.tomlevymd.com/books.php)<CR>
 183    ab _mica - [🎬 More from Mica Colston](/media/mica-colston/)
 184    ab _min [🎬 More on Minerals](/include/vids/health/minerals/)
 185    ab _money - [🎬 More on Money](/media/money/) 
 186    ab _mp3 - [🎧 MP3 Files](/mp3)
 187    ab _ortho - [🎬 More on Orthomolecular Medicine](/include/vids/health/orthomolecular/)
 188    ab _pets - [🎧 More on Pets](/media/prep/pets/)
 189    ab _pics - [🎨 More Pictures](/pics)
 190    ab _radio - [🎬 More on Radio](/media/gear/radio/)
 191    ab _rem - [🎬 More on Remedies](/include/vids/health/remedies/)
 192    ab _mms - [🎬 More on MMS](/include/vids/health/remedies/mms)
 193    ab _ruckman - [🎬 More from Peter Ruckman](/media/ruckman/)<CR>- [📖 BBB Store](https://store.kjv1611.org/)<CR>
 194    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>
 195    ab _sircus - [🎬 More from Dr Mark Sircus](/media/health/dr-mark-sircus/)<CR>- [drsircus.com/](https://drsircus.com/)<CR>
 196    ab _save - [🔗 Salvation (forgiveness)](/salvation)
 197    ab _selft - [🎬 More on Self Therapy](/media/health/self-therapy/)
 198    ab _spy - [🎬 More on Spying](/media/spying/) 
 199    ab _survive - [🎬 More on Survival](/media/survive/)
 200    ab _tea - [🎬 More on Tea](/include/vids/health/remedies/tea/)
 201    ab _tracks - [📚 Tracks](/tracks)
 202    ab _turp - [🎬 More on Turpentine](/include/vids/health/remedies/essential-oils/turpentine)
 203    ab _vax - [🎬 More on Vaccines](/media/health/vaccines/)
 204    ab _vernon - [🎬 More from Dr Vernon Coleman](/media/health/vernon/)
 205    
 206    
 207    " Create task, check off, uncheck (see my .bashrc functions 'today' & 'task')
 208    ab ,c - [ ]
 209    map ,C :s/\[ \]/\[✔\]<CR> " Completed
 210    map ,X :s/\[❌\]/\[ \]<CR> " Unmark completed
 211    map ,i :s/\[ \]/\[🔨\]<CR> " In progress
 212    map ,I :s/\[🔨\]/\[ \]<CR> " Unmark In progress
 213    map ,o :s/\[ \]/\[⭕\]<CR> " Outsourced
 214    map ,O :s/\[⭕\]/\[ \]<CR> " Unmark Outsourced
 215    
 216    " Settings
 217    " ========
 218    
 219    set wildoptions=pum
 220    set cryptmethod=blowfish " use blowfish encryption for encrytped files
 221    set switchbuf=usetab     " when switching buffers, include tabs
 222    set splitright           " create vertical splits to the right
 223    set splitbelow           " create horizontal splits below
 224    set formatoptions=croq   " c=autowrap comments, r=continue comment on <enter>,
 225                             " o=continue comment on o or O, q=allow format comment with gqgq
 226    set backspace=2          " allow backspacing over everything in insert mode
 227    set encoding=UTF-8
 228    
 229    " Folds
 230    set foldenable               " Enable folding
 231    set foldmethod=indent        " Folding based on markers
 232    set foldlevelstart=10        " open most folds by default
 233    set foldnestmax=10           " 10 nested fold max
 234    
 235    " Tabs
 236    set hardtabs=4               " Tab setups
 237    set tabstop=4
 238    set shiftwidth=4
 239    set expandtab                " tab to spaces
 240    set softtabstop=4            " number of spaces in tab when editing
 241    set tabpagemax=15            " Max number of tabs displayed
 242    set showtabline=2            " always display tab line
 243    
 244    " Completion
 245    set dictionary+=~/etc/words-alpha.txt "Ctr-n, Ctr-p word complete
 246    set complete+=k
 247    set ignorecase               " On searches
 248    set infercase
 249    set autoindent               " Good for codding
 250    set smartindent              " Turn on file typed indenting
 251    set shiftround               " When shifting lines, round the indentation to the nearest multiple of “shiftwidth.”
 252    set history=50               " keep 50 lines of command line history
 253    set laststatus=2             " Make sure the status line is always displayed
 254    set nocompatible             " Better for Vim features
 255    set shell=/bin/bash          " Set default shell
 256    set scrolloff=0              " Start scrolling when I'm 3 lines from top/bottom
 257    set backspace=indent,eol,start "Allow backspacing over indention, line breaks and insertion start
 258    set lbr!                     " wrap on words
 259    set formatoptions+=j         " Delete comment characters when joining lines.
 260    set spell                    " Turn on spell check
 261    set belloff=all
 262    
 263    " Display
 264    set number relativenumber    "turn on normal and relitive line numbers
 265    set ruler                    " Display ruler
 266    set showcmd                  " Show commands
 267    set showmatch                " Show matching brackets
 268    set showmode                 " Display what mode you are in
 269    " Allow crosshair cursor highlighting.
 270    hi CursorLine   cterm=NONE ctermbg=0
 271    hi CursorColumn cterm=NONE ctermbg=0
 272    nnoremap <Leader>c :set cursorline! cursorcolumn!<CR>
 273    set wildmenu                 " visual autocomplete for command menu
 274    "set list                     " show hidden characters
 275    set listchars=eol:¬,tab:→→,trail:.,extends:>,precedes:<
 276    set autoread
 277    
 278    " Search
 279    set path+=**                 " :find {file} supports wilecard
 280    set wildmenu                 " tab completetion 
 281    set hlsearch                 " Highlight search matches
 282    set smartcase                " Turn off ignorcase if caps is used
 283    set incsearch                " search as characters are entered
 284    
 285    " netrw setting
 286    let g:netrw_liststyle = 3
 287    let ghregex='\(^\|\s\s\)\zs\.\S\+'
 288    let g:netrw_list_hide=ghregex
 289    
 290    " backup files
 291    silent !mkdir ~/.vim/backup > /dev/null 2>&1
 292    set viminfo='1000,f1,<500    " File information to Keep
 293    set backup                   "Turn on backups
 294    set backupdir=~/.vim/backup     "The place to remove files after I make big errors
 295    set backupskip=/tmp/*,~/.vim/backup/*
 296    set writebackup              "Make backup before overwriting the current buffer
 297    set backupcopy=yes           "Overwrite the original backup file
 298    au BufWritePre * let &bex = '@' . strftime("%F.%H:%M")
 299    
 300    " Keep undo history across sessions by storing it in a file
 301    if has('persistent_undo')
 302        call system('mkdir ~/.vim/undo')
 303        set undodir=~/.vim/undo/
 304        set undofile
 305        set undolevels=1000
 306        set undoreload=10000
 307    endif
 308    
 309    " Vim-plug
 310    if empty(glob('~/.vim/autoload/plug.vim'))
 311      silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
 312        \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
 313      autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
 314    endif
 315    
 316    " Plugins will be downloaded under the specified directory.
 317    call plug#begin('~/.vim/plugged')
 318    " Declare the list of plugins.
 319    Plug 'ryanoasis/vim-devicons'
 320    Plug 'marcopaganini/termschool-vim-theme'
 321    Plug 'junegunn/fzf'
 322    Plug 'junegunn/fzf.vim'
 323    Plug 'katono/rogue.vim'
 324    Plug 'dhruvasagar/vim-table-mode'
 325    Plug 'hallison/vim-markdown'
 326    Plug 'ap/vim-css-color'
 327    Plug 'glensc/vim-syntax-lighttpd'
 328    Plug 'jclsn/glow.vim'
 329    
 330    "Vim Rogue options
 331    let g:rogue#name = 'Mitch'
 332    let g:rogue#directory = '/home/mitch/etc'
 333    let g:rogue#jump = '1'
 334    let g:rogue#tombstone = '1'
 335    let g:rogue#fruit = 'Grapes'
 336    
 337    " enable this plugin for filetypes, '*' for all files.
 338    let g:apc_enable_ft = {'text':1, 'markdown':1, 'php':1}
 339    
 340    " List ends here. Plugins become visible to Vim after this call.
 341    call plug#end()
 342    
 343    " File types 
 344    " ==========
 345    augroup configgroup
 346        autocmd!
 347        autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown 
 348        autocmd BufNewFile,BufFilePre,BufRead *.txt set filetype=txt
 349        autocmd FileType make setlocal noexpandtab
 350        autocmd BufEnter Makefile setlocal noexpandtab
 351        autocmd BufEnter *.sh setlocal tabstop=2
 352        autocmd BufEnter *.sh setlocal shiftwidth=2
 353        autocmd BufEnter *.sh setlocal softtabstop=2
 354        au BufNewFile,BufRead *conkyrc* set filetype=conkyrc
 355        autocmd bufwritepost .vimrc source $MYVIMRC
 356        autocmd bufwritepost sp.md <ESC>:!pandoc sp.md -o sp.html<CR>
 357    augroup END
 358    
 359    " Display setup 
 360    " ==============
 361    colorscheme termschool
 362    :set guioptions-=r  "remove right-hand scroll bar
 363    set background=dark " Modify for dark background
 364    "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
 365    "au InsertEnter * hi StatusLine term=reverse ctermbg=5 gui=undercurl guisp=Magenta 
 366    "au InsertLeave * hi StatusLine term=reverse ctermfg=0 ctermbg=2 gui=bold,reverse 
 367    
 368    " using Source Code Pro
 369    set anti enc=utf-8
 370    set guifont=Source\ Code\ Pro\ 16
 371    filetype plugin on
 372    syntax on
 373    set conceallevel=2
 374    
 375    " Set style for spelling errors
 376    hi clear SpellBad
 377    hi SpellBad cterm=reverse 
 378    hi SpellBad gui=reverse
 379    
 380    " Macros 
 381    " ======
 382    map j gj
 383    map k gk
 384    map <leader>a <ESC>A [AW](#archaic) [NA](#names)<ESC>0n
 385    map <leader>l <ESC>:term ++close lu <c-r><c-w><CR>
 386    map <leader>N <ESC>:set nu! rnu!<CR>
 387    map <leader>pb 0i<p class="blue"><ESC>A</p><ESC>
 388    map <leader>pg 0i<p class="green"><ESC>A</p><ESC>
 389    map <leader>pr 0i<p class="red"><ESC>A</p><ESC>
 390    map <leader>py 0i<p class="yellow"><ESC>A</p><ESC>
 391    map <leader>qn :tabedit ~/Documents/jots/scratch.md<CR>
 392    " vim-powered terminal in split window
 393    map <Leader>t :term ++close<cr>
 394    tmap <Leader>t <c-w>:term ++close<cr>
 395    
 396    " vim-powered terminal in new tab
 397    map <Leader>T :tab term ++close<cr>
 398    tmap <Leader>T <c-w>:tab term ++close<cr>
 399    map <leader>v :tabedit $MYVIMRC<CR>
 400    map <leader>wb <ESC>:!epy ~/Documents/books/tech/dev-bash/bash-pocket-reference.epub<CR>
 401    map <leader>wh <ESC>:!epy ~/Documents/books/tech/dev-web/oreilly-html-and-css-the-good-parts-by-the-good-parts.epub<CR>
 402    noremap <space> za " space open/closes folds
 403    noremap H :set hlsearch!<CR>
 404    
 405    " HTML
 406    " ----
 407    " Highlite in blue (Ruckman) or yellow (mine) or green X-ref
 408    map <C-b> 0i<mark class="blue"><ESC>A</mark><ESC>03j
 409    map <C-y> 0i<mark class="yellow"><ESC>A</mark><ESC>03j
 410    map <A-g> 0i<mark class="green";<ESC>A</mark><ESC>0
 411    map <A-r> 0i<mark class="red";<ESC>A</mark><ESC>0
 412    
 413    " Function keys
 414    " -------------
 415    
 416    " noh - no highlight
 417    map <esc> :noh <CR>
 418    
 419    " <F2> Explorer in newtab
 420    map <F2> <ESC>:tabe .<CR>
 421    map! <F2> <ESC>:tabe .<CR>
 422    
 423    " This calls my download manager. I make a list in vim, hit F3 and it downloads them.
 424    map <F3> <ESC>:w ~/Downloads/get.txt<CR>:term ++close /home/mitch/bin/get -d<CR>>
 425    
 426    " F4 - autocomplete, backward Insert mode
 427    "inoremap <F4> <C-P>
 428    :source $VIMRUNTIME/menu.vim
 429    :set wildmenu
 430    :set cpo-=<
 431    :set wcm=<C-Z>
 432    :map <F4> :emenu <C-Z>
 433    
 434    " F5 - autocomplete, forward Insert mode
 435    inoremap <F5> <C-N>
 436    
 437    " This allows me to insert a Bible quote in to a document.
 438    map <F6> <ESC>0D<ESC>!!kjv 
 439    map! <F6> <ESC>0D<ESC>:!kjv 
 440    "map! <F6> <ESC>0D<ESC>:.!kjv 
 441    
 442    " pi take the name of a mp4 or picture file under /var/www and will return html with png
 443    " created for a markdown document.
 444    map <F7> <ESC>0D<ESC>:.!pi 
 445    map! <F7> <ESC>0D<ESC>:.!pi 
 446    
 447    " mkln is "make link" will return markdown formated link with emoji for major
 448    " file types, and will auto-local file under /var/www.
 449    map <F8> <ESC>0D<ESC>:.!mkln 
 450    map! <F8> <ESC>0D<ESC>:.!mkln 
 451    
 452    " Run external compiler (used for CRN’s AV Bible)
 453    map <F9> <ESC>:w!<ESC>:tab term ++close glow -p %<CR>
 454    
 455    " <F10> Place holder
 456    
 457    " Easy tab navigation
 458    nnoremap <Leader>1 1gt
 459    nnoremap <Leader>2 2gt
 460    nnoremap <Leader>3 3gt
 461    nnoremap <Leader>4 4gt
 462    nnoremap <Leader>5 5gt
 463    nnoremap <Leader>6 6gt
 464    nnoremap <Leader>7 7gt
 465    nnoremap <Leader>8 8gt
 466    nnoremap <Leader>9 9gt
 467    
 468    
 469    " ===== new status line ====
 470    
 471    "" 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.
 472    
 473    " Images - https://www.reddit.com/r/vim/comments/ld8h2j/i_made_a_status_line_from_scratch_no_plugins_used/
 474    " I have used Nerd icon fonts. Icons won't work without them. https://github.com/ryanoasis/nerd-fonts/
 475    
 476    " This statusline looks exactly like Vim Airline (even more customizable & powerful) & loads faster than Vim airline. Only take few ms to load.
 477    
 478    " STARTUP TIME - With Vim Airline - ~250ms. With this statusline - ~100ms. Without any statusline - ~98ms.
 479    
 480    " 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.
 481    " e.g. source "~/.config/vim/statusline.vim"
 482    
 483    
 484    
 485    " Color highlighting groups
 486    " Add this AFTER `colorscheme` option in your vimrc. Otherwise your colorscheme will clear this highlightings. OR use ColorScheme autocommand. VERY IMPORTANT.
 487    
 488    " Color pallet
 489    " Green  - #2BBB4F (BG) - #080808 (FG)
 490    " Blue   - #4799EB
 491    " Violet - #986FEC 
 492    " Yellow - #D7A542
 493    " Orange - #EB754D
 494    " Grey1  - #202020
 495    " Grey   - #303030
 496     
 497     
 498    " Define color variables
 499    let g:StslineColorGreen  = "#2BBB4F"
 500    let g:StslineColorBlue   = "#4799EB"
 501    let g:StslineColorViolet = "#986FEC"
 502    let g:StslineColorYellow = "#D7A542"
 503    let g:StslineColorOrange = "#EB754D"
 504     
 505    let g:StslineColorLight  = "#C0C0C0"
 506    let g:StslineColorDark   = "#080808"
 507    let g:StslineColorDark1  = "#181818"
 508    let g:StslineColorDark2  = "#202020"
 509    let g:StslineColorDark3  = "#303030"
 510     
 511     
 512    " Define colors
 513    let g:StslineBackColor   = g:StslineColorDark2
 514    let g:StslineOnBackColor = g:StslineColorLight
 515    "let g:StslinePriColor   = g:StslineColorGreen
 516    let g:StslineOnPriColor  = g:StslineColorDark
 517    let g:StslineSecColor    = g:StslineColorDark3
 518    let g:StslineOnSecColor  = g:StslineColorLight
 519     
 520     
 521    " Create highlight groups
 522    execute 'highlight StslineSecColorFG guifg=' . g:StslineSecColor   ' guibg=' . g:StslineBackColor
 523    execute 'highlight StslineSecColorBG guifg=' . g:StslineColorLight ' guibg=' . g:StslineSecColor
 524    execute 'highlight StslineBackColorBG guifg=' . g:StslineColorLight ' guibg=' . g:StslineBackColor
 525    execute 'highlight StslineBackColorFGSecColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslineSecColor
 526    execute 'highlight StslineSecColorFGBackColorBG guifg=' . g:StslineSecColor ' guibg=' . g:StslineBackColor
 527    execute 'highlight StslineModColorFG guifg=' . g:StslineColorYellow ' guibg=' . g:StslineBackColor
 528     
 529     
 530     
 531    " Statusline
 532    
 533    " Enable statusline
 534    set laststatus=2
 535    
 536    " Disable showmode - i.e. Don't show mode like --INSERT-- in current statusline.
 537    set noshowmode
 538    
 539    " 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.).
 540    set termguicolors
 541    
 542    
 543    
 544    " Understand statusline elements
 545    
 546    " %{StslineMode()}  = Output of a function
 547    " %#StslinePriColorBG# = Highlight group
 548    " %F, %c, etc. are variables which contain value like - current file path, current colums, etc.
 549    " %{&readonly?\"\ \":\"\"} = If file is readonly ? Then "Lock icon" Else : "Nothing"
 550    " %{get(b:,'coc_git_status',b:GitBranch)}    = If b:coc_git_status efists, then it's value, else value of b:GitBranch
 551    " &filetype, things starting with & are also like variables with info.
 552    " \  - Is for escaping a space. \" is for escaping a double quote.
 553    " %{&fenc!='utf-8'?\"\ \":''}   = If file encoding is NOT!= 'utf-8' ? THEN output a "Space" else : no character 
 554    
 555    
 556    
 557    " Define active statusline
 558    
 559    function! ActivateStatusline()
 560    call GetFileType()
 561    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\ 
 562    endfunction
 563    
 564    
 565    
 566    " Define Inactive statusline
 567    
 568    function! DeactivateStatusline()
 569    
 570    if !exists("b:GitBranch") || b:GitBranch == ''
 571    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\ 
 572    
 573    else
 574    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\ 
 575    endif
 576    
 577    endfunction
 578    
 579    
 580    
 581    " Get Statusline mode & also set primary color for that mode
 582    function! StslineMode()
 583    
 584        let l:CurrentMode=mode()
 585    
 586        if l:CurrentMode==#"n"
 587            let g:StslinePriColor     = g:StslineColorGreen
 588            let b:CurrentMode = "NORMAL "
 589    
 590        elseif l:CurrentMode==#"i"
 591            let g:StslinePriColor     = g:StslineColorViolet
 592            let b:CurrentMode = "INSERT "
 593    
 594        elseif l:CurrentMode==#"c"
 595            let g:StslinePriColor     = g:StslineColorYellow
 596    
 597            let b:CurrentMode = "COMMAND "
 598    
 599        elseif l:CurrentMode==#"v"
 600            let g:StslinePriColor     = g:StslineColorBlue
 601            let b:CurrentMode = "VISUAL "
 602    
 603        elseif l:CurrentMode==#"V"
 604            let g:StslinePriColor     = g:StslineColorBlue
 605            let b:CurrentMode = "V-LINE "
 606    
 607        elseif l:CurrentMode==#"\<C-v>"
 608            let g:StslinePriColor     = g:StslineColorBlue
 609            let b:CurrentMode = "V-BLOCK "
 610    
 611        elseif l:CurrentMode==#"R"
 612            let g:StslinePriColor     = g:StslineColorViolet
 613            let b:CurrentMode = "REPLACE "
 614    
 615        elseif l:CurrentMode==#"s"
 616            let g:StslinePriColor     = g:StslineColorBlue
 617            let b:CurrentMode = "SELECT "
 618    
 619        elseif l:CurrentMode==#"t"
 620            let g:StslinePriColor     =g:StslineColorYellow
 621            let b:CurrentMode = "TERM "
 622    
 623        elseif l:CurrentMode==#"!"
 624            let g:StslinePriColor     = g:StslineColorYellow
 625            let b:CurrentMode = "SHELL "
 626    
 627        endif
 628    
 629    
 630        call UpdateStslineColors()
 631        
 632        return b:CurrentMode
 633    
 634    endfunction
 635    
 636    
 637    
 638    " Update colors. Recreate highlight groups with new Primary color value.
 639    function! UpdateStslineColors()
 640    
 641    execute 'highlight StslinePriColorBG           guifg=' . g:StslineOnPriColor ' guibg=' . g:StslinePriColor
 642    execute 'highlight StslinePriColorBGBold       guifg=' . g:StslineOnPriColor ' guibg=' . g:StslinePriColor ' gui=bold'
 643    execute 'highlight StslinePriColorFG           guifg=' . g:StslinePriColor   ' guibg=' . g:StslineBackColor
 644    execute 'highlight StslinePriColorFGSecColorBG guifg=' . g:StslinePriColor   ' guibg=' . g:StslineSecColor
 645    execute 'highlight StslineSecColorFGPriColorBG guifg=' . g:StslineSecColor   ' guibg=' . g:StslinePriColor
 646    
 647    if !exists("b:GitBranch") || b:GitBranch == ''
 648    execute 'highlight StslineBackColorFGPriColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslinePriColor
 649    endif
 650    
 651    endfunction
 652    
 653    
 654    
 655    " Get git branch name
 656    
 657    function! GetGitBranch()
 658    let b:GitBranch=""
 659    try
 660        let l:dir=expand('%:p:h')
 661        let l:gitrevparse = system("git -C ".l:dir." rev-parse --abbrev-ref HEAD")
 662        if !v:shell_error
 663            let b:GitBranch="   ".substitute(l:gitrevparse, '\n', '', 'g')." "
 664            execute 'highlight StslineBackColorFGPriColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslineSecColor
 665        endif
 666    catch
 667    endtry
 668    endfunction
 669    
 670    
 671    
 672    " Get filetype & custom icon. Put your most used file types first for optimized performance.
 673    
 674    function! GetFileType()
 675    
 676    if &filetype == 'typescript'
 677    let b:FiletypeIcon = ' '
 678    
 679    elseif &filetype == 'html'
 680    let b:FiletypeIcon = ' '
 681    
 682    elseif &filetype == 'scss'
 683    let b:FiletypeIcon = ' '
 684    
 685    elseif &filetype == 'css'
 686    let b:FiletypeIcon = ' '
 687    
 688    elseif &filetype == 'javascript'
 689    let b:FiletypeIcon = ' '
 690    
 691    elseif &filetype == 'javascriptreact'
 692    let b:FiletypeIcon = ' '
 693    
 694    elseif &filetype == 'markdown'
 695    let b:FiletypeIcon = ' '
 696    
 697    elseif &filetype == 'sh' || &filetype == 'zsh'
 698    let b:FiletypeIcon = ' '
 699    
 700    elseif &filetype == 'vim'
 701    let b:FiletypeIcon = ' '
 702    
 703    elseif &filetype == ''
 704    let b:FiletypeIcon = ''
 705    
 706    elseif &filetype == 'rust'
 707    let b:FiletypeIcon = ' '
 708    
 709    elseif &filetype == 'ruby'
 710    let b:FiletypeIcon = ' '
 711    
 712    elseif &filetype == 'cpp'
 713    let b:FiletypeIcon = ' '
 714    
 715    elseif &filetype == 'c'
 716    let b:FiletypeIcon = ' '
 717    
 718    elseif &filetype == 'go'
 719    let b:FiletypeIcon = ' '
 720    
 721    elseif &filetype == 'lua'
 722    let b:FiletypeIcon = ' '
 723    
 724    elseif &filetype == 'haskel'
 725    let b:FiletypeIcon = ' '
 726    
 727    else
 728    let b:FiletypeIcon = '🖊 '
 729    
 730    endif
 731    endfunction
 732    
 733    
 734    
 735    " Get git branch name after entering a buffer
 736    augroup GetGitBranch
 737        autocmd!
 738        autocmd BufEnter * call GetGitBranch()
 739    augroup END
 740    
 741    
 742    " Set active / inactive statusline after entering, leaving buffer
 743    augroup SetStslineline
 744        autocmd!
 745        autocmd BufEnter,WinEnter * call ActivateStatusline()
 746        autocmd BufLeave,WinLeave * call DeactivateStatusline()
 747    augroup END
 748    
 749    " vim: nospell 
───────┴────────────────────────────────────────────────────────────────────────