───────┬──────────────────────────────────────────────────────────────────────── │ 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 ───────┴────────────────────────────────────────────────────────────────────────