Major update. Still wrestling to merge vim and restore order to tmux.
This commit is contained in:
parent
1a8babc862
commit
4e7f957ec3
|
|
@ -1,2 +1,3 @@
|
|||
fish_variables
|
||||
NVIMS/
|
||||
plugged/
|
||||
|
|
|
|||
28
README.md
28
README.md
|
|
@ -12,22 +12,22 @@ To install:
|
|||
sh stow
|
||||
|
||||
|
||||
# Popos
|
||||
# Popos-Gnome
|
||||
In addition to the script-based configuration, I'll do my best to track and document my debian-gnome-popos settings, to make them as reproducable as possible.
|
||||
|
||||
# Keyboard-driven screenshoting
|
||||
T
|
||||
| | | | | |
|
||||
|--------------------------------|-------|------|--------|----------|
|
||||
| Mnemonic | Move | Area | Window | Screen |
|
||||
| Key | Shift | Ctrl | Super | Alt |
|
||||
| Screenshot Window to Clipboard | * | * | * | |
|
||||
| Screenshot Area to Clipboard | * | * | | |
|
||||
| Screenshot Screen to Clipboard | * | | * | |
|
||||
| Screenshot Window to Pictures | | | * | |
|
||||
| Screenshot Area to Clipboard | | * | * | |
|
||||
| Screenshot Screen to Clipboard | | | * | |
|
||||
I used the following mnemonics for shortcuts across my system. I use alt-u as the base for screenshots because function-u is the default print-screen on my keyboard.
|
||||
|
||||
| Key | Shift | Ctrl | Super | Alt |
|
||||
|--------------------------------|-------|-------------|--------|--------|
|
||||
| Mnemonic | Move | Select Area | Window | Screen |
|
||||
|--------------------------------|-------|-------------|--------|--------|
|
||||
| Screenshot Area to Clipboard | * | * | | |
|
||||
| Screenshot Window to Clipboard | * | | * | |
|
||||
| Screenshot Screen to Clipboard | * | | | * |
|
||||
| Screenshot Area to Pictures | | * | | |
|
||||
| Screenshot Window to Pictures | | | * | |
|
||||
| Screenshot Screen to Pictures | | | | * |
|
||||
|
||||
|
||||
[screenshot_keys.png](screenshot_keys.png)
|
||||
(screenshot_keys.png)[screenshot_keys.png](
|
||||

|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Name=flameshot
|
||||
Icon=flameshot
|
||||
Exec=flameshot
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-GNOME-Autostart-enabled=true
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
set aaa_mode=artist
|
||||
set altformat_current= %F
|
||||
set altformat_playlist= %f%= %d
|
||||
set altformat_title=%f
|
||||
set altformat_trackwin= %f%= %d
|
||||
set auto_expand_albums_follow=true
|
||||
set auto_expand_albums_search=true
|
||||
set auto_expand_albums_selcur=true
|
||||
set auto_reshuffle=true
|
||||
set buffer_seconds=10
|
||||
set color_cmdline_attr=default
|
||||
set color_cmdline_bg=default
|
||||
set color_cmdline_fg=default
|
||||
set color_cur_sel_attr=default
|
||||
set color_error=lightred
|
||||
set color_info=lightyellow
|
||||
set color_separator=blue
|
||||
set color_statusline_attr=default
|
||||
set color_statusline_bg=gray
|
||||
set color_statusline_fg=black
|
||||
set color_titleline_attr=default
|
||||
set color_titleline_bg=blue
|
||||
set color_titleline_fg=white
|
||||
set color_trackwin_album_attr=bold
|
||||
set color_trackwin_album_bg=default
|
||||
set color_trackwin_album_fg=default
|
||||
set color_win_attr=default
|
||||
set color_win_bg=default
|
||||
set color_win_cur=lightyellow
|
||||
set color_win_cur_attr=default
|
||||
set color_win_cur_sel_attr=default
|
||||
set color_win_cur_sel_bg=blue
|
||||
set color_win_cur_sel_fg=lightyellow
|
||||
set color_win_dir=lightblue
|
||||
set color_win_fg=default
|
||||
set color_win_inactive_cur_sel_attr=default
|
||||
set color_win_inactive_cur_sel_bg=gray
|
||||
set color_win_inactive_cur_sel_fg=lightyellow
|
||||
set color_win_inactive_sel_attr=default
|
||||
set color_win_inactive_sel_bg=gray
|
||||
set color_win_inactive_sel_fg=black
|
||||
set color_win_sel_attr=default
|
||||
set color_win_sel_bg=blue
|
||||
set color_win_sel_fg=white
|
||||
set color_win_title_attr=default
|
||||
set color_win_title_bg=blue
|
||||
set color_win_title_fg=white
|
||||
set confirm_run=true
|
||||
set continue=true
|
||||
set device=/dev/cdrom
|
||||
set display_artist_sort_name=false
|
||||
set dsp.alsa.device=
|
||||
set dsp.ao.buffer_size=16384
|
||||
set dsp.ao.device_interface=
|
||||
set dsp.ao.driver=
|
||||
set dsp.ao.wav_counter=1
|
||||
set dsp.ao.wav_dir=/home/ygg
|
||||
set dsp.jack.resampling_quality=2
|
||||
set dsp.jack.server_name=
|
||||
set follow=false
|
||||
set format_current= %a - %l -%3n. %t%= %y
|
||||
set format_playlist= %-21%a %3n. %t%= %y %d %{?X!=0?%3X ? }
|
||||
set format_playlist_va= %-21%A %3n. %t (%a)%= %y %d %{?X!=0?%3X ? }
|
||||
set format_statusline= %{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }}- %{total} %{?bpm>0?at %{bpm} BPM }%{?volume>=0?vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle}
|
||||
set format_title=%a - %l - %t (%y)
|
||||
set format_trackwin=%3n. %t%= %y %d
|
||||
set format_trackwin_album= %l %= %{albumduration}
|
||||
set format_trackwin_va=%3n. %t (%a)%= %y %d
|
||||
set format_treewin= %l
|
||||
set format_treewin_artist=%a
|
||||
set icecast_default_charset=ISO-8859-1
|
||||
set id3_default_charset=ISO-8859-1
|
||||
set input.aac.priority=50
|
||||
set input.cdio.cddb_url=freedb.freedb.org:8880
|
||||
set input.cdio.priority=50
|
||||
set input.cue.priority=50
|
||||
set input.ffmpeg.priority=30
|
||||
set input.flac.priority=50
|
||||
set input.mad.priority=55
|
||||
set input.modplug.priority=50
|
||||
set input.mpc.priority=50
|
||||
set input.opus.priority=50
|
||||
set input.vorbis.priority=50
|
||||
set input.wav.priority=50
|
||||
set input.wavpack.priority=50
|
||||
set lib_add_filter=
|
||||
set lib_sort=albumartist date album discnumber tracknumber title filename play_count
|
||||
set mixer.alsa.channel=
|
||||
set mixer.alsa.device=
|
||||
set mixer.pulse.restore_volume=1
|
||||
set mouse=false
|
||||
set mpris=true
|
||||
set output_plugin=pulse
|
||||
set passwd=pop-os
|
||||
set pl_sort=
|
||||
set play_library=true
|
||||
set play_sorted=false
|
||||
set repeat=true
|
||||
set repeat_current=false
|
||||
set replaygain=disabled
|
||||
set replaygain_limit=true
|
||||
set replaygain_preamp=0.000000
|
||||
set resume=false
|
||||
set rewind_offset=5
|
||||
set scroll_offset=2
|
||||
set set_term_title=true
|
||||
set show_all_tracks=true
|
||||
set show_current_bitrate=false
|
||||
set show_hidden=false
|
||||
set show_playback_position=true
|
||||
set show_remaining_time=false
|
||||
set shuffle=false
|
||||
set skip_track_info=false
|
||||
set smart_artist_sort=true
|
||||
set softvol=false
|
||||
set softvol_state=0 0
|
||||
set start_view=tree
|
||||
set status_display_program=
|
||||
set time_show_leading_zero=true
|
||||
set wrap_search=true
|
||||
bind browser backspace browser-up
|
||||
bind browser i toggle show_hidden
|
||||
bind browser space win-activate
|
||||
bind browser u win-update
|
||||
bind common ! push shell
|
||||
bind common + vol +10%
|
||||
bind common , seek -1m
|
||||
bind common - vol -10%
|
||||
bind common . seek +1m
|
||||
bind common / search-start
|
||||
bind common 1 view tree
|
||||
bind common 2 view sorted
|
||||
bind common 3 view playlist
|
||||
bind common 4 view queue
|
||||
bind common 5 view browser
|
||||
bind common 6 view filters
|
||||
bind common 7 view settings
|
||||
bind common = vol +10%
|
||||
bind common ? search-b-start
|
||||
bind common C toggle continue
|
||||
bind common D win-remove
|
||||
bind common E win-add-Q
|
||||
bind common F push filter
|
||||
bind common G win-bottom
|
||||
bind common I echo {}
|
||||
bind common L push live-filter
|
||||
bind common M toggle play_library
|
||||
bind common N search-prev
|
||||
bind common P win-mv-before
|
||||
bind common U win-update-cache
|
||||
bind common [ vol +1% +0
|
||||
bind common ] vol +0 +1%
|
||||
bind common ^B win-page-up
|
||||
bind common ^C echo Type :quit<enter> to exit cmus.
|
||||
bind common ^D win-half-page-down
|
||||
bind common ^E win-scroll-down
|
||||
bind common ^F win-page-down
|
||||
bind common ^L refresh
|
||||
bind common ^N pl-create
|
||||
bind common ^R toggle repeat_current
|
||||
bind common ^U win-half-page-up
|
||||
bind common ^Y win-scroll-up
|
||||
bind common a win-add-l
|
||||
bind common b player-next
|
||||
bind common c player-pause
|
||||
bind common delete win-remove
|
||||
bind common down win-down
|
||||
bind common e win-add-q
|
||||
bind common end win-bottom
|
||||
bind common enter win-activate
|
||||
bind common f toggle follow
|
||||
bind common g win-top
|
||||
bind common h seek -5
|
||||
bind common home win-top
|
||||
bind common i win-sel-cur
|
||||
bind common j win-down
|
||||
bind common k win-up
|
||||
bind common l seek +5
|
||||
bind common left seek -5
|
||||
bind common m toggle aaa_mode
|
||||
bind common mlb_click_selected win-activate
|
||||
bind common mouse_scroll_down win-down
|
||||
bind common mouse_scroll_up win-up
|
||||
bind common n search-next
|
||||
bind common o toggle play_sorted
|
||||
bind common p win-mv-after
|
||||
bind common page_down win-page-down
|
||||
bind common page_up win-page-up
|
||||
bind common q quit -i
|
||||
bind common r toggle repeat
|
||||
bind common right seek +5
|
||||
bind common s toggle shuffle
|
||||
bind common space win-toggle
|
||||
bind common t toggle show_remaining_time
|
||||
bind common tab win-next
|
||||
bind common u update-cache
|
||||
bind common up win-up
|
||||
bind common v player-stop
|
||||
bind common x player-play
|
||||
bind common y win-add-p
|
||||
bind common z player-prev
|
||||
bind common { vol -1% -0
|
||||
bind common } vol -0 -1%
|
||||
fset 90s=date>=1990&date<2000
|
||||
fset classical=genre="Classical"
|
||||
fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1)
|
||||
fset mp3=filename="*.mp3"
|
||||
fset ogg=filename="*.ogg"
|
||||
fset ogg-or-mp3=ogg|mp3
|
||||
fset unheard=play_count=0
|
||||
factivate
|
||||
Binary file not shown.
|
|
@ -1,15 +0,0 @@
|
|||
quit
|
||||
q
|
||||
host
|
||||
set passwd=pop-os
|
||||
pl-rename LadyZenaida
|
||||
pl-rename my-playlist LadyZenaida
|
||||
bind -f common ^N pl-create
|
||||
bind -f common pl-create
|
||||
bind common <key> pl-rename
|
||||
pl-create my-playlist
|
||||
bind common ^N pl-create
|
||||
bind common <key> pl-create ^N
|
||||
bind common <key> pl-create
|
||||
bind common <key> bind
|
||||
save
|
||||
|
|
@ -1,136 +0,0 @@
|
|||
/home/ygg/Music/1 Hour of the Best Professor Layton Music (Part 2)--g53oLQgmN8.opus
|
||||
/home/ygg/Music/Animals of The Earth Vol.1 (Ethnotronic, World, Ethnic, Tribal, folktronica, Acoustic, Chill Out)-bWrNxOA5NI4.opus
|
||||
/home/ygg/Music/a storm of songs _ zelda ost + thunderstorm ambience-3FzJHsri8Zw.opus
|
||||
/home/ygg/Music/Avatar - The Last Airbender Theme _ EPIC VERSION-6N9SS6L0TDU.opus
|
||||
/home/ygg/Music/'Back To The 80's' _ Best of Synthwave And Retro Electro Music Mix for 1 Hour _ Vol. 16-XI5Bvplb7pQ.opus
|
||||
/home/ygg/Music/Beautiful & Relaxing The Legend of Zelda Music-DM8gE6EMwhE.opus
|
||||
/home/ygg/Music/Best Drum & Bass Mix 2020 (Melodic_Liquid Drum and Bass)-7j4WQ5qOBZY.opus
|
||||
/home/ygg/Music/Buddha Deep Club (Compiled by Salvo Migliorini)-l1slyzGQ1yc.opus
|
||||
/home/ygg/Music/Burning Man 2015 Deep Tunes for Deep playa Vol5-A-jUKBd0zF4.opus
|
||||
/home/ygg/Music/Camo & Krooked - Loa-kYfua2wRajY.opus
|
||||
/home/ygg/Music/Carbon Based Lifeforms - Derelicts _ Full Album-5o_uF1L5l6o.mkv
|
||||
/home/ygg/Music/Carbon Based Lifeforms - Derelicts _ Full Album-5o_uF1L5l6o.opus
|
||||
/home/ygg/Music/CharlestheFirst - Out of the Dark (45 Minutes of Original Music)-fhpA9Mp9_xc.webm
|
||||
/home/ygg/Music/Charlotte de Witte ‘New Form’ Livestream-3cOOu52n26c.opus
|
||||
/home/ygg/Music/Chill Out Music Mix 🌷 Best Chill Trap, Indie, Deep House ♫-rj73lCWeZQw.opus
|
||||
/home/ygg/Music/CloZee 4_26_2020 Full Set-5_rlxHXY0pI.mp3
|
||||
/home/ygg/Music/CloZee - Lollapalooza 2020 Set-j48gxPylyqo.opus
|
||||
/home/ygg/Music/Cosmic Flux - Psychill, PsyTrance, Psybient Mix-grWRSyptTnk.opus
|
||||
/home/ygg/Music/Creative Music vol 01 - Dwarves of the First Age-GNwv4cH-i5k.opus
|
||||
/home/ygg/Music/Entheogenic - Animism [2020] (Full Album Tryptology Mixtape)-oDlxH2Jl3rs.opus
|
||||
/home/ygg/Music/Fantasy Bard_Tavern Music Compilation-wLlovxa3VJ0.opus
|
||||
/home/ygg/Music/Fernanda Pistelli @ Garden Sessions for 5uinto-DokOdAjPtLw.m4a
|
||||
/home/ygg/Music/Final Fantasy ~ Jazz _ Brass Mix-7nI8Xuy363k.opus
|
||||
/home/ygg/Music/Final Fantasy VIII - Complete Soundtrack-X6kAwpgW29M.opus
|
||||
/home/ygg/Music/Flamingo’s healing journey-dN0uIGVi04U.opus
|
||||
/home/ygg/Music/Full Hour of Avatar the Last Airbender and Korra Amazing Soundtracks!--_727Gt43xE.opus
|
||||
/home/ygg/Music/Ghost of Me A Chill Trap and Future Bass Mix-7hpHZGOaNs0.opus
|
||||
/home/ygg/Music/Globular & Geoglyph - Messages From The Resonator (Psychedelic Dub _ World Music)-Nq6M_Lod9RQ.mp3
|
||||
/home/ygg/Music/Indie_Pop_Folk Compilation - August 2020 (1½-Hour Playlist)-pNfhQsMeIP4.opus
|
||||
/home/ygg/Music/Jackson Lewis - Found In Love (Mose, San Miguel & more Remixes) [Folktronica]-hBDQ2FSRxnA.opus
|
||||
/home/ygg/Music/Jakare - Apu (EP Mix) [Folktronica _ Downtempo]-c6rkYrwudww.opus
|
||||
/home/ygg/Music/Jakare - Schizophonia (EP Mix) [Folktronica _ Shamanic Downtempo]-yFv6t9_-_24.f251.webm
|
||||
/home/ygg/Music/Jakare - Schizophonia (EP Mix) [Folktronica _ Shamanic Downtempo]-yFv6t9_-_24.opus
|
||||
/home/ygg/Music/Jakare - Schizophonia (EP Mix) [Folktronica _ Shamanic Downtempo]-yFv6t9_-_24.webm
|
||||
/home/ygg/Music/Jules Urbach explains OTOY's real-time graphics rendering-sCLFaoDhQPU.m4a
|
||||
/home/ygg/Music/Kingdom Hearts 2 OST Collection-d7b-cpSpS9A.opus
|
||||
/home/ygg/Music/Leaves From The Vine (Little Soldier Boy) _ CINEMATIC ORCHESTRAL VERSION 🍃-vu9Bl4ZMOd0.opus
|
||||
/home/ygg/Music/Lee Jones - A Perfect Kick (Matthias Meyer Remix)-XtriEg3neSg.opus
|
||||
/home/ygg/Music/Liquid Bloom - Live @ Chill Out Gardens - Boom Festival 2018-uiYk1d9jL_w.opus
|
||||
/home/ygg/Music/Moontricks - Home-BhAyt7g5tNs.opus
|
||||
/home/ygg/Music/Mose - Cacao Dance @ Eagles Nest Atitlán-wKI-ngRQJ90.opus
|
||||
/home/ygg/Music/NUMA - Fuego Sagrado (Mix) [Folktronica _ Tribal Downtempo _ Shamanic]-BKPQ_S71poE.opus
|
||||
/home/ygg/Music/Ollie Mundy - Come Down with Me - The Full Moon Mix-X-KbDIfiRoI.opus
|
||||
/home/ygg/Music/Relaxing and Emotional Zelda Music Mix (2020)-imO26FzxRro.opus
|
||||
/home/ygg/Music/Relaxing The Legend of Zelda Jazz Covers--4OxmD4AocU.opus
|
||||
/home/ygg/Music/Relaxing The Legend of Zelda - The Wind Waker Music-0r12JCTpEt0.opus
|
||||
/home/ygg/Music/Sahalé - Djiin (6 hours)-nIsrrgF-xGE.opus
|
||||
/home/ygg/Music/Sanctuary _ Chillstep Mix-0CDbtwIiW3A.opus
|
||||
/home/ygg/Music/Seba - Painted Skies (Parallax Extended Remix)-zswXWHqzFkM.opus
|
||||
/home/ygg/Music/Tales Of Symphonia Complete Soundtrack-o_PCgbplpj4.opus
|
||||
/home/ygg/Music/The Last Agni Kai - Avatar the Last Airbender - One Hour-bLkQU60B-IA.opus
|
||||
/home/ygg/Music/tribe_vibe/Brian Cid - Margarette (Buddha Bar by Armen Miran & Ravin 2017) (Original Mix)-oK-vkCEiwOI.mp3
|
||||
/home/ygg/Music/tribe_vibe/Deya Dova - Return Of The Bird Tribes (saQi Remix)-DwT59_MfvyU.mp3
|
||||
/home/ygg/Music/tribe_vibe/Ethnic Deep House Vol#10 (Armen Miran _Davi_ Oceanvs Orientalis )-134NlN8tdyc.mp3
|
||||
/home/ygg/Music/tribe_vibe/Gerra G - A Mascara (Rodrigo Gallardo Remix) _ Exotic Refreshment LTD-ch8T2EULjxU.mp3
|
||||
/home/ygg/Music/tribe_vibe/Go Dugong - Vidita (El Búho Remix)-ealqZDkQqXY.mp3
|
||||
/home/ygg/Music/tribe_vibe/Honra (Original)-nDq-r2X9uFI.mp3
|
||||
/home/ygg/Music/tribe_vibe/Ipek Ipekcioglu feat. Petra Nachtmanova - Uyan Uyan _ Kater130-9-ZsLSxWuhw.mp3
|
||||
/home/ygg/Music/tribe_vibe/Jacob Groening, Zigan Aldi - Checkpoint-qKVtqwiRAdQ.mp3
|
||||
/home/ygg/Music/tribe_vibe/Kazuma Akasaki - I Can Find You [Melodic Techno House Mix]-NfOGsZwwdjg.mp3
|
||||
/home/ygg/Music/tribe_vibe/Layne Redmond & Tommy Brunjes - Morrocan Moon-YqmJoiHj8NE.mp3
|
||||
/home/ygg/Music/tribe_vibe/Lee Jones - A Perfect Kick (Matthias Meyer Remix)-XtriEg3neSg.mp3
|
||||
/home/ygg/Music/tribe_vibe/Lee Jones - One Grain-mIAtmjq0jC4.mp3
|
||||
/home/ygg/Music/tribe_vibe/Moontricks - Solar Therapy-u2ltkcGOz_c.mp3
|
||||
/home/ygg/Music/tribe_vibe/Mumbai Madness-bzXgX_V0Q0Y.mp3
|
||||
/home/ygg/Music/tribe_vibe/NenaHelena - La Ka Ruba Ft. Akil [E008]-amj-LmHyGXM.mp3
|
||||
/home/ygg/Music/tribe_vibe/Nostalgia (Extended)-L-3sPvjaUzM.mp3
|
||||
/home/ygg/Music/tribe_vibe/Oceanvs Orientalis - Khronos (Full EP)-mDGCSZ8VTuw.mp3
|
||||
/home/ygg/Music/tribe_vibe/Peter Power - Sun Sun Damba [Multi Culti]-aRC_7AE8DhI.mp3
|
||||
/home/ygg/Music/tribe_vibe/Raz Ohara - El Zahir (Original Mix)-wKDmzUYKV9Q.mp3
|
||||
/home/ygg/Music/tribe_vibe/Reaching Rujum-mYM4hasoo4o.mp3
|
||||
/home/ygg/Music/tribe_vibe/Rej Senhor (Original Version)-fBkVbYDLJDM.mp3
|
||||
/home/ygg/Music/tribe_vibe/Roots of Wisdom (Original)-e8luC8BR9i8.mp3
|
||||
/home/ygg/Music/tribe_vibe/Satori (NL) feat. Miou Amadée - Days Without You (Crussen Remix)-qFMEKS0ZWn0.mp3
|
||||
/home/ygg/Music/tribe_vibe/Theme For Namgar (Crussen Edit)-5oHPgSuKLZo.mp3
|
||||
/home/ygg/Music/tribe_vibe/Timboletti - Helva Selva (feat. Ziski & Pophop Remix)-pAcFzVFzjKs.mp3
|
||||
/home/ygg/Music/tribe_vibe/Traumer - Classroom-fyKY3tfyAVY.mp3
|
||||
/home/ygg/Music/tribe_vibe/Unspoken Word (Intro)-ePayp_lvzV8.mp3
|
||||
/home/ygg/Music/tribe_vibe/Vesaire-lLFYPPGcG-Q.mp3
|
||||
/home/ygg/Music/tribe_vibe/Vidita Ft. Miriam García (El Buho Remix)-o2TgDfnPmZI.mp3
|
||||
/home/ygg/Music/tribe_vibe/War Cry-J2sZUeasZkY.mp3
|
||||
/home/ygg/Music/tribe_vibe/Yet Another Day Thinking About You-zEOe-ckZjJc.mp3
|
||||
/home/ygg/Music/tribe_vibe/YokoO - Yet Another Day Thinking About You feat JoKe & Mauve [ADIDA001]-xOss6oP8xiY.mp3
|
||||
/home/ygg/Music/Xenia - Live @ Radio Intense Kyiv 7.4.2020 _ Techno Mix-r3DMXRWcmCI.opus
|
||||
/home/ygg/Music/yoga/Grounding Into Gratitude - Root Chakra Yoga - Yoga With Adriene-0pbuvhbg7po.f251.webm
|
||||
/home/ygg/Music/yoga/Grounding Into Gratitude - Root Chakra Yoga - Yoga With Adriene-0pbuvhbg7po.mkv
|
||||
/home/ygg/Music/yoga/Grounding Into Gratitude - Root Chakra Yoga - Yoga With Adriene-0pbuvhbg7po.opus
|
||||
/home/ygg/Music/yoga/Grounding Root Chakra Guided Meditation - Stress Relief Meditation _ Chakra Challenge-cX6b6v1k0QQ.opus
|
||||
/home/ygg/Music/Zelda Music To Relax_Study_Work_Game-W5AZeNGB6Ds.opus
|
||||
/home/ygg/Music/Zelda Ocarina of Time - MASSIVE MEDLEY! - Super Guitar Bros-NFw-FrYmAEw.opus
|
||||
/home/ygg/Music/zenaida/audio/Born this way cover - lady Zenaida-vrUs96lg_oA.m4a
|
||||
/home/ygg/Music/zenaida/audio/“Clean up the Ocean” DNCE re-write cover-yeTdj45wbLo.m4a
|
||||
/home/ygg/Music/zenaida/audio/Dream a little Dream - DIY Bee Condo-wgF-lzB_lSQ.m4a
|
||||
/home/ygg/Music/zenaida/audio/'Friend Like Me' Cover - Lady Zenaida-eHK-u1-nLq8.opus
|
||||
/home/ygg/Music/zenaida/audio/Lady Zenaida « Everybody wants to be a Cat » Cover-PazfkBSaubI.m4a
|
||||
/home/ygg/Music/zenaida/Born this way cover - lady Zenaida-vrUs96lg_oA.m4a
|
||||
/home/ygg/Music/zenaida/Zenaida_FB_Altspace_Concert_10000000_249474506347465_7360425835515086942_n.mp4
|
||||
/home/ygg/Music/zenaida/Zenaida_FB_Altspace_Concert_10000000_335146147822030_4963841038274551466_n.mp4
|
||||
/home/ygg/Music/654-BitcoinIsPsychedelic.mp3
|
||||
/home/ygg/Music/Summer Firefly feat. Deepakalypse (Prod. Stephan Jacobs).mp3
|
||||
/home/ygg/Music/Electro House 2016 Best Festival Party Video Mix. New EDM, Dance Charts Songs. Club Music Remix.mp3
|
||||
/home/ygg/Music/zenaida/audio/Humanite Uni Toi - demo.mp3
|
||||
/home/ygg/Music/zenaida/Humanite Uni Toi - demo.mp3
|
||||
/home/ygg/Music/zenaida/audio/Rainbow Warriors -Demo.mp3
|
||||
/home/ygg/Music/zenaida/Rainbow Warriors -Demo.mp3
|
||||
/home/ygg/Music/zenaida/audio/Save Me From Myself.mp3
|
||||
/home/ygg/Music/zenaida/Save Me From Myself.mp3
|
||||
/home/ygg/Music/zenaida/audio/Mastered- Let It Go -Lady ZenAida.mp3
|
||||
/home/ygg/Music/zenaida/Mastered- Let It Go -Lady ZenAida.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 1 Ethan Buchman.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 2 John Henry Clippinger.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 3 Chris Goes.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 4 Daniel Christian Wahl.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 5 Jack Zampolin.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 6 Delton Chen.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 7 Dan Mapes.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 8 Martin Wainstein.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Current Events Special with Rhamis Kent.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 10 Cosmuhammad Bitcoin Jaesustein.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 11 David McConville and Dawn Danby.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 12 Joe Brewer.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 13 Amanda Joy Ravenhill.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 14 John Henry Clippinger (Encore).mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 15 Coronavirus Special.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 16 Loren Cardeli.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 17 Dr. Dorn Cox.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 18 Larry Kopald.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 19 Tom Newmark.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 20 Michel Bauwens.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 21 Frank Van Gansbeke.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 23 Jim Rutt.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 24 Wenzl McGowen.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 25 Jeff Emmett.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 26 Shaun Conway.mp3
|
||||
/home/ygg/Music/PlanetaryRegenerationPodcast/Planetary Regeneration Podcast Episode 9 Neal Spackman.mp3
|
||||
/home/ygg/Music/VibeSquaD-and-ProjectAspect-LITTLE-DAB (2013).mp3
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
/home/ygg/Music/zenaida/Born this way cover - lady Zenaida-vrUs96lg_oA.m4a
|
||||
/home/ygg/Music/zenaida/Humanite Uni Toi - demo.mp3
|
||||
/home/ygg/Music/zenaida/Rainbow Warriors -Demo.mp3
|
||||
/home/ygg/Music/zenaida/Save Me From Myself.mp3
|
||||
/home/ygg/Music/zenaida/Mastered- Let It Go -Lady ZenAida.mp3
|
||||
/home/ygg/Music/zenaida/audio/Born this way cover - lady Zenaida-vrUs96lg_oA.m4a
|
||||
/home/ygg/Music/zenaida/audio/“Clean up the Ocean” DNCE re-write cover-yeTdj45wbLo.m4a
|
||||
/home/ygg/Music/zenaida/audio/Dream a little Dream - DIY Bee Condo-wgF-lzB_lSQ.m4a
|
||||
/home/ygg/Music/zenaida/audio/'Friend Like Me' Cover - Lady Zenaida-eHK-u1-nLq8.opus
|
||||
/home/ygg/Music/zenaida/audio/Lady Zenaida « Everybody wants to be a Cat » Cover-PazfkBSaubI.m4a
|
||||
/home/ygg/Music/zenaida/Born this way cover - lady Zenaida-vrUs96lg_oA.m4a
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
/home/ygg/Music/Kingdom Hearts 2 OST Collection-d7b-cpSpS9A.opus
|
||||
/home/ygg/Music/Final Fantasy VIII - Complete Soundtrack-X6kAwpgW29M.opus
|
||||
/home/ygg/Music/Final Fantasy VIII - Complete Soundtrack-X6kAwpgW29M.opus
|
||||
/home/ygg/Music/Final Fantasy ~ Jazz _ Brass Mix-7nI8Xuy363k.opus
|
||||
/home/ygg/Music/Lee Jones - A Perfect Kick (Matthias Meyer Remix)-XtriEg3neSg.opus
|
||||
/home/ygg/Music/tribe_vibe/Brian Cid - Margarette (Buddha Bar by Armen Miran & Ravin 2017) (Original Mix)-oK-vkCEiwOI.mp3
|
||||
/home/ygg/Music/tribe_vibe/Deya Dova - Return Of The Bird Tribes (saQi Remix)-DwT59_MfvyU.mp3
|
||||
/home/ygg/Music/tribe_vibe/Ethnic Deep House Vol#10 (Armen Miran _Davi_ Oceanvs Orientalis )-134NlN8tdyc.mp3
|
||||
/home/ygg/Music/tribe_vibe/Gerra G - A Mascara (Rodrigo Gallardo Remix) _ Exotic Refreshment LTD-ch8T2EULjxU.mp3
|
||||
/home/ygg/Music/tribe_vibe/Go Dugong - Vidita (El Búho Remix)-ealqZDkQqXY.mp3
|
||||
/home/ygg/Music/tribe_vibe/Honra (Original)-nDq-r2X9uFI.mp3
|
||||
/home/ygg/Music/tribe_vibe/Ipek Ipekcioglu feat. Petra Nachtmanova - Uyan Uyan _ Kater130-9-ZsLSxWuhw.mp3
|
||||
/home/ygg/Music/tribe_vibe/Jacob Groening, Zigan Aldi - Checkpoint-qKVtqwiRAdQ.mp3
|
||||
/home/ygg/Music/tribe_vibe/Kazuma Akasaki - I Can Find You [Melodic Techno House Mix]-NfOGsZwwdjg.mp3
|
||||
/home/ygg/Music/tribe_vibe/Layne Redmond & Tommy Brunjes - Morrocan Moon-YqmJoiHj8NE.mp3
|
||||
/home/ygg/Music/tribe_vibe/Lee Jones - A Perfect Kick (Matthias Meyer Remix)-XtriEg3neSg.mp3
|
||||
/home/ygg/Music/tribe_vibe/Lee Jones - One Grain-mIAtmjq0jC4.mp3
|
||||
/home/ygg/Music/tribe_vibe/Moontricks - Solar Therapy-u2ltkcGOz_c.mp3
|
||||
/home/ygg/Music/tribe_vibe/Mumbai Madness-bzXgX_V0Q0Y.mp3
|
||||
/home/ygg/Music/tribe_vibe/NenaHelena - La Ka Ruba Ft. Akil [E008]-amj-LmHyGXM.mp3
|
||||
/home/ygg/Music/tribe_vibe/Nostalgia (Extended)-L-3sPvjaUzM.mp3
|
||||
/home/ygg/Music/tribe_vibe/Oceanvs Orientalis - Khronos (Full EP)-mDGCSZ8VTuw.mp3
|
||||
/home/ygg/Music/tribe_vibe/Peter Power - Sun Sun Damba [Multi Culti]-aRC_7AE8DhI.mp3
|
||||
/home/ygg/Music/tribe_vibe/Raz Ohara - El Zahir (Original Mix)-wKDmzUYKV9Q.mp3
|
||||
/home/ygg/Music/tribe_vibe/Reaching Rujum-mYM4hasoo4o.mp3
|
||||
/home/ygg/Music/tribe_vibe/Rej Senhor (Original Version)-fBkVbYDLJDM.mp3
|
||||
/home/ygg/Music/tribe_vibe/Roots of Wisdom (Original)-e8luC8BR9i8.mp3
|
||||
/home/ygg/Music/tribe_vibe/Satori (NL) feat. Miou Amadée - Days Without You (Crussen Remix)-qFMEKS0ZWn0.mp3
|
||||
/home/ygg/Music/tribe_vibe/Theme For Namgar (Crussen Edit)-5oHPgSuKLZo.mp3
|
||||
/home/ygg/Music/tribe_vibe/Timboletti - Helva Selva (feat. Ziski & Pophop Remix)-pAcFzVFzjKs.mp3
|
||||
/home/ygg/Music/tribe_vibe/Traumer - Classroom-fyKY3tfyAVY.mp3
|
||||
/home/ygg/Music/tribe_vibe/Unspoken Word (Intro)-ePayp_lvzV8.mp3
|
||||
/home/ygg/Music/tribe_vibe/Vesaire-lLFYPPGcG-Q.mp3
|
||||
/home/ygg/Music/tribe_vibe/Vidita Ft. Miriam García (El Buho Remix)-o2TgDfnPmZI.mp3
|
||||
/home/ygg/Music/tribe_vibe/War Cry-J2sZUeasZkY.mp3
|
||||
/home/ygg/Music/tribe_vibe/Yet Another Day Thinking About You-zEOe-ckZjJc.mp3
|
||||
/home/ygg/Music/tribe_vibe/YokoO - Yet Another Day Thinking About You feat JoKe & Mauve [ADIDA001]-xOss6oP8xiY.mp3
|
||||
/home/ygg/Music/Xenia - Live @ Radio Intense Kyiv 7.4.2020 _ Techno Mix-r3DMXRWcmCI.opus
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
final
|
||||
alt
|
||||
altspace
|
||||
zenaida
|
||||
z
|
||||
musi
|
||||
zen
|
||||
mu
|
||||
live
|
||||
edit
|
||||
track
|
||||
renam
|
||||
view
|
||||
move
|
||||
cent
|
||||
zenaid
|
||||
pl-c
|
||||
pl
|
||||
vol
|
||||
N
|
||||
create
|
||||
cre
|
||||
playl
|
||||
new
|
||||
lady
|
||||
let it go
|
||||
zena
|
||||
born t
|
||||
kick
|
||||
step
|
||||
good
|
||||
foot
|
||||
final fant
|
||||
tribe
|
||||
lee
|
||||
jon
|
||||
perf
|
||||
perfec
|
||||
seba
|
||||
fina
|
||||
kingdom
|
||||
sah
|
||||
zelda
|
||||
|
|
@ -0,0 +1,284 @@
|
|||
" Vim syntax file
|
||||
" Language: C Additions
|
||||
" Maintainer: Mikhail Wolfson <mywolfson@gmail.com>
|
||||
" URL: http://web.mit.edu/wolfsonm
|
||||
" Last Change: 2010 Dec. 3
|
||||
" Version: 0.4
|
||||
"
|
||||
" Changelog:
|
||||
" 0.4 - updates and fixes to cDelimiter to fix break with foldmethod=syntax,
|
||||
" entirely suggested and solved by Ivan Freitas
|
||||
" <ivansichfreitas@gmail.com>
|
||||
" 0.3 - updates and fixes to cUserFunctionPointer, thanks to
|
||||
" Alexei <lxmzhv@gmail.com>
|
||||
" 0.2 - change [] to operator
|
||||
" 0.1 - initial upload, modification from vimscript#1201, Extended c.vim
|
||||
|
||||
|
||||
" Common ANSI-standard functions
|
||||
syn keyword cAnsiFunction MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_
|
||||
syn keyword cAnsiFunction main typeof
|
||||
syn keyword cAnsiFunction open close read write lseek dup dup2
|
||||
syn keyword cAnsiFunction fcntl ioctl
|
||||
syn keyword cAnsiFunction wctrans towctrans towupper
|
||||
syn keyword cAnsiFunction towlower wctype iswctype
|
||||
syn keyword cAnsiFunction iswxdigit iswupper iswspace
|
||||
syn keyword cAnsiFunction iswpunct iswprint iswlower
|
||||
syn keyword cAnsiFunction iswgraph iswdigit iswcntrl
|
||||
syn keyword cAnsiFunction iswalpha iswalnum wcsrtombs
|
||||
syn keyword cAnsiFunction mbsrtowcs wcrtomb mbrtowc
|
||||
syn keyword cAnsiFunction mbrlen mbsinit wctob
|
||||
syn keyword cAnsiFunction btowc wcsfxtime wcsftime
|
||||
syn keyword cAnsiFunction wmemset wmemmove wmemcpy
|
||||
syn keyword cAnsiFunction wmemcmp wmemchr wcstok
|
||||
syn keyword cAnsiFunction wcsstr wcsspn wcsrchr
|
||||
syn keyword cAnsiFunction wcspbrk wcslen wcscspn
|
||||
syn keyword cAnsiFunction wcschr wcsxfrm wcsncmp
|
||||
syn keyword cAnsiFunction wcscoll wcscmp wcsncat
|
||||
syn keyword cAnsiFunction wcscat wcsncpy wcscpy
|
||||
syn keyword cAnsiFunction wcstoull wcstoul wcstoll
|
||||
syn keyword cAnsiFunction wcstol wcstold wcstof
|
||||
syn keyword cAnsiFunction wcstod ungetwc putwchar
|
||||
syn keyword cAnsiFunction putwc getwchar getwc
|
||||
syn keyword cAnsiFunction fwide fputws fputwc
|
||||
syn keyword cAnsiFunction fgetws fgetwc wscanf
|
||||
syn keyword cAnsiFunction wprintf vwscanf vwprintf
|
||||
syn keyword cAnsiFunction vswscanf vswprintf vfwscanf
|
||||
syn keyword cAnsiFunction vfwprintf swscanf swprintf
|
||||
syn keyword cAnsiFunction fwscanf fwprintf zonetime
|
||||
syn keyword cAnsiFunction strfxtime strftime localtime
|
||||
syn keyword cAnsiFunction gmtime ctime asctime
|
||||
syn keyword cAnsiFunction time mkxtime mktime
|
||||
syn keyword cAnsiFunction difftime clock strlen
|
||||
syn keyword cAnsiFunction strerror memset strtok
|
||||
syn keyword cAnsiFunction strstr strspn strrchr
|
||||
syn keyword cAnsiFunction strpbrk strcspn strchr
|
||||
syn keyword cAnsiFunction memchr strxfrm strncmp
|
||||
syn keyword cAnsiFunction strcoll strcmp memcmp
|
||||
syn keyword cAnsiFunction strncat strcat strncpy
|
||||
syn keyword cAnsiFunction strcpy memmove memcpy
|
||||
syn keyword cAnsiFunction wcstombs mbstowcs wctomb
|
||||
syn keyword cAnsiFunction mbtowc mblen lldiv
|
||||
syn keyword cAnsiFunction ldiv div llabs
|
||||
syn keyword cAnsiFunction labs abs qsort
|
||||
syn keyword cAnsiFunction bsearch system getenv
|
||||
syn keyword cAnsiFunction exit atexit abort
|
||||
syn keyword cAnsiFunction realloc malloc free
|
||||
syn keyword cAnsiFunction calloc srand rand
|
||||
syn keyword cAnsiFunction strtoull strtoul strtoll
|
||||
syn keyword cAnsiFunction strtol strtold strtof
|
||||
syn keyword cAnsiFunction strtod atoll atol
|
||||
syn keyword cAnsiFunction atoi atof perror
|
||||
syn keyword cAnsiFunction ferror feof clearerr
|
||||
syn keyword cAnsiFunction rewind ftell fsetpos
|
||||
syn keyword cAnsiFunction fseek fgetpos fwrite
|
||||
syn keyword cAnsiFunction fread ungetc puts
|
||||
syn keyword cAnsiFunction putchar putc gets
|
||||
syn keyword cAnsiFunction getchar getc fputs
|
||||
syn keyword cAnsiFunction fputc fgets fgetc
|
||||
syn keyword cAnsiFunction vsscanf vsprintf vsnprintf
|
||||
syn keyword cAnsiFunction vscanf vprintf vfscanf
|
||||
syn keyword cAnsiFunction vfprintf sscanf sprintf
|
||||
syn keyword cAnsiFunction snprintf scanf printf
|
||||
syn keyword cAnsiFunction fscanf fprintf setvbuf
|
||||
syn keyword cAnsiFunction setbuf freopen fopen
|
||||
syn keyword cAnsiFunction fflush fclose tmpnam
|
||||
syn keyword cAnsiFunction tmpfile rename remove
|
||||
syn keyword cAnsiFunction offsetof va_start va_end
|
||||
syn keyword cAnsiFunction va_copy va_arg raise signal
|
||||
syn keyword cAnsiFunction longjmp setjmp isunordered
|
||||
syn keyword cAnsiFunction islessgreater islessequal isless
|
||||
syn keyword cAnsiFunction isgreaterequal isgreater fmal
|
||||
syn keyword cAnsiFunction fmaf fma fminl
|
||||
syn keyword cAnsiFunction fminf fmin fmaxl
|
||||
syn keyword cAnsiFunction fmaxf fmax fdiml
|
||||
syn keyword cAnsiFunction fdimf fdim nextafterxl
|
||||
syn keyword cAnsiFunction nextafterxf nextafterx nextafterl
|
||||
syn keyword cAnsiFunction nextafterf nextafter nanl
|
||||
syn keyword cAnsiFunction nanf nan copysignl
|
||||
syn keyword cAnsiFunction copysignf copysign remquol
|
||||
syn keyword cAnsiFunction remquof remquo remainderl
|
||||
syn keyword cAnsiFunction remainderf remainder fmodl
|
||||
syn keyword cAnsiFunction fmodf fmod truncl
|
||||
syn keyword cAnsiFunction truncf trunc llroundl
|
||||
syn keyword cAnsiFunction llroundf llround lroundl
|
||||
syn keyword cAnsiFunction lroundf lround roundl
|
||||
syn keyword cAnsiFunction roundf round llrintl
|
||||
syn keyword cAnsiFunction llrintf llrint lrintl
|
||||
syn keyword cAnsiFunction lrintf lrint rintl
|
||||
syn keyword cAnsiFunction rintf rint nearbyintl
|
||||
syn keyword cAnsiFunction nearbyintf nearbyint floorl
|
||||
syn keyword cAnsiFunction floorf floor ceill
|
||||
syn keyword cAnsiFunction ceilf ceil tgammal
|
||||
syn keyword cAnsiFunction tgammaf tgamma lgammal
|
||||
syn keyword cAnsiFunction lgammaf lgamma erfcl
|
||||
syn keyword cAnsiFunction erfcf erfc erfl
|
||||
syn keyword cAnsiFunction erff erf sqrtl
|
||||
syn keyword cAnsiFunction sqrtf sqrt powl
|
||||
syn keyword cAnsiFunction powf pow hypotl
|
||||
syn keyword cAnsiFunction hypotf hypot fabsl
|
||||
syn keyword cAnsiFunction fabsf fabs cbrtl
|
||||
syn keyword cAnsiFunction cbrtf cbrt scalblnl
|
||||
syn keyword cAnsiFunction scalblnf scalbln scalbnl
|
||||
syn keyword cAnsiFunction scalbnf scalbn modfl
|
||||
syn keyword cAnsiFunction modff modf logbl
|
||||
syn keyword cAnsiFunction logbf logb log2l
|
||||
syn keyword cAnsiFunction log2f log2 log1pl
|
||||
syn keyword cAnsiFunction log1pf log1p log10l
|
||||
syn keyword cAnsiFunction log10f log10 logl
|
||||
syn keyword cAnsiFunction logf log ldexpl
|
||||
syn keyword cAnsiFunction ldexpf ldexp ilogbl
|
||||
syn keyword cAnsiFunction ilogbf ilogb frexpl
|
||||
syn keyword cAnsiFunction frexpf frexp expm1l
|
||||
syn keyword cAnsiFunction expm1f expm1 exp2l
|
||||
syn keyword cAnsiFunction exp2f exp2 expl
|
||||
syn keyword cAnsiFunction expf exp tanhl
|
||||
syn keyword cAnsiFunction tanhf tanh sinhl
|
||||
syn keyword cAnsiFunction sinhf sinh coshl
|
||||
syn keyword cAnsiFunction coshf cosh atanhl
|
||||
syn keyword cAnsiFunction atanhf atanh asinhl
|
||||
syn keyword cAnsiFunction asinhf asinh acoshl
|
||||
syn keyword cAnsiFunction acoshf acosh tanl
|
||||
syn keyword cAnsiFunction tanf tan sinl
|
||||
syn keyword cAnsiFunction sinf sin cosl
|
||||
syn keyword cAnsiFunction cosf cos atan2l
|
||||
syn keyword cAnsiFunction atan2f atan2 atanl
|
||||
syn keyword cAnsiFunction atanf atan asinl
|
||||
syn keyword cAnsiFunction asinf asin acosl
|
||||
syn keyword cAnsiFunction acosf acos signbit
|
||||
syn keyword cAnsiFunction isnormal isnan isinf
|
||||
syn keyword cAnsiFunction isfinite fpclassify localeconv
|
||||
syn keyword cAnsiFunction setlocale wcstoumax wcstoimax
|
||||
syn keyword cAnsiFunction strtoumax strtoimax feupdateenv
|
||||
syn keyword cAnsiFunction fesetenv feholdexcept fegetenv
|
||||
syn keyword cAnsiFunction fesetround fegetround fetestexcept
|
||||
syn keyword cAnsiFunction fesetexceptflag feraiseexcept fegetexceptflag
|
||||
syn keyword cAnsiFunction feclearexcept toupper tolower
|
||||
syn keyword cAnsiFunction isxdigit isupper isspace
|
||||
syn keyword cAnsiFunction ispunct isprint islower
|
||||
syn keyword cAnsiFunction isgraph isdigit iscntrl
|
||||
syn keyword cAnsiFunction isalpha isalnum creall
|
||||
syn keyword cAnsiFunction crealf creal cprojl
|
||||
syn keyword cAnsiFunction cprojf cproj conjl
|
||||
syn keyword cAnsiFunction conjf conj cimagl
|
||||
syn keyword cAnsiFunction cimagf cimag cargl
|
||||
syn keyword cAnsiFunction cargf carg csqrtl
|
||||
syn keyword cAnsiFunction csqrtf csqrt cpowl
|
||||
syn keyword cAnsiFunction cpowf cpow cabsl
|
||||
syn keyword cAnsiFunction cabsf cabs clogl
|
||||
syn keyword cAnsiFunction clogf clog cexpl
|
||||
syn keyword cAnsiFunction cexpf cexp ctanhl
|
||||
syn keyword cAnsiFunction ctanhf ctanh csinhl
|
||||
syn keyword cAnsiFunction csinhf csinh ccoshl
|
||||
syn keyword cAnsiFunction ccoshf ccosh catanhl
|
||||
syn keyword cAnsiFunction catanhf catanh casinhl
|
||||
syn keyword cAnsiFunction casinhf casinh cacoshl
|
||||
syn keyword cAnsiFunction cacoshf cacosh ctanl
|
||||
syn keyword cAnsiFunction ctanf ctan csinl
|
||||
syn keyword cAnsiFunction csinf csin ccosl
|
||||
syn keyword cAnsiFunction ccosf ccos catanl
|
||||
syn keyword cAnsiFunction catanf catan casinl
|
||||
syn keyword cAnsiFunction casinf casin cacosl
|
||||
syn keyword cAnsiFunction cacosf cacos assert
|
||||
syn keyword cAnsiFunction UINTMAX_C INTMAX_C UINT64_C
|
||||
syn keyword cAnsiFunction UINT32_C UINT16_C UINT8_C
|
||||
syn keyword cAnsiFunction INT64_C INT32_C INT16_C INT8_C
|
||||
|
||||
" Common ANSI-standard Names
|
||||
syn keyword cAnsiName PRId8 PRIi16 PRIo32 PRIu64
|
||||
syn keyword cAnsiName PRId16 PRIi32 PRIo64 PRIuLEAST8
|
||||
syn keyword cAnsiName PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16
|
||||
syn keyword cAnsiName PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32
|
||||
syn keyword cAnsiName PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64
|
||||
syn keyword cAnsiName PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8
|
||||
syn keyword cAnsiName PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16
|
||||
syn keyword cAnsiName PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32
|
||||
syn keyword cAnsiName PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64
|
||||
syn keyword cAnsiName PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX
|
||||
syn keyword cAnsiName PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR
|
||||
syn keyword cAnsiName PRIdFAST64 PRIiMAX PRIoPTR PRIx8
|
||||
syn keyword cAnsiName PRIdMAX PRIiPTR PRIu8 PRIx16
|
||||
syn keyword cAnsiName PRIdPTR PRIo8 PRIu16 PRIx32
|
||||
syn keyword cAnsiName PRIi8 PRIo16 PRIu32 PRIx64
|
||||
|
||||
syn keyword cAnsiName PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32
|
||||
syn keyword cAnsiName PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64
|
||||
syn keyword cAnsiName PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8
|
||||
syn keyword cAnsiName PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16
|
||||
syn keyword cAnsiName PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32
|
||||
syn keyword cAnsiName PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64
|
||||
syn keyword cAnsiName PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX
|
||||
syn keyword cAnsiName PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR
|
||||
syn keyword cAnsiName PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8
|
||||
syn keyword cAnsiName PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16
|
||||
syn keyword cAnsiName PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32
|
||||
syn keyword cAnsiName PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64
|
||||
syn keyword cAnsiName PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8
|
||||
syn keyword cAnsiName PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16
|
||||
syn keyword cAnsiName PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32
|
||||
syn keyword cAnsiName PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64
|
||||
syn keyword cAnsiName PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8
|
||||
syn keyword cAnsiName PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16
|
||||
syn keyword cAnsiName PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32
|
||||
syn keyword cAnsiName PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64
|
||||
syn keyword cAnsiName PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX
|
||||
syn keyword cAnsiName PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR
|
||||
syn keyword cAnsiName PRIXMAX SCNiFAST8 SCNuLEAST8
|
||||
syn keyword cAnsiName PRIXPTR SCNiFAST16 SCNuLEAST16
|
||||
|
||||
syn keyword cAnsiName errno environ
|
||||
|
||||
syn keyword cAnsiName STDC CX_LIMITED_RANGE
|
||||
syn keyword cAnsiName STDC FENV_ACCESS
|
||||
syn keyword cAnsiName STDC FP_CONTRACT
|
||||
|
||||
syn keyword cAnsiName AF_INET SOCK_STREAM INADDR_ANY AF_INET
|
||||
syn keyword cAnsiName SOL_SOCKET SO_REUSEPORT SO_REUSEADDR
|
||||
syn keyword cAnsiName SO_RCVTIMEO IPPROTO_TCP TCP_NODELAY
|
||||
syn keyword cAnsiName SOCK_DGRAM POLLIN
|
||||
|
||||
syn keyword cAnsiName and bitor not_eq xor
|
||||
syn keyword cAnsiName and_eq compl or xor_eq
|
||||
syn keyword cAnsiName bitand not or_eq
|
||||
|
||||
hi def link cAnsiFunction cFunction
|
||||
hi def link cAnsiName cIdentifier
|
||||
|
||||
" Operators
|
||||
syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
|
||||
syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
|
||||
syn match cOperator "[.!~*&%<>^|=,+-]"
|
||||
syn match cOperator "/[^/*=]"me=e-1
|
||||
syn match cOperator "/$"
|
||||
syn match cOperator "&&\|||"
|
||||
syn match cOperator "[][]"
|
||||
|
||||
" Preprocs
|
||||
syn keyword cDefined defined contained containedin=cDefine
|
||||
hi def link cDefined cDefine
|
||||
|
||||
" Functions
|
||||
syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
|
||||
syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator
|
||||
|
||||
hi def link cUserFunction cFunction
|
||||
hi def link cUserFunctionPointer cFunction
|
||||
|
||||
" Delimiters
|
||||
syn match cDelimiter "[();\\]"
|
||||
" foldmethod=syntax fix, courtesy of Ivan Freitas
|
||||
syn match cBraces display "[{}]"
|
||||
|
||||
|
||||
" Booleans
|
||||
syn keyword cBoolean true false TRUE FALSE
|
||||
|
||||
|
||||
" Links
|
||||
hi def link cFunction Function
|
||||
hi def link cIdentifier Identifier
|
||||
hi def link cDelimiter Delimiter
|
||||
" foldmethod=syntax fix, courtesy of Ivan Freitas
|
||||
hi def link cBraces Delimiter
|
||||
hi def link cBoolean Boolean
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,562 @@
|
|||
" Vim syntax file
|
||||
" Language: Python
|
||||
" Current Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" Previous Maintainer: Neil Schemenauer <nas at python dot ca>
|
||||
" URL: https://github.com/hdima/python-syntax
|
||||
" Last Change: 2015-11-01
|
||||
" Filenames: *.py
|
||||
" Version: 3.6.0
|
||||
"
|
||||
" Based on python.vim (from Vim 6.1 distribution)
|
||||
" by Neil Schemenauer <nas at python dot ca>
|
||||
"
|
||||
" Please use the following channels for reporting bugs, offering suggestions or
|
||||
" feedback:
|
||||
|
||||
" - python.vim issue tracker: https://github.com/hdima/python-syntax/issues
|
||||
" - Email: Dmitry Vasiliev (dima at hlabs.org)
|
||||
" - Send a message or follow me for updates on Twitter: `@hdima
|
||||
" <https://twitter.com/hdima>`__
|
||||
"
|
||||
" Contributors
|
||||
" ============
|
||||
"
|
||||
" List of the contributors in alphabetical order:
|
||||
"
|
||||
" Andrea Riciputi
|
||||
" Anton Butanaev
|
||||
" Antony Lee
|
||||
" Caleb Adamantine
|
||||
" David Briscoe
|
||||
" Elizabeth Myers
|
||||
" Ihor Gorobets
|
||||
" Jeroen Ruigrok van der Werven
|
||||
" John Eikenberry
|
||||
" Joongi Kim
|
||||
" Marc Weber
|
||||
" Pedro Algarvio
|
||||
" Victor Salgado
|
||||
" Will Gray
|
||||
" Yuri Habrusiev
|
||||
"
|
||||
" Options
|
||||
" =======
|
||||
"
|
||||
" :let OPTION_NAME = 1 Enable option
|
||||
" :let OPTION_NAME = 0 Disable option
|
||||
"
|
||||
"
|
||||
" Option to select Python version
|
||||
" -------------------------------
|
||||
"
|
||||
" python_version_2 Enable highlighting for Python 2
|
||||
" (Python 3 highlighting is enabled
|
||||
" by default). Can also be set as
|
||||
" a buffer (b:python_version_2)
|
||||
" variable.
|
||||
"
|
||||
" You can also use the following local to buffer commands to switch
|
||||
" between two highlighting modes:
|
||||
"
|
||||
" :Python2Syntax Switch to Python 2 highlighting
|
||||
" mode
|
||||
" :Python3Syntax Switch to Python 3 highlighting
|
||||
" mode
|
||||
"
|
||||
" Option names used by the script
|
||||
" -------------------------------
|
||||
"
|
||||
" python_highlight_builtins Highlight builtin functions and
|
||||
" objects
|
||||
" python_highlight_builtin_objs Highlight builtin objects only
|
||||
" python_highlight_builtin_funcs Highlight builtin functions only
|
||||
" python_highlight_exceptions Highlight standard exceptions
|
||||
" python_highlight_string_formatting Highlight % string formatting
|
||||
" python_highlight_string_format Highlight str.format syntax
|
||||
" python_highlight_string_templates Highlight string.Template syntax
|
||||
" python_highlight_indent_errors Highlight indentation errors
|
||||
" python_highlight_space_errors Highlight trailing spaces
|
||||
" python_highlight_doctests Highlight doc-tests
|
||||
" python_print_as_function Highlight 'print' statement as
|
||||
" function for Python 2
|
||||
" python_highlight_file_headers_as_comments
|
||||
" Highlight shebang and coding
|
||||
" headers as comments
|
||||
"
|
||||
" python_highlight_all Enable all the options above
|
||||
" NOTE: This option don't override
|
||||
" any previously set options
|
||||
"
|
||||
" python_slow_sync Can be set to 0 for slow machines
|
||||
"
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For versions greater than 6.x: Quit when a syntax file was already loaded
|
||||
|
||||
"
|
||||
" Commands
|
||||
"
|
||||
command! -buffer Python3Syntax let b:python_version_2 = 0 | let &syntax=&syntax
|
||||
|
||||
" Enable option if it's not defined
|
||||
function! s:EnableByDefault(name)
|
||||
if !exists(a:name)
|
||||
let {a:name} = 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Check if option is enabled
|
||||
function! s:Enabled(name)
|
||||
return exists(a:name) && {a:name}
|
||||
endfunction
|
||||
|
||||
" Is it Python 2 syntax?
|
||||
function! s:Python2Syntax()
|
||||
if exists("b:python_version_2")
|
||||
return b:python_version_2
|
||||
endif
|
||||
return s:Enabled("g:python_version_2")
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Default options
|
||||
"
|
||||
|
||||
call s:EnableByDefault("g:python_slow_sync")
|
||||
|
||||
if s:Enabled("g:python_highlight_all")
|
||||
call s:EnableByDefault("g:python_highlight_builtins")
|
||||
if s:Enabled("g:python_highlight_builtins")
|
||||
call s:EnableByDefault("g:python_highlight_builtin_objs")
|
||||
call s:EnableByDefault("g:python_highlight_builtin_funcs")
|
||||
endif
|
||||
call s:EnableByDefault("g:python_highlight_exceptions")
|
||||
call s:EnableByDefault("g:python_highlight_string_formatting")
|
||||
call s:EnableByDefault("g:python_highlight_string_format")
|
||||
call s:EnableByDefault("g:python_highlight_string_templates")
|
||||
call s:EnableByDefault("g:python_highlight_indent_errors")
|
||||
call s:EnableByDefault("g:python_highlight_space_errors")
|
||||
call s:EnableByDefault("g:python_highlight_doctests")
|
||||
call s:EnableByDefault("g:python_print_as_function")
|
||||
endif
|
||||
|
||||
"
|
||||
" Keywords
|
||||
"
|
||||
|
||||
syn keyword pythonStatement break continue del
|
||||
syn keyword pythonStatement exec return
|
||||
syn keyword pythonStatement pass raise
|
||||
syn keyword pythonStatement global assert
|
||||
syn keyword pythonStatement lambda
|
||||
syn keyword pythonStatement with
|
||||
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
|
||||
syn keyword pythonRepeat for while
|
||||
syn keyword pythonConditional if elif else
|
||||
" The standard pyrex.vim unconditionally removes the pythonInclude group, so
|
||||
" we provide a dummy group here to avoid crashing pyrex.vim.
|
||||
syn keyword pythonInclude import
|
||||
syn keyword pythonImport import
|
||||
syn keyword pythonException try except finally
|
||||
syn keyword pythonOperator and in is not or
|
||||
|
||||
syn match pythonStatement "\<yield\>" display
|
||||
syn match pythonImport "\<from\>" display
|
||||
|
||||
if s:Python2Syntax()
|
||||
if !s:Enabled("g:python_print_as_function")
|
||||
syn keyword pythonStatement print
|
||||
endif
|
||||
syn keyword pythonImport as
|
||||
syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
|
||||
else
|
||||
syn keyword pythonStatement as nonlocal None
|
||||
syn match pythonStatement "\<yield\s\+from\>" display
|
||||
syn keyword pythonBoolean True False
|
||||
syn match pythonFunction "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
||||
syn keyword pythonStatement await
|
||||
syn match pythonStatement "\<async\s\+def\>" nextgroup=pythonFunction skipwhite
|
||||
syn match pythonStatement "\<async\s\+with\>" display
|
||||
syn match pythonStatement "\<async\s\+for\>" display
|
||||
endif
|
||||
|
||||
"
|
||||
" Decorators (new in Python 2.4)
|
||||
"
|
||||
|
||||
syn match pythonDecorator "@" display nextgroup=pythonDottedName skipwhite
|
||||
if s:Python2Syntax()
|
||||
syn match pythonDottedName "[a-zA-Z_][a-zA-Z0-9_]*\%(\.[a-zA-Z_][a-zA-Z0-9_]*\)*" display contained
|
||||
else
|
||||
syn match pythonDottedName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\)*" display contained
|
||||
endif
|
||||
syn match pythonDot "\." display containedin=pythonDottedName
|
||||
|
||||
"
|
||||
" Comments
|
||||
"
|
||||
|
||||
syn match pythonComment "#.*$" display contains=pythonTodo,@Spell
|
||||
if !s:Enabled("g:python_highlight_file_headers_as_comments")
|
||||
syn match pythonRun "\%^#!.*$"
|
||||
syn match pythonCoding "\%^.*\%(\n.*\)\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$"
|
||||
endif
|
||||
syn keyword pythonTodo TODO FIXME XXX contained
|
||||
|
||||
"
|
||||
" Errors
|
||||
"
|
||||
|
||||
syn match pythonError "\<\d\+\D\+\>" display
|
||||
syn match pythonError "[$?]" display
|
||||
syn match pythonError "[&|]\{2,}" display
|
||||
syn match pythonError "[=]\{3,}" display
|
||||
|
||||
" Mixing spaces and tabs also may be used for pretty formatting multiline
|
||||
" statements
|
||||
if s:Enabled("g:python_highlight_indent_errors")
|
||||
syn match pythonIndentError "^\s*\%( \t\|\t \)\s*\S"me=e-1 display
|
||||
endif
|
||||
|
||||
" Trailing space errors
|
||||
if s:Enabled("g:python_highlight_space_errors")
|
||||
syn match pythonSpaceError "\s\+$" display
|
||||
endif
|
||||
|
||||
"
|
||||
" Strings
|
||||
"
|
||||
|
||||
if s:Python2Syntax()
|
||||
" Python 2 strings
|
||||
syn region pythonString start=+[bB]\='+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonString start=+[bB]\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonString start=+[bB]\="""+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonString start=+[bB]\='''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
else
|
||||
" Python 3 byte strings
|
||||
syn region pythonBytes start=+[bB]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell
|
||||
syn region pythonBytes start=+[bB]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell
|
||||
syn region pythonBytes start=+[bB]"""+ end=+"""+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonBytes start=+[bB]'''+ end=+'''+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest,pythonSpaceError,@Spell
|
||||
|
||||
syn match pythonBytesError ".\+" display contained
|
||||
syn match pythonBytesContent "[\u0000-\u00ff]\+" display contained contains=pythonBytesEscape,pythonBytesEscapeError
|
||||
endif
|
||||
|
||||
syn match pythonBytesEscape +\\[abfnrtv'"\\]+ display contained
|
||||
syn match pythonBytesEscape "\\\o\o\=\o\=" display contained
|
||||
syn match pythonBytesEscapeError "\\\o\{,2}[89]" display contained
|
||||
syn match pythonBytesEscape "\\x\x\{2}" display contained
|
||||
syn match pythonBytesEscapeError "\\x\x\=\X" display contained
|
||||
syn match pythonBytesEscape "\\$"
|
||||
|
||||
syn match pythonUniEscape "\\u\x\{4}" display contained
|
||||
syn match pythonUniEscapeError "\\u\x\{,3}\X" display contained
|
||||
syn match pythonUniEscape "\\U\x\{8}" display contained
|
||||
syn match pythonUniEscapeError "\\U\x\{,7}\X" display contained
|
||||
syn match pythonUniEscape "\\N{[A-Z ]\+}" display contained
|
||||
syn match pythonUniEscapeError "\\N{[^A-Z ]\+}" display contained
|
||||
|
||||
if s:Python2Syntax()
|
||||
" Python 2 Unicode strings
|
||||
syn region pythonUniString start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonUniString start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonUniString start=+[uU]"""+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonUniString start=+[uU]'''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
else
|
||||
" Python 3 strings
|
||||
syn region pythonString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonString start=+"""+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonString start=+'''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
endif
|
||||
|
||||
if s:Python2Syntax()
|
||||
" Python 2 Unicode raw strings
|
||||
syn region pythonUniRawString start=+[uU][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
|
||||
syn region pythonUniRawString start=+[uU][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
|
||||
syn region pythonUniRawString start=+[uU][rR]"""+ end=+"""+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonUniRawString start=+[uU][rR]'''+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
|
||||
syn match pythonUniRawEscape "\([^\\]\(\\\\\)*\)\@<=\\u\x\{4}" display contained
|
||||
syn match pythonUniRawEscapeError "\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display contained
|
||||
endif
|
||||
|
||||
" Python 2/3 raw strings
|
||||
if s:Python2Syntax()
|
||||
syn region pythonRawString start=+[bB]\=[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawString start=+[bB]\=[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawString start=+[bB]\=[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonRawString start=+[bB]\=[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
else
|
||||
syn region pythonRawString start=+[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawString start=+[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawString start=+[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonRawString start=+[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
|
||||
syn region pythonRawBytes start=+[bB][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawBytes start=+[bB][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawBytes start=+[bB][rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonRawBytes start=+[bB][rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
endif
|
||||
|
||||
syn match pythonRawEscape +\\['"]+ display transparent contained
|
||||
|
||||
if s:Enabled("g:python_highlight_string_formatting")
|
||||
" % operator string formatting
|
||||
if s:Python2Syntax()
|
||||
syn match pythonStrFormatting "%\%(([^)]\+)\)\=[-#0 +]*\d*\%(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
syn match pythonStrFormatting "%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
else
|
||||
syn match pythonStrFormatting "%\%(([^)]\+)\)\=[-#0 +]*\d*\%(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonRawString
|
||||
syn match pythonStrFormatting "%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonRawString
|
||||
endif
|
||||
endif
|
||||
|
||||
if s:Enabled("g:python_highlight_string_format")
|
||||
" str.format syntax
|
||||
if s:Python2Syntax()
|
||||
syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
syn match pythonStrFormat "{\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)\=\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\[\%(\d\+\|[^!:\}]\+\)\]\)*\%(![rsa]\)\=\%(:\%({\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)}\|\%([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*,\=\%(\.\d\+\)\=[bcdeEfFgGnosxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
else
|
||||
syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonRawString
|
||||
syn match pythonStrFormat "{\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)\=\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\[\%(\d\+\|[^!:\}]\+\)\]\)*\%(![rsa]\)\=\%(:\%({\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)}\|\%([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*,\=\%(\.\d\+\)\=[bcdeEfFgGnosxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonRawString
|
||||
endif
|
||||
endif
|
||||
|
||||
if s:Enabled("g:python_highlight_string_templates")
|
||||
" string.Template format
|
||||
if s:Python2Syntax()
|
||||
syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
|
||||
else
|
||||
syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonRawString
|
||||
syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonRawString
|
||||
syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonRawString
|
||||
endif
|
||||
endif
|
||||
|
||||
if s:Enabled("g:python_highlight_doctests")
|
||||
" DocTests
|
||||
syn region pythonDocTest start="^\s*>>>" end=+'''+he=s-1 end="^\s*$" contained
|
||||
syn region pythonDocTest2 start="^\s*>>>" end=+"""+he=s-1 end="^\s*$" contained
|
||||
endif
|
||||
|
||||
"
|
||||
" Numbers (ints, longs, floats, complex)
|
||||
"
|
||||
|
||||
if s:Python2Syntax()
|
||||
syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\+\x*[lL]\=\>" display
|
||||
syn match pythonOctError "\<0[oO]\=\o*\D\+\d*[lL]\=\>" display
|
||||
syn match pythonBinError "\<0[bB][01]*\D\+\d*[lL]\=\>" display
|
||||
|
||||
syn match pythonHexNumber "\<0[xX]\x\+[lL]\=\>" display
|
||||
syn match pythonOctNumber "\<0[oO]\o\+[lL]\=\>" display
|
||||
syn match pythonBinNumber "\<0[bB][01]\+[lL]\=\>" display
|
||||
|
||||
syn match pythonNumberError "\<\d\+\D[lL]\=\>" display
|
||||
syn match pythonNumber "\<\d[lL]\=\>" display
|
||||
syn match pythonNumber "\<[0-9]\d\+[lL]\=\>" display
|
||||
syn match pythonNumber "\<\d\+[lLjJ]\>" display
|
||||
|
||||
syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*[lL]\=\>" display
|
||||
syn match pythonBinError "\<0[bB][01]*[2-9]\d*[lL]\=\>" display
|
||||
else
|
||||
syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\x*\>" display
|
||||
syn match pythonOctError "\<0[oO]\=\o*\D\+\d*\>" display
|
||||
syn match pythonBinError "\<0[bB][01]*\D\+\d*\>" display
|
||||
|
||||
syn match pythonHexNumber "\<0[xX]\x\+\>" display
|
||||
syn match pythonOctNumber "\<0[oO]\o\+\>" display
|
||||
syn match pythonBinNumber "\<0[bB][01]\+\>" display
|
||||
|
||||
syn match pythonNumberError "\<\d\+\D\>" display
|
||||
syn match pythonNumberError "\<0\d\+\>" display
|
||||
syn match pythonNumber "\<\d\>" display
|
||||
syn match pythonNumber "\<[1-9]\d\+\>" display
|
||||
syn match pythonNumber "\<\d\+[jJ]\>" display
|
||||
|
||||
syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*\>" display
|
||||
syn match pythonBinError "\<0[bB][01]*[2-9]\d*\>" display
|
||||
endif
|
||||
|
||||
syn match pythonFloat "\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>" display
|
||||
syn match pythonFloat "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display
|
||||
syn match pythonFloat "\<\d\+\.\d*\%([eE][+-]\=\d\+\)\=[jJ]\=" display
|
||||
|
||||
"
|
||||
" Builtin objects and types
|
||||
"
|
||||
|
||||
if s:Enabled("g:python_highlight_builtin_objs")
|
||||
if s:Python2Syntax()
|
||||
syn keyword pythonBuiltinObj None
|
||||
syn keyword pythonBoolean True False
|
||||
endif
|
||||
syn keyword pythonBuiltinObj Ellipsis NotImplemented
|
||||
syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__
|
||||
endif
|
||||
|
||||
"
|
||||
" Builtin functions
|
||||
"
|
||||
|
||||
if s:Enabled("g:python_highlight_builtin_funcs")
|
||||
if s:Python2Syntax()
|
||||
syn keyword pythonBuiltinFunc apply basestring buffer callable coerce
|
||||
syn keyword pythonBuiltinFunc execfile file help intern long raw_input
|
||||
syn keyword pythonBuiltinFunc reduce reload unichr unicode xrange
|
||||
if s:Enabled("g:python_print_as_function")
|
||||
syn keyword pythonBuiltinFunc print
|
||||
endif
|
||||
else
|
||||
syn keyword pythonBuiltinFunc ascii exec memoryview print
|
||||
endif
|
||||
syn keyword pythonBuiltinFunc __import__ abs all any
|
||||
syn keyword pythonBuiltinFunc bin bool bytearray bytes
|
||||
syn keyword pythonBuiltinFunc chr classmethod cmp compile complex
|
||||
syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
|
||||
syn keyword pythonBuiltinFunc filter float format frozenset getattr
|
||||
syn keyword pythonBuiltinFunc globals hasattr hash hex id
|
||||
syn keyword pythonBuiltinFunc input int isinstance
|
||||
syn keyword pythonBuiltinFunc issubclass iter len list locals map max
|
||||
syn keyword pythonBuiltinFunc min next object oct open ord
|
||||
syn keyword pythonBuiltinFunc pow property range
|
||||
syn keyword pythonBuiltinFunc repr reversed round set setattr
|
||||
syn keyword pythonBuiltinFunc slice sorted staticmethod str sum super tuple
|
||||
syn keyword pythonBuiltinFunc type vars zip
|
||||
endif
|
||||
|
||||
"
|
||||
" Builtin exceptions and warnings
|
||||
"
|
||||
|
||||
if s:Enabled("g:python_highlight_exceptions")
|
||||
if s:Python2Syntax()
|
||||
syn keyword pythonExClass StandardError
|
||||
else
|
||||
syn keyword pythonExClass BlockingIOError ChildProcessError
|
||||
syn keyword pythonExClass ConnectionError BrokenPipeError
|
||||
syn keyword pythonExClass ConnectionAbortedError ConnectionRefusedError
|
||||
syn keyword pythonExClass ConnectionResetError FileExistsError
|
||||
syn keyword pythonExClass FileNotFoundError InterruptedError
|
||||
syn keyword pythonExClass IsADirectoryError NotADirectoryError
|
||||
syn keyword pythonExClass PermissionError ProcessLookupError TimeoutError
|
||||
|
||||
syn keyword pythonExClass ResourceWarning
|
||||
endif
|
||||
syn keyword pythonExClass BaseException
|
||||
syn keyword pythonExClass Exception ArithmeticError
|
||||
syn keyword pythonExClass LookupError EnvironmentError
|
||||
|
||||
syn keyword pythonExClass AssertionError AttributeError BufferError EOFError
|
||||
syn keyword pythonExClass FloatingPointError GeneratorExit IOError
|
||||
syn keyword pythonExClass ImportError IndexError KeyError
|
||||
syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
|
||||
syn keyword pythonExClass NotImplementedError OSError OverflowError
|
||||
syn keyword pythonExClass ReferenceError RuntimeError StopIteration
|
||||
syn keyword pythonExClass SyntaxError IndentationError TabError
|
||||
syn keyword pythonExClass SystemError SystemExit TypeError
|
||||
syn keyword pythonExClass UnboundLocalError UnicodeError
|
||||
syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
|
||||
syn keyword pythonExClass UnicodeTranslateError ValueError VMSError
|
||||
syn keyword pythonExClass WindowsError ZeroDivisionError
|
||||
|
||||
syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning
|
||||
syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
|
||||
syn keyword pythonExClass RuntimeWarning FutureWarning
|
||||
syn keyword pythonExClass ImportWarning UnicodeWarning
|
||||
endif
|
||||
|
||||
if s:Enabled("g:python_slow_sync")
|
||||
syn sync minlines=2000
|
||||
else
|
||||
" This is fast but code inside triple quoted strings screws it up. It
|
||||
" is impossible to fix because the only way to know if you are inside a
|
||||
" triple quoted string is to start from the beginning of the file.
|
||||
syn sync match pythonSync grouphere NONE "):$"
|
||||
syn sync maxlines=200
|
||||
endif
|
||||
|
||||
if version >= 508 || !exists("did_python_syn_inits")
|
||||
if version <= 508
|
||||
let did_python_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink pythonStatement Statement
|
||||
HiLink pythonImport Include
|
||||
HiLink pythonFunction Function
|
||||
HiLink pythonConditional Conditional
|
||||
HiLink pythonRepeat Repeat
|
||||
HiLink pythonException Exception
|
||||
HiLink pythonOperator Operator
|
||||
|
||||
HiLink pythonDecorator Define
|
||||
HiLink pythonDottedName Function
|
||||
HiLink pythonDot Normal
|
||||
|
||||
HiLink pythonComment Comment
|
||||
if !s:Enabled("g:python_highlight_file_headers_as_comments")
|
||||
HiLink pythonCoding Special
|
||||
HiLink pythonRun Special
|
||||
endif
|
||||
HiLink pythonTodo Todo
|
||||
|
||||
HiLink pythonError Error
|
||||
HiLink pythonIndentError Error
|
||||
HiLink pythonSpaceError Error
|
||||
|
||||
HiLink pythonString String
|
||||
HiLink pythonRawString String
|
||||
|
||||
HiLink pythonUniEscape Special
|
||||
HiLink pythonUniEscapeError Error
|
||||
|
||||
if s:Python2Syntax()
|
||||
HiLink pythonUniString String
|
||||
HiLink pythonUniRawString String
|
||||
HiLink pythonUniRawEscape Special
|
||||
HiLink pythonUniRawEscapeError Error
|
||||
else
|
||||
HiLink pythonBytes String
|
||||
HiLink pythonRawBytes String
|
||||
HiLink pythonBytesContent String
|
||||
HiLink pythonBytesError Error
|
||||
HiLink pythonBytesEscape Special
|
||||
HiLink pythonBytesEscapeError Error
|
||||
endif
|
||||
|
||||
HiLink pythonStrFormatting Special
|
||||
HiLink pythonStrFormat Special
|
||||
HiLink pythonStrTemplate Special
|
||||
|
||||
HiLink pythonDocTest Special
|
||||
HiLink pythonDocTest2 Special
|
||||
|
||||
HiLink pythonNumber Number
|
||||
HiLink pythonHexNumber Number
|
||||
HiLink pythonOctNumber Number
|
||||
HiLink pythonBinNumber Number
|
||||
HiLink pythonFloat Float
|
||||
HiLink pythonNumberError Error
|
||||
HiLink pythonOctError Error
|
||||
HiLink pythonHexError Error
|
||||
HiLink pythonBinError Error
|
||||
|
||||
HiLink pythonBoolean Boolean
|
||||
|
||||
HiLink pythonBuiltinObj Structure
|
||||
HiLink pythonBuiltinFunc Function
|
||||
|
||||
HiLink pythonExClass Structure
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "python"
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
" -----------------------------------------------------------------------------
|
||||
" File: gruvbox.vim
|
||||
" Description: Retro groove color scheme for Airline
|
||||
" Author: morhetz <morhetz@gmail.com>
|
||||
" Source: https://github.com/morhetz/gruvbox
|
||||
" Last Modified: 12 Aug 2017
|
||||
" -----------------------------------------------------------------------------
|
||||
|
||||
let g:airline#themes#gruvbox#palette = {}
|
||||
|
||||
function! airline#themes#gruvbox#refresh()
|
||||
|
||||
let M0 = airline#themes#get_highlight('Identifier')
|
||||
let accents_group = airline#themes#get_highlight('Special')
|
||||
let modified_group = [M0[0], '', M0[2], '', '']
|
||||
let warning_group = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
|
||||
let error_group = airline#themes#get_highlight2(['Normal', 'bg'], ['WarningMsg', 'fg'])
|
||||
|
||||
let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['StatusLineNC', 'bg'])
|
||||
let s:N2 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['Pmenu', 'bg'])
|
||||
let s:N3 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['CursorLine', 'bg'])
|
||||
let g:airline#themes#gruvbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||
let g:airline#themes#gruvbox#palette.normal_modified = { 'airline_c': modified_group }
|
||||
let g:airline#themes#gruvbox#palette.normal.airline_warning = warning_group
|
||||
let g:airline#themes#gruvbox#palette.normal_modified.airline_warning = warning_group
|
||||
let g:airline#themes#gruvbox#palette.normal.airline_error = error_group
|
||||
let g:airline#themes#gruvbox#palette.normal_modified.airline_error = error_group
|
||||
|
||||
let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Identifier', 'fg'])
|
||||
let s:I2 = s:N2
|
||||
let s:I3 = airline#themes#get_highlight2(['Normal', 'fg'], ['Pmenu', 'bg'])
|
||||
let g:airline#themes#gruvbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
|
||||
let g:airline#themes#gruvbox#palette.insert_modified = g:airline#themes#gruvbox#palette.normal_modified
|
||||
let g:airline#themes#gruvbox#palette.insert.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
|
||||
let g:airline#themes#gruvbox#palette.insert_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
|
||||
let g:airline#themes#gruvbox#palette.insert.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
|
||||
let g:airline#themes#gruvbox#palette.insert_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
|
||||
|
||||
let s:R1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Structure', 'fg'])
|
||||
let s:R2 = s:I2
|
||||
let s:R3 = s:I3
|
||||
let g:airline#themes#gruvbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
|
||||
let g:airline#themes#gruvbox#palette.replace_modified = g:airline#themes#gruvbox#palette.normal_modified
|
||||
let g:airline#themes#gruvbox#palette.replace.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
|
||||
let g:airline#themes#gruvbox#palette.replace_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
|
||||
let g:airline#themes#gruvbox#palette.replace.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
|
||||
let g:airline#themes#gruvbox#palette.replace_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
|
||||
|
||||
let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
|
||||
let s:V2 = s:N2
|
||||
let s:V3 = airline#themes#get_highlight2(['Normal', 'bg'], ['TabLine', 'fg'])
|
||||
let g:airline#themes#gruvbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
|
||||
let g:airline#themes#gruvbox#palette.visual_modified = { 'airline_c': [ s:V3[0], '', s:V3[2], '', '' ] }
|
||||
let g:airline#themes#gruvbox#palette.visual.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
|
||||
let g:airline#themes#gruvbox#palette.visual_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
|
||||
let g:airline#themes#gruvbox#palette.visual.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
|
||||
let g:airline#themes#gruvbox#palette.visual_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
|
||||
|
||||
let s:IA = airline#themes#get_highlight2(['TabLine', 'fg'], ['CursorLine', 'bg'])
|
||||
let g:airline#themes#gruvbox#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||
let g:airline#themes#gruvbox#palette.inactive_modified = { 'airline_c': modified_group }
|
||||
|
||||
let g:airline#themes#gruvbox#palette.accents = { 'red': accents_group }
|
||||
|
||||
let s:TF = airline#themes#get_highlight2(['Normal', 'bg'], ['Normal', 'bg'])
|
||||
let g:airline#themes#gruvbox#palette.tabline = {
|
||||
\ 'airline_tab': s:N2,
|
||||
\ 'airline_tabsel': s:N1,
|
||||
\ 'airline_tabtype': s:V1,
|
||||
\ 'airline_tabfill': s:TF,
|
||||
\ 'airline_tabhid': s:IA,
|
||||
\ 'airline_tabmod': s:I1
|
||||
\ }
|
||||
|
||||
endfunction
|
||||
|
||||
call airline#themes#gruvbox#refresh()
|
||||
|
||||
" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
let g:airline#themes#quantum#palette = {}
|
||||
|
||||
function! airline#themes#quantum#refresh()
|
||||
let g:airline#themes#quantum#palette.accents = {
|
||||
\ 'red': airline#themes#get_highlight('Identifier'),
|
||||
\ }
|
||||
|
||||
let s:N1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['Directory', 'fg'], 'bold')
|
||||
let s:N2 = airline#themes#get_highlight('Pmenu')
|
||||
let s:N3 = airline#themes#get_highlight('TabLine')
|
||||
let g:airline#themes#quantum#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
|
||||
|
||||
let group = airline#themes#get_highlight('Type')
|
||||
let g:airline#themes#quantum#palette.normal_modified = {
|
||||
\ 'airline_c': [ group[0], '', group[2], '', '' ]
|
||||
\ }
|
||||
|
||||
let s:I1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['MoreMsg', 'fg'], 'bold')
|
||||
let g:airline#themes#quantum#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:N3)
|
||||
let g:airline#themes#quantum#palette.insert_modified = g:airline#themes#quantum#palette.normal_modified
|
||||
|
||||
let s:R1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['Error', 'fg'], 'bold')
|
||||
let g:airline#themes#quantum#palette.replace = airline#themes#generate_color_map(s:R1, s:N2, s:N3)
|
||||
let g:airline#themes#quantum#palette.replace_modified = g:airline#themes#quantum#palette.normal_modified
|
||||
|
||||
let s:V1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['Statement', 'fg'], 'bold')
|
||||
let g:airline#themes#quantum#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:N3)
|
||||
let g:airline#themes#quantum#palette.visual_modified = g:airline#themes#quantum#palette.normal_modified
|
||||
|
||||
let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg'])
|
||||
let g:airline#themes#quantum#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
|
||||
let g:airline#themes#quantum#palette.inactive_modified = g:airline#themes#quantum#palette.normal_modified
|
||||
|
||||
if get(g:, 'loaded_ctrlp', 0)
|
||||
let g:airline#themes#quantum#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
|
||||
\ airline#themes#get_highlight('CursorLine'),
|
||||
\ airline#themes#get_highlight2(['Operator', 'fg'], ['Normal', 'bg']),
|
||||
\ airline#themes#get_highlight2(['Normal', 'bg'], ['Operator', 'fg'], 'bold'))
|
||||
endif
|
||||
endfun
|
||||
|
||||
call airline#themes#quantum#refresh()
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,670 @@
|
|||
" _ _ _ __
|
||||
" | |__ __ _ __| | __ _____ | |/ _|
|
||||
" | '_ \ / _` |/ _` | \ \ /\ / / _ \| | |_
|
||||
" | |_) | (_| | (_| | \ V V / (_) | | _|
|
||||
" |_.__/ \__,_|\__,_| \_/\_/ \___/|_|_|
|
||||
"
|
||||
" I am the Bad Wolf. I create myself.
|
||||
" I take the words. I scatter them in time and space.
|
||||
" A message to lead myself here.
|
||||
"
|
||||
" A Vim colorscheme pieced together by Steve Losh.
|
||||
" Available at http://stevelosh.com/projects/badwolf/
|
||||
"
|
||||
" Why? {{{
|
||||
"
|
||||
" After using Molokai for quite a long time, I started longing for
|
||||
" a replacement.
|
||||
"
|
||||
" I love Molokai's high contrast and gooey, saturated tones, but it can be
|
||||
" a little inconsistent at times.
|
||||
"
|
||||
" Also it's winter here in Rochester, so I wanted a color scheme that's a bit
|
||||
" warmer. A little less blue and a bit more red.
|
||||
"
|
||||
" And so Bad Wolf was born. I'm no designer, but designers have been scattering
|
||||
" beautiful colors through time and space long before I came along. I took
|
||||
" advantage of that and reused some of my favorites to lead me to this scheme.
|
||||
"
|
||||
" }}}
|
||||
|
||||
" Supporting code -------------------------------------------------------------
|
||||
" Preamble {{{
|
||||
|
||||
if !has("gui_running") && &t_Co != 88 && &t_Co != 256
|
||||
finish
|
||||
endif
|
||||
color=#1f1f1f
|
||||
set background=dark
|
||||
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let g:colors_name = "badwolf"
|
||||
|
||||
if !exists("g:badwolf_html_link_underline") " {{{
|
||||
let g:badwolf_html_link_underline = 1
|
||||
endif " }}}
|
||||
|
||||
if !exists("g:badwolf_css_props_highlight") " {{{
|
||||
let g:badwolf_css_props_highlight = 0
|
||||
endif " }}}
|
||||
|
||||
" }}}
|
||||
" Palette {{{
|
||||
|
||||
let s:bwc = {}
|
||||
|
||||
" The most basic of all our colors is a slightly tweaked version of the Molokai
|
||||
" Normal text.
|
||||
let s:bwc.plain = ['f8f6f2', 15]
|
||||
|
||||
" Pure and simple.
|
||||
let s:bwc.snow = ['ffffff', 15]
|
||||
let s:bwc.coal = ['000000', 16]
|
||||
|
||||
" All of the Gravel colors are based on a brown from Clouds Midnight.
|
||||
let s:bwc.brightgravel = ['d9cec3', 252]
|
||||
let s:bwc.lightgravel = ['998f84', 245]
|
||||
let s:bwc.gravel = ['857f78', 243]
|
||||
let s:bwc.mediumgravel = ['666462', 241]
|
||||
let s:bwc.deepgravel = ['45413b', 238]
|
||||
let s:bwc.deepergravel = ['35322d', 236]
|
||||
let s:bwc.darkgravel = ['242321', 235]
|
||||
let s:bwc.blackgravel = ['1c1b1a', 233]
|
||||
let s:bwc.blackestgravel = ['141413', 232]
|
||||
|
||||
" A color sampled from a highlight in a photo of a glass of Dale's Pale Ale on
|
||||
" my desk.
|
||||
let s:bwc.dalespale = ['fade3e', 221]
|
||||
|
||||
" A beautiful tan from Tomorrow Night.
|
||||
let s:bwc.dirtyblonde = ['f4cf86', 222]
|
||||
|
||||
" Delicious, chewy red from Made of Code for the poppiest highlights.
|
||||
let s:bwc.taffy = ['ff2c4b', 196]
|
||||
|
||||
" Another chewy accent, but use sparingly!
|
||||
let s:bwc.saltwatertaffy = ['8cffba', 121]
|
||||
|
||||
" The star of the show comes straight from Made of Code.
|
||||
"
|
||||
" You should almost never use this. It should be used for things that denote
|
||||
" 'where the user is', which basically consists of:
|
||||
"
|
||||
" * The cursor
|
||||
" * A REPL prompt
|
||||
let s:bwc.tardis = ['0a9dff', 39]
|
||||
|
||||
" This one's from Mustang, not Florida!
|
||||
let s:bwc.orange = ['ffa724', 214]
|
||||
|
||||
" A limier green from Getafe.
|
||||
let s:bwc.lime = ['aeee00', 154]
|
||||
|
||||
" Rose's dress in The Idiot's Lantern.
|
||||
let s:bwc.dress = ['ff9eb8', 211]
|
||||
|
||||
" Another play on the brown from Clouds Midnight. I love that color.
|
||||
let s:bwc.toffee = ['b88853', 137]
|
||||
|
||||
" Also based on that Clouds Midnight brown.
|
||||
let s:bwc.coffee = ['c7915b', 173]
|
||||
let s:bwc.darkroast = ['88633f', 95]
|
||||
|
||||
" }}}
|
||||
" Highlighting Function {{{
|
||||
function! s:HL(group, fg, ...)
|
||||
" Arguments: group, guifg, guibg, gui, guisp
|
||||
|
||||
let histring = 'hi ' . a:group . ' '
|
||||
|
||||
if strlen(a:fg)
|
||||
if a:fg == 'fg'
|
||||
let histring .= 'guifg=fg ctermfg=fg '
|
||||
else
|
||||
let c = get(s:bwc, a:fg)
|
||||
let histring .= 'guifg=#' . c[0] . ' ctermfg=' . c[1] . ' '
|
||||
endif
|
||||
endif
|
||||
|
||||
if a:0 >= 1 && strlen(a:1)
|
||||
if a:1 == 'bg'
|
||||
let histring .= 'guibg=bg ctermbg=bg '
|
||||
else
|
||||
let c = get(s:bwc, a:1)
|
||||
let histring .= 'guibg=#' . c[0] . ' ctermbg=' . c[1] . ' '
|
||||
endif
|
||||
endif
|
||||
|
||||
if a:0 >= 2 && strlen(a:2)
|
||||
let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
|
||||
endif
|
||||
|
||||
if a:0 >= 3 && strlen(a:3)
|
||||
let c = get(s:bwc, a:3)
|
||||
let histring .= 'guisp=#' . c[0] . ' '
|
||||
endif
|
||||
|
||||
" echom histring
|
||||
|
||||
execute histring
|
||||
endfunction
|
||||
" }}}
|
||||
" Configuration Options {{{
|
||||
|
||||
if exists('g:badwolf_darkgutter') && g:badwolf_darkgutter
|
||||
let s:gutter = 'blackestgravel'
|
||||
else
|
||||
let s:gutter = 'blackgravel'
|
||||
endif
|
||||
|
||||
if exists('g:badwolf_tabline')
|
||||
if g:badwolf_tabline == 0
|
||||
let s:tabline = 'blackestgravel'
|
||||
elseif g:badwolf_tabline == 1
|
||||
let s:tabline = 'blackgravel'
|
||||
elseif g:badwolf_tabline == 2
|
||||
let s:tabline = 'darkgravel'
|
||||
elseif g:badwolf_tabline == 3
|
||||
let s:tabline = 'deepgravel'
|
||||
else
|
||||
let s:tabline = 'blackestgravel'
|
||||
endif
|
||||
else
|
||||
let s:tabline = 'blackgravel'
|
||||
endif
|
||||
|
||||
" }}}
|
||||
|
||||
" Actual colorscheme ----------------------------------------------------------
|
||||
" Vanilla Vim {{{
|
||||
|
||||
" General/UI {{{
|
||||
|
||||
call s:HL('Normal', 'plain', 'blackgravel')
|
||||
|
||||
call s:HL('Folded', 'mediumgravel', 'bg', 'none')
|
||||
|
||||
call s:HL('VertSplit', 'lightgravel', 'bg', 'none')
|
||||
|
||||
call s:HL('CursorLine', '', 'darkgravel', 'none')
|
||||
call s:HL('CursorColumn', '', 'darkgravel')
|
||||
call s:HL('ColorColumn', '', 'darkgravel')
|
||||
|
||||
call s:HL('TabLine', 'plain', s:tabline, 'none')
|
||||
call s:HL('TabLineFill', 'plain', s:tabline, 'none')
|
||||
call s:HL('TabLineSel', 'coal', 'tardis', 'none')
|
||||
|
||||
call s:HL('MatchParen', 'dalespale', 'darkgravel', 'bold')
|
||||
|
||||
call s:HL('NonText', 'deepgravel', 'bg')
|
||||
call s:HL('SpecialKey', 'deepgravel', 'bg')
|
||||
|
||||
call s:HL('Visual', '', 'deepgravel')
|
||||
call s:HL('VisualNOS', '', 'deepgravel')
|
||||
|
||||
call s:HL('Search', 'coal', 'dalespale', 'bold')
|
||||
call s:HL('IncSearch', 'coal', 'tardis', 'bold')
|
||||
|
||||
call s:HL('Underlined', 'fg', '', 'underline')
|
||||
|
||||
call s:HL('StatusLine', 'coal', 'tardis', 'bold')
|
||||
call s:HL('StatusLineNC', 'snow', 'deepgravel', 'bold')
|
||||
|
||||
call s:HL('Directory', 'dirtyblonde', '', 'bold')
|
||||
|
||||
call s:HL('Title', 'lime')
|
||||
|
||||
call s:HL('ErrorMsg', 'taffy', 'bg', 'bold')
|
||||
call s:HL('MoreMsg', 'dalespale', '', 'bold')
|
||||
call s:HL('ModeMsg', 'dirtyblonde', '', 'bold')
|
||||
call s:HL('Question', 'dirtyblonde', '', 'bold')
|
||||
call s:HL('WarningMsg', 'dress', '', 'bold')
|
||||
|
||||
" This is a ctags tag, not an HTML one. 'Something you can use c-] on'.
|
||||
call s:HL('Tag', '', '', 'bold')
|
||||
|
||||
" hi IndentGuides guibg=#373737
|
||||
" hi WildMenu guifg=#66D9EF guibg=#000000
|
||||
|
||||
" }}}
|
||||
" Gutter {{{
|
||||
|
||||
call s:HL('LineNr', 'mediumgravel', s:gutter)
|
||||
call s:HL('SignColumn', '', s:gutter)
|
||||
call s:HL('FoldColumn', 'mediumgravel', s:gutter)
|
||||
|
||||
" }}}
|
||||
" Cursor {{{
|
||||
|
||||
call s:HL('Cursor', 'coal', 'tardis', 'bold')
|
||||
call s:HL('vCursor', 'coal', 'tardis', 'bold')
|
||||
call s:HL('iCursor', 'coal', 'tardis', 'none')
|
||||
|
||||
" }}}
|
||||
" Syntax highlighting {{{
|
||||
|
||||
" Start with a simple base.
|
||||
call s:HL('Special', 'plain')
|
||||
|
||||
" Comments are slightly brighter than folds, to make 'headers' easier to see.
|
||||
call s:HL('Comment', 'gravel')
|
||||
call s:HL('Todo', 'snow', 'bg', 'bold')
|
||||
call s:HL('SpecialComment', 'snow', 'bg', 'bold')
|
||||
|
||||
" Strings are a nice, pale straw color. Nothing too fancy.
|
||||
call s:HL('String', 'dirtyblonde')
|
||||
|
||||
" Control flow stuff is taffy.
|
||||
call s:HL('Statement', 'taffy', '', 'bold')
|
||||
call s:HL('Keyword', 'taffy', '', 'bold')
|
||||
call s:HL('Conditional', 'taffy', '', 'bold')
|
||||
call s:HL('Operator', 'taffy', '', 'none')
|
||||
call s:HL('Label', 'taffy', '', 'none')
|
||||
call s:HL('Repeat', 'taffy', '', 'none')
|
||||
|
||||
" Functions and variable declarations are orange, because plain looks weird.
|
||||
call s:HL('Identifier', 'orange', '', 'none')
|
||||
call s:HL('Function', 'orange', '', 'none')
|
||||
|
||||
" Preprocessor stuff is lime, to make it pop.
|
||||
"
|
||||
" This includes imports in any given language, because they should usually be
|
||||
" grouped together at the beginning of a file. If they're in the middle of some
|
||||
" other code they should stand out, because something tricky is
|
||||
" probably going on.
|
||||
call s:HL('PreProc', 'lime', '', 'none')
|
||||
call s:HL('Macro', 'lime', '', 'none')
|
||||
call s:HL('Define', 'lime', '', 'none')
|
||||
call s:HL('PreCondit', 'lime', '', 'bold')
|
||||
|
||||
" Constants of all kinds are colored together.
|
||||
" I'm not really happy with the color yet...
|
||||
call s:HL('Constant', 'toffee', '', 'bold')
|
||||
call s:HL('Character', 'toffee', '', 'bold')
|
||||
call s:HL('Boolean', 'toffee', '', 'bold')
|
||||
|
||||
call s:HL('Number', 'toffee', '', 'bold')
|
||||
call s:HL('Float', 'toffee', '', 'bold')
|
||||
|
||||
" Not sure what 'special character in a constant' means, but let's make it pop.
|
||||
call s:HL('SpecialChar', 'dress', '', 'bold')
|
||||
|
||||
call s:HL('Type', 'dress', '', 'none')
|
||||
call s:HL('StorageClass', 'taffy', '', 'none')
|
||||
call s:HL('Structure', 'taffy', '', 'none')
|
||||
call s:HL('Typedef', 'taffy', '', 'bold')
|
||||
|
||||
" Make try/catch blocks stand out.
|
||||
call s:HL('Exception', 'lime', '', 'bold')
|
||||
|
||||
" Misc
|
||||
call s:HL('Error', 'snow', 'taffy', 'bold')
|
||||
call s:HL('Debug', 'snow', '', 'bold')
|
||||
call s:HL('Ignore', 'gravel', '', '')
|
||||
|
||||
" }}}
|
||||
" Completion Menu {{{
|
||||
|
||||
call s:HL('Pmenu', 'plain', 'deepergravel')
|
||||
call s:HL('PmenuSel', 'coal', 'tardis', 'bold')
|
||||
call s:HL('PmenuSbar', '', 'deepergravel')
|
||||
call s:HL('PmenuThumb', 'brightgravel')
|
||||
|
||||
" }}}
|
||||
" Diffs {{{
|
||||
|
||||
call s:HL('DiffDelete', 'coal', 'coal')
|
||||
call s:HL('DiffAdd', '', 'deepergravel')
|
||||
call s:HL('DiffChange', '', 'darkgravel')
|
||||
call s:HL('DiffText', 'snow', 'deepergravel', 'bold')
|
||||
|
||||
" }}}
|
||||
" Spelling {{{
|
||||
|
||||
if has("spell")
|
||||
call s:HL('SpellCap', 'dalespale', 'bg', 'undercurl,bold', 'dalespale')
|
||||
call s:HL('SpellBad', '', 'bg', 'undercurl', 'dalespale')
|
||||
call s:HL('SpellLocal', '', '', 'undercurl', 'dalespale')
|
||||
call s:HL('SpellRare', '', '', 'undercurl', 'dalespale')
|
||||
endif
|
||||
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
" Plugins {{{
|
||||
|
||||
" CtrlP {{{
|
||||
|
||||
" the message when no match is found
|
||||
call s:HL('CtrlPNoEntries', 'snow', 'taffy', 'bold')
|
||||
|
||||
" the matched pattern
|
||||
call s:HL('CtrlPMatch', 'orange', 'bg', 'none')
|
||||
|
||||
" the line prefix '>' in the match window
|
||||
call s:HL('CtrlPLinePre', 'deepgravel', 'bg', 'none')
|
||||
|
||||
" the prompt’s base
|
||||
call s:HL('CtrlPPrtBase', 'deepgravel', 'bg', 'none')
|
||||
|
||||
" the prompt’s text
|
||||
call s:HL('CtrlPPrtText', 'plain', 'bg', 'none')
|
||||
|
||||
" the prompt’s cursor when moving over the text
|
||||
call s:HL('CtrlPPrtCursor', 'coal', 'tardis', 'bold')
|
||||
|
||||
" 'prt' or 'win', also for 'regex'
|
||||
call s:HL('CtrlPMode1', 'coal', 'tardis', 'bold')
|
||||
|
||||
" 'file' or 'path', also for the local working dir
|
||||
call s:HL('CtrlPMode2', 'coal', 'tardis', 'bold')
|
||||
|
||||
" the scanning status
|
||||
call s:HL('CtrlPStats', 'coal', 'tardis', 'bold')
|
||||
|
||||
" TODO: CtrlP extensions.
|
||||
" CtrlPTabExtra : the part of each line that’s not matched against (Comment)
|
||||
" CtrlPqfLineCol : the line and column numbers in quickfix mode (|s:HL-Search|)
|
||||
" CtrlPUndoT : the elapsed time in undo mode (|s:HL-Directory|)
|
||||
" CtrlPUndoBr : the square brackets [] in undo mode (Comment)
|
||||
" CtrlPUndoNr : the undo number inside [] in undo mode (String)
|
||||
|
||||
" }}}
|
||||
" EasyMotion {{{
|
||||
|
||||
call s:HL('EasyMotionTarget', 'tardis', 'bg', 'bold')
|
||||
call s:HL('EasyMotionShade', 'deepgravel', 'bg')
|
||||
|
||||
" }}}
|
||||
" Interesting Words {{{
|
||||
|
||||
" These are only used if you're me or have copied the <leader>hNUM mappings
|
||||
" from my Vimrc.
|
||||
call s:HL('InterestingWord1', 'coal', 'orange')
|
||||
call s:HL('InterestingWord2', 'coal', 'lime')
|
||||
call s:HL('InterestingWord3', 'coal', 'saltwatertaffy')
|
||||
call s:HL('InterestingWord4', 'coal', 'toffee')
|
||||
call s:HL('InterestingWord5', 'coal', 'dress')
|
||||
call s:HL('InterestingWord6', 'coal', 'taffy')
|
||||
|
||||
|
||||
" }}}
|
||||
" Makegreen {{{
|
||||
|
||||
" hi GreenBar term=reverse ctermfg=white ctermbg=green guifg=coal guibg=#9edf1c
|
||||
" hi RedBar term=reverse ctermfg=white ctermbg=red guifg=white guibg=#C50048
|
||||
|
||||
" }}}
|
||||
" Rainbow Parentheses {{{
|
||||
|
||||
call s:HL('level16c', 'mediumgravel', '', 'bold')
|
||||
call s:HL('level15c', 'dalespale', '', '')
|
||||
call s:HL('level14c', 'dress', '', '')
|
||||
call s:HL('level13c', 'orange', '', '')
|
||||
call s:HL('level12c', 'tardis', '', '')
|
||||
call s:HL('level11c', 'lime', '', '')
|
||||
call s:HL('level10c', 'toffee', '', '')
|
||||
call s:HL('level9c', 'saltwatertaffy', '', '')
|
||||
call s:HL('level8c', 'coffee', '', '')
|
||||
call s:HL('level7c', 'dalespale', '', '')
|
||||
call s:HL('level6c', 'dress', '', '')
|
||||
call s:HL('level5c', 'orange', '', '')
|
||||
call s:HL('level4c', 'tardis', '', '')
|
||||
call s:HL('level3c', 'lime', '', '')
|
||||
call s:HL('level2c', 'toffee', '', '')
|
||||
call s:HL('level1c', 'saltwatertaffy', '', '')
|
||||
|
||||
" }}}
|
||||
" ShowMarks {{{
|
||||
|
||||
call s:HL('ShowMarksHLl', 'tardis', 'blackgravel')
|
||||
call s:HL('ShowMarksHLu', 'tardis', 'blackgravel')
|
||||
call s:HL('ShowMarksHLo', 'tardis', 'blackgravel')
|
||||
call s:HL('ShowMarksHLm', 'tardis', 'blackgravel')
|
||||
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
" Filetype-specific {{{
|
||||
|
||||
" Clojure {{{
|
||||
|
||||
call s:HL('clojureSpecial', 'taffy', '', '')
|
||||
call s:HL('clojureDefn', 'taffy', '', '')
|
||||
call s:HL('clojureDefMacro', 'taffy', '', '')
|
||||
call s:HL('clojureDefine', 'taffy', '', '')
|
||||
call s:HL('clojureMacro', 'taffy', '', '')
|
||||
call s:HL('clojureCond', 'taffy', '', '')
|
||||
|
||||
call s:HL('clojureKeyword', 'orange', '', 'none')
|
||||
|
||||
call s:HL('clojureFunc', 'dress', '', 'none')
|
||||
call s:HL('clojureRepeat', 'dress', '', 'none')
|
||||
|
||||
call s:HL('clojureParen0', 'lightgravel', '', 'none')
|
||||
|
||||
call s:HL('clojureAnonArg', 'snow', '', 'bold')
|
||||
|
||||
" }}}
|
||||
" Common Lisp {{{
|
||||
|
||||
call s:HL('lispFunc', 'lime', '', 'none')
|
||||
call s:HL('lispVar', 'orange', '', 'bold')
|
||||
call s:HL('lispEscapeSpecial', 'orange', '', 'none')
|
||||
|
||||
" }}}
|
||||
" CSS {{{
|
||||
|
||||
if g:badwolf_css_props_highlight
|
||||
call s:HL('cssColorProp', 'taffy', '', 'none')
|
||||
call s:HL('cssBoxProp', 'taffy', '', 'none')
|
||||
call s:HL('cssTextProp', 'taffy', '', 'none')
|
||||
call s:HL('cssRenderProp', 'taffy', '', 'none')
|
||||
call s:HL('cssGeneratedContentProp', 'taffy', '', 'none')
|
||||
else
|
||||
call s:HL('cssColorProp', 'fg', '', 'none')
|
||||
call s:HL('cssBoxProp', 'fg', '', 'none')
|
||||
call s:HL('cssTextProp', 'fg', '', 'none')
|
||||
call s:HL('cssRenderProp', 'fg', '', 'none')
|
||||
call s:HL('cssGeneratedContentProp', 'fg', '', 'none')
|
||||
end
|
||||
|
||||
call s:HL('cssValueLength', 'toffee', '', 'bold')
|
||||
call s:HL('cssColor', 'toffee', '', 'bold')
|
||||
call s:HL('cssBraces', 'lightgravel', '', 'none')
|
||||
call s:HL('cssIdentifier', 'orange', '', 'bold')
|
||||
call s:HL('cssClassName', 'orange', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Diff {{{
|
||||
|
||||
call s:HL('gitDiff', 'lightgravel', '',)
|
||||
|
||||
call s:HL('diffRemoved', 'dress', '',)
|
||||
call s:HL('diffAdded', 'lime', '',)
|
||||
call s:HL('diffFile', 'coal', 'taffy', 'bold')
|
||||
call s:HL('diffNewFile', 'coal', 'taffy', 'bold')
|
||||
|
||||
call s:HL('diffLine', 'coal', 'orange', 'bold')
|
||||
call s:HL('diffSubname', 'orange', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Django Templates {{{
|
||||
|
||||
call s:HL('djangoArgument', 'dirtyblonde', '',)
|
||||
call s:HL('djangoTagBlock', 'orange', '')
|
||||
call s:HL('djangoVarBlock', 'orange', '')
|
||||
" hi djangoStatement guifg=#ff3853 gui=bold
|
||||
" hi djangoVarBlock guifg=#f4cf86
|
||||
|
||||
" }}}
|
||||
" HTML {{{
|
||||
|
||||
" Punctuation
|
||||
call s:HL('htmlTag', 'darkroast', 'bg', 'none')
|
||||
call s:HL('htmlEndTag', 'darkroast', 'bg', 'none')
|
||||
|
||||
" Tag names
|
||||
call s:HL('htmlTagName', 'coffee', '', 'bold')
|
||||
call s:HL('htmlSpecialTagName', 'coffee', '', 'bold')
|
||||
call s:HL('htmlSpecialChar', 'lime', '', 'none')
|
||||
|
||||
" Attributes
|
||||
call s:HL('htmlArg', 'coffee', '', 'none')
|
||||
|
||||
" Stuff inside an <a> tag
|
||||
|
||||
if g:badwolf_html_link_underline
|
||||
call s:HL('htmlLink', 'lightgravel', '', 'underline')
|
||||
else
|
||||
call s:HL('htmlLink', 'lightgravel', '', 'none')
|
||||
endif
|
||||
|
||||
" }}}
|
||||
" Java {{{
|
||||
|
||||
call s:HL('javaClassDecl', 'taffy', '', 'bold')
|
||||
call s:HL('javaScopeDecl', 'taffy', '', 'bold')
|
||||
call s:HL('javaCommentTitle', 'gravel', '')
|
||||
call s:HL('javaDocTags', 'snow', '', 'none')
|
||||
call s:HL('javaDocParam', 'dalespale', '', '')
|
||||
|
||||
" }}}
|
||||
" LaTeX {{{
|
||||
|
||||
call s:HL('texStatement', 'tardis', '', 'none')
|
||||
call s:HL('texMathZoneX', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneA', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneB', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneC', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneD', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneE', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneV', 'orange', '', 'none')
|
||||
call s:HL('texMathZoneX', 'orange', '', 'none')
|
||||
call s:HL('texMath', 'orange', '', 'none')
|
||||
call s:HL('texMathMatcher', 'orange', '', 'none')
|
||||
call s:HL('texRefLabel', 'dirtyblonde', '', 'none')
|
||||
call s:HL('texRefZone', 'lime', '', 'none')
|
||||
call s:HL('texComment', 'darkroast', '', 'none')
|
||||
call s:HL('texDelimiter', 'orange', '', 'none')
|
||||
call s:HL('texZone', 'brightgravel', '', 'none')
|
||||
|
||||
augroup badwolf_tex
|
||||
au!
|
||||
|
||||
au BufRead,BufNewFile *.tex syn region texMathZoneV start="\\(" end="\\)\|%stopzone\>" keepend contains=@texMathZoneGroup
|
||||
au BufRead,BufNewFile *.tex syn region texMathZoneX start="\$" skip="\\\\\|\\\$" end="\$\|%stopzone\>" keepend contains=@texMathZoneGroup
|
||||
augroup END
|
||||
|
||||
" }}}
|
||||
" LessCSS {{{
|
||||
|
||||
call s:HL('lessVariable', 'lime', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Lispyscript {{{
|
||||
|
||||
call s:HL('lispyscriptDefMacro', 'lime', '', '')
|
||||
call s:HL('lispyscriptRepeat', 'dress', '', 'none')
|
||||
|
||||
" }}}
|
||||
" REPLs {{{
|
||||
" This isn't a specific plugin, but just useful highlight classes for anything
|
||||
" that might want to use them.
|
||||
|
||||
call s:HL('replPrompt', 'tardis', '', 'bold')
|
||||
|
||||
" }}}
|
||||
" Mail {{{
|
||||
|
||||
call s:HL('mailSubject', 'orange', '', 'bold')
|
||||
call s:HL('mailHeader', 'lightgravel', '', '')
|
||||
call s:HL('mailHeaderKey', 'lightgravel', '', '')
|
||||
call s:HL('mailHeaderEmail', 'snow', '', '')
|
||||
call s:HL('mailURL', 'toffee', '', 'underline')
|
||||
call s:HL('mailSignature', 'gravel', '', 'none')
|
||||
|
||||
call s:HL('mailQuoted1', 'gravel', '', 'none')
|
||||
call s:HL('mailQuoted2', 'dress', '', 'none')
|
||||
call s:HL('mailQuoted3', 'dirtyblonde', '', 'none')
|
||||
call s:HL('mailQuoted4', 'orange', '', 'none')
|
||||
call s:HL('mailQuoted5', 'lime', '', 'none')
|
||||
|
||||
" }}}
|
||||
" Markdown {{{
|
||||
|
||||
call s:HL('markdownHeadingRule', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownHeadingDelimiter', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownOrderedListMarker', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownListMarker', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownItalic', 'snow', '', 'bold')
|
||||
call s:HL('markdownBold', 'snow', '', 'bold')
|
||||
call s:HL('markdownH1', 'orange', '', 'bold')
|
||||
call s:HL('markdownH2', 'lime', '', 'bold')
|
||||
call s:HL('markdownH3', 'lime', '', 'none')
|
||||
call s:HL('markdownH4', 'lime', '', 'none')
|
||||
call s:HL('markdownH5', 'lime', '', 'none')
|
||||
call s:HL('markdownH6', 'lime', '', 'none')
|
||||
call s:HL('markdownLinkText', 'toffee', '', 'underline')
|
||||
call s:HL('markdownIdDeclaration', 'toffee')
|
||||
call s:HL('markdownAutomaticLink', 'toffee', '', 'bold')
|
||||
call s:HL('markdownUrl', 'toffee', '', 'bold')
|
||||
call s:HL('markdownUrldelimiter', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownLinkDelimiter', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownLinkTextDelimiter', 'lightgravel', '', 'bold')
|
||||
call s:HL('markdownCodeDelimiter', 'dirtyblonde', '', 'bold')
|
||||
call s:HL('markdownCode', 'dirtyblonde', '', 'none')
|
||||
call s:HL('markdownCodeBlock', 'dirtyblonde', '', 'none')
|
||||
|
||||
" }}}
|
||||
" MySQL {{{
|
||||
|
||||
call s:HL('mysqlSpecial', 'dress', '', 'bold')
|
||||
|
||||
" }}}
|
||||
" Python {{{
|
||||
|
||||
hi def link pythonOperator Operator
|
||||
call s:HL('pythonBuiltin', 'dress')
|
||||
call s:HL('pythonBuiltinObj', 'dress')
|
||||
call s:HL('pythonBuiltinFunc', 'dress')
|
||||
call s:HL('pythonEscape', 'dress')
|
||||
call s:HL('pythonException', 'lime', '', 'bold')
|
||||
call s:HL('pythonExceptions', 'lime', '', 'none')
|
||||
call s:HL('pythonPrecondit', 'lime', '', 'none')
|
||||
call s:HL('pythonDecorator', 'taffy', '', 'none')
|
||||
call s:HL('pythonRun', 'gravel', '', 'bold')
|
||||
call s:HL('pythonCoding', 'gravel', '', 'bold')
|
||||
|
||||
" }}}
|
||||
" SLIMV {{{
|
||||
|
||||
" Rainbow parentheses
|
||||
call s:HL('hlLevel0', 'gravel')
|
||||
call s:HL('hlLevel1', 'orange')
|
||||
call s:HL('hlLevel2', 'saltwatertaffy')
|
||||
call s:HL('hlLevel3', 'dress')
|
||||
call s:HL('hlLevel4', 'coffee')
|
||||
call s:HL('hlLevel5', 'dirtyblonde')
|
||||
call s:HL('hlLevel6', 'orange')
|
||||
call s:HL('hlLevel7', 'saltwatertaffy')
|
||||
call s:HL('hlLevel8', 'dress')
|
||||
call s:HL('hlLevel9', 'coffee')
|
||||
|
||||
" }}}
|
||||
" Vim {{{
|
||||
|
||||
call s:HL('VimCommentTitle', 'lightgravel', '', 'bold')
|
||||
|
||||
call s:HL('VimMapMod', 'dress', '', 'none')
|
||||
call s:HL('VimMapModKey', 'dress', '', 'none')
|
||||
call s:HL('VimNotation', 'dress', '', 'none')
|
||||
call s:HL('VimBracket', 'dress', '', 'none')
|
||||
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
|
||||
|
|
@ -0,0 +1,672 @@
|
|||
|
||||
set background=dark
|
||||
|
||||
hi clear
|
||||
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let colors_name = "jellybeans"
|
||||
|
||||
if has("gui_running") || (has('termguicolors') && &termguicolors)
|
||||
let s:true_color = 1
|
||||
else
|
||||
let s:true_color = 0
|
||||
endif
|
||||
|
||||
if s:true_color || &t_Co >= 88
|
||||
let s:low_color = 0
|
||||
else
|
||||
let s:low_color = 1
|
||||
endif
|
||||
|
||||
" Configuration Variables:
|
||||
" - g:jellybeans_overrides (default = {})
|
||||
" - g:jellybeans_use_lowcolor_black (default = 0)
|
||||
" - g:jellybeans_use_gui_italics (default = 1)
|
||||
" - g:jellybeans_use_term_italics (default = 0)
|
||||
|
||||
let s:background_color = "000"
|
||||
|
||||
if exists("g:jellybeans_overrides")
|
||||
let s:overrides = g:jellybeans_overrides
|
||||
else
|
||||
let s:overrides = {}
|
||||
endif
|
||||
|
||||
" Backwards compatibility
|
||||
if exists("g:jellybeans_background_color")
|
||||
\ || exists("g:jellybeans_background_color_256")
|
||||
\ || exists("g:jellybeans_use_term_background_color")
|
||||
|
||||
let s:overrides = deepcopy(s:overrides)
|
||||
|
||||
if !has_key(s:overrides, "background")
|
||||
let s:overrides["background"] = {}
|
||||
endif
|
||||
|
||||
if exists("g:jellybeans_background_color")
|
||||
let s:overrides["background"]["guibg"] = g:jellybeans_background_color
|
||||
endif
|
||||
|
||||
if exists("g:jellybeans_background_color_256")
|
||||
let s:overrides["background"]["256ctermbg"] = g:jellybeans_background_color_256
|
||||
endif
|
||||
|
||||
if exists("g:jellybeans_use_term_background_color")
|
||||
\ && g:jellybeans_use_term_background_color
|
||||
let s:overrides["background"]["ctermbg"] = "NONE"
|
||||
let s:overrides["background"]["256ctermbg"] = "NONE"
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("g:jellybeans_use_lowcolor_black") && g:jellybeans_use_lowcolor_black
|
||||
let s:termBlack = "Black"
|
||||
else
|
||||
let s:termBlack = "Grey"
|
||||
endif
|
||||
|
||||
" When `termguicolors` is set, Vim[^1] ignores `hi Normal guibg=NONE`
|
||||
" after Normal's `guibg` is already set to a color. See:
|
||||
"
|
||||
" - https://github.com/vim/vim/issues/981
|
||||
" - https://github.com/nanotech/jellybeans.vim/issues/64
|
||||
"
|
||||
" To work around this, ensure we don't set the default background
|
||||
" color before an override changes it to `NONE` by ensuring that the
|
||||
" background color isn't set to a value different from its override.
|
||||
"
|
||||
" [^1]: Tested on 8.0.567. Does not apply to Neovim.
|
||||
"
|
||||
if has_key(s:overrides, "background") && has_key(s:overrides["background"], "guibg")
|
||||
let s:background_color = s:overrides["background"]["guibg"]
|
||||
endif
|
||||
|
||||
" Color approximation functions by Henry So, Jr. and David Liang {{{
|
||||
" Added to jellybeans.vim by Daniel Herbert
|
||||
|
||||
if &t_Co == 88
|
||||
|
||||
" returns an approximate grey index for the given grey level
|
||||
fun! s:grey_number(x)
|
||||
if a:x < 23
|
||||
return 0
|
||||
elseif a:x < 69
|
||||
return 1
|
||||
elseif a:x < 103
|
||||
return 2
|
||||
elseif a:x < 127
|
||||
return 3
|
||||
elseif a:x < 150
|
||||
return 4
|
||||
elseif a:x < 173
|
||||
return 5
|
||||
elseif a:x < 196
|
||||
return 6
|
||||
elseif a:x < 219
|
||||
return 7
|
||||
elseif a:x < 243
|
||||
return 8
|
||||
else
|
||||
return 9
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the actual grey level represented by the grey index
|
||||
fun! s:grey_level(n)
|
||||
if a:n == 0
|
||||
return 0
|
||||
elseif a:n == 1
|
||||
return 46
|
||||
elseif a:n == 2
|
||||
return 92
|
||||
elseif a:n == 3
|
||||
return 115
|
||||
elseif a:n == 4
|
||||
return 139
|
||||
elseif a:n == 5
|
||||
return 162
|
||||
elseif a:n == 6
|
||||
return 185
|
||||
elseif a:n == 7
|
||||
return 208
|
||||
elseif a:n == 8
|
||||
return 231
|
||||
else
|
||||
return 255
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the palette index for the given grey index
|
||||
fun! s:grey_color(n)
|
||||
if a:n == 0
|
||||
return 16
|
||||
elseif a:n == 9
|
||||
return 79
|
||||
else
|
||||
return 79 + a:n
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns an approximate color index for the given color level
|
||||
fun! s:rgb_number(x)
|
||||
if a:x < 69
|
||||
return 0
|
||||
elseif a:x < 172
|
||||
return 1
|
||||
elseif a:x < 230
|
||||
return 2
|
||||
else
|
||||
return 3
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the actual color level for the given color index
|
||||
fun! s:rgb_level(n)
|
||||
if a:n == 0
|
||||
return 0
|
||||
elseif a:n == 1
|
||||
return 139
|
||||
elseif a:n == 2
|
||||
return 205
|
||||
else
|
||||
return 255
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the palette index for the given R/G/B color indices
|
||||
fun! s:rgb_color(x, y, z)
|
||||
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||
endfun
|
||||
|
||||
else " assuming &t_Co == 256
|
||||
|
||||
" returns an approximate grey index for the given grey level
|
||||
fun! s:grey_number(x)
|
||||
if a:x < 14
|
||||
return 0
|
||||
else
|
||||
let l:n = (a:x - 8) / 10
|
||||
let l:m = (a:x - 8) % 10
|
||||
if l:m < 5
|
||||
return l:n
|
||||
else
|
||||
return l:n + 1
|
||||
endif
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the actual grey level represented by the grey index
|
||||
fun! s:grey_level(n)
|
||||
if a:n == 0
|
||||
return 0
|
||||
else
|
||||
return 8 + (a:n * 10)
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the palette index for the given grey index
|
||||
fun! s:grey_color(n)
|
||||
if a:n == 0
|
||||
return 16
|
||||
elseif a:n == 25
|
||||
return 231
|
||||
else
|
||||
return 231 + a:n
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns an approximate color index for the given color level
|
||||
fun! s:rgb_number(x)
|
||||
if a:x < 75
|
||||
return 0
|
||||
else
|
||||
let l:n = (a:x - 55) / 40
|
||||
let l:m = (a:x - 55) % 40
|
||||
if l:m < 20
|
||||
return l:n
|
||||
else
|
||||
return l:n + 1
|
||||
endif
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the actual color level for the given color index
|
||||
fun! s:rgb_level(n)
|
||||
if a:n == 0
|
||||
return 0
|
||||
else
|
||||
return 55 + (a:n * 40)
|
||||
endif
|
||||
endfun
|
||||
|
||||
" returns the palette index for the given R/G/B color indices
|
||||
fun! s:rgb_color(x, y, z)
|
||||
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||
endfun
|
||||
|
||||
endif
|
||||
|
||||
" returns the palette index to approximate the given R/G/B color levels
|
||||
fun! s:color(r, g, b)
|
||||
" map greys directly (see xterm's 256colres.pl)
|
||||
if &t_Co == 256 && a:r == a:g && a:g == a:b && a:r > 3 && a:r < 243
|
||||
return (a:r - 8) / 10 + 232
|
||||
endif
|
||||
|
||||
" get the closest grey
|
||||
let l:gx = s:grey_number(a:r)
|
||||
let l:gy = s:grey_number(a:g)
|
||||
let l:gz = s:grey_number(a:b)
|
||||
|
||||
" get the closest color
|
||||
let l:x = s:rgb_number(a:r)
|
||||
let l:y = s:rgb_number(a:g)
|
||||
let l:z = s:rgb_number(a:b)
|
||||
|
||||
if l:gx == l:gy && l:gy == l:gz
|
||||
" there are two possibilities
|
||||
let l:dgr = s:grey_level(l:gx) - a:r
|
||||
let l:dgg = s:grey_level(l:gy) - a:g
|
||||
let l:dgb = s:grey_level(l:gz) - a:b
|
||||
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||
let l:dr = s:rgb_level(l:gx) - a:r
|
||||
let l:dg = s:rgb_level(l:gy) - a:g
|
||||
let l:db = s:rgb_level(l:gz) - a:b
|
||||
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||
if l:dgrey < l:drgb
|
||||
" use the grey
|
||||
return s:grey_color(l:gx)
|
||||
else
|
||||
" use the color
|
||||
return s:rgb_color(l:x, l:y, l:z)
|
||||
endif
|
||||
else
|
||||
" only one possibility
|
||||
return s:rgb_color(l:x, l:y, l:z)
|
||||
endif
|
||||
endfun
|
||||
|
||||
fun! s:is_empty_or_none(str)
|
||||
return empty(a:str) || a:str ==? "NONE"
|
||||
endfun
|
||||
|
||||
" returns the palette index to approximate the 'rrggbb' hex string
|
||||
fun! s:rgb(rgb)
|
||||
if s:is_empty_or_none(a:rgb)
|
||||
return "NONE"
|
||||
endif
|
||||
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||
return s:color(l:r, l:g, l:b)
|
||||
endfun
|
||||
|
||||
fun! s:prefix_highlight_value_with(prefix, color)
|
||||
if s:is_empty_or_none(a:color)
|
||||
return "NONE"
|
||||
else
|
||||
return a:prefix . a:color
|
||||
endif
|
||||
endfun
|
||||
|
||||
fun! s:remove_italic_attr(attr)
|
||||
let l:attr = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",")
|
||||
if empty(l:attr)
|
||||
let l:attr = "NONE"
|
||||
endif
|
||||
return l:attr
|
||||
endfun
|
||||
|
||||
" sets the highlighting for the given group
|
||||
fun! s:X(group, fg, bg, attr, lcfg, lcbg)
|
||||
if s:low_color
|
||||
let l:cmd = "hi ".a:group.
|
||||
\ " ctermfg=".s:prefix_highlight_value_with("", a:lcfg).
|
||||
\ " ctermbg=".s:prefix_highlight_value_with("", a:lcbg)
|
||||
else
|
||||
let l:cmd = "hi ".a:group.
|
||||
\ " guifg=".s:prefix_highlight_value_with("#", a:fg).
|
||||
\ " guibg=".s:prefix_highlight_value_with("#", a:bg)
|
||||
if !s:true_color
|
||||
let l:cmd = l:cmd.
|
||||
\ " ctermfg=".s:rgb(a:fg).
|
||||
\ " ctermbg=".s:rgb(a:bg)
|
||||
endif
|
||||
endif
|
||||
|
||||
let l:attr = s:prefix_highlight_value_with("", a:attr)
|
||||
|
||||
if exists("g:jellybeans_use_term_italics") && g:jellybeans_use_term_italics
|
||||
let l:cterm_attr = l:attr
|
||||
else
|
||||
let l:cterm_attr = s:remove_italic_attr(l:attr)
|
||||
endif
|
||||
|
||||
if !exists("g:jellybeans_use_gui_italics") || g:jellybeans_use_gui_italics
|
||||
let l:gui_attr = l:attr
|
||||
else
|
||||
let l:gui_attr = s:remove_italic_attr(l:attr)
|
||||
endif
|
||||
|
||||
let l:cmd = l:cmd." gui=".l:gui_attr." cterm=".l:cterm_attr
|
||||
exec l:cmd
|
||||
endfun
|
||||
" }}}
|
||||
|
||||
call s:X("Normal","e8e8d3",s:background_color,"","White","")
|
||||
set background=dark
|
||||
|
||||
call s:X("CursorLine","","1c1c1c","","",s:termBlack)
|
||||
call s:X("CursorColumn","","1c1c1c","","",s:termBlack)
|
||||
|
||||
" Some of Terminal.app's default themes have a cursor color
|
||||
" too close to Jellybeans' preferred MatchParen background
|
||||
" color to be easily distinguishable. Other terminals tend
|
||||
" to use a brighter cursor color.
|
||||
"
|
||||
" Use a more distinct color in Terminal.app, and also in
|
||||
" low-color terminals if the preferred background color is
|
||||
" not available.
|
||||
if !has('gui_running') && $TERM_PROGRAM == "Apple_Terminal"
|
||||
let s:matchParenGuiFg = "dd0093"
|
||||
let s:matchParenGuiBg = "000000"
|
||||
else
|
||||
let s:matchParenGuiFg = "ffffff"
|
||||
let s:matchParenGuiBg = "556779"
|
||||
endif
|
||||
if s:termBlack != "Black"
|
||||
let s:matchParenTermFg = "Magenta"
|
||||
let s:matchParenTermBg = ""
|
||||
else
|
||||
let s:matchParenTermFg = ""
|
||||
let s:matchParenTermBg = s:termBlack
|
||||
endif
|
||||
call s:X("MatchParen",s:matchParenGuiFg,s:matchParenGuiBg,"bold",
|
||||
\ s:matchParenTermFg,s:matchParenTermBg)
|
||||
|
||||
call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack)
|
||||
call s:X("TabLineFill","9098a0","","","",s:termBlack)
|
||||
call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White")
|
||||
|
||||
" Auto-completion
|
||||
call s:X("Pmenu","ffffff","606060","","White",s:termBlack)
|
||||
call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White")
|
||||
|
||||
call s:X("Visual","","404040","","",s:termBlack)
|
||||
call s:X("Cursor",s:background_color,"b0d0f0","","","")
|
||||
|
||||
call s:X("LineNr","605958",s:background_color,"NONE",s:termBlack,"")
|
||||
call s:X("CursorLineNr","ccc5c4","","NONE","White","")
|
||||
call s:X("Comment","888888","","italic","Grey","")
|
||||
call s:X("Todo","c7c7c7","","bold","White",s:termBlack)
|
||||
|
||||
call s:X("StatusLine","000000","dddddd","italic","","White")
|
||||
call s:X("StatusLineNC","ffffff","403c41","italic","White","Black")
|
||||
call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack)
|
||||
call s:X("WildMenu","f0a0c0","302028","","Magenta","")
|
||||
|
||||
call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"")
|
||||
call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack)
|
||||
call s:X("SignColumn","777777","333333","","",s:termBlack)
|
||||
call s:X("ColorColumn","","000000","","",s:termBlack)
|
||||
|
||||
call s:X("Title","70b950","","bold","Green","")
|
||||
|
||||
call s:X("Constant","cf6a4c","","","Red","")
|
||||
call s:X("Special","799d6a","","","Green","")
|
||||
call s:X("Delimiter","668799","","","Grey","")
|
||||
|
||||
call s:X("String","99ad6a","","","Green","")
|
||||
call s:X("StringDelimiter","556633","","","DarkGreen","")
|
||||
|
||||
call s:X("Identifier","c6b6ee","","","LightCyan","")
|
||||
call s:X("Structure","8fbfdc","","","LightCyan","")
|
||||
call s:X("Function","fad07a","","","Yellow","")
|
||||
call s:X("Statement","8197bf","","","DarkBlue","")
|
||||
call s:X("PreProc","8fbfdc","","","LightBlue","")
|
||||
|
||||
hi! link Operator Structure
|
||||
hi! link Conceal Operator
|
||||
|
||||
call s:X("Type","ffb964","","","Yellow","")
|
||||
call s:X("NonText","606060",s:background_color,"",s:termBlack,"")
|
||||
|
||||
call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"")
|
||||
|
||||
call s:X("Search","f0a0c0","302028","underline","Magenta","")
|
||||
|
||||
call s:X("Directory","dad085","","","Yellow","")
|
||||
call s:X("ErrorMsg","","902020","","","DarkRed")
|
||||
hi! link Error ErrorMsg
|
||||
hi! link MoreMsg Special
|
||||
call s:X("Question","65C254","","","Green","")
|
||||
|
||||
|
||||
" Spell Checking
|
||||
|
||||
call s:X("SpellBad","","902020","underline","","DarkRed")
|
||||
call s:X("SpellCap","","0000df","underline","","Blue")
|
||||
call s:X("SpellRare","","540063","underline","","DarkMagenta")
|
||||
call s:X("SpellLocal","","2D7067","underline","","Green")
|
||||
|
||||
" Diff
|
||||
|
||||
hi! link diffRemoved Constant
|
||||
hi! link diffAdded String
|
||||
|
||||
" VimDiff
|
||||
|
||||
call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen")
|
||||
call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed")
|
||||
call s:X("DiffChange","","2B5B77","","White","DarkBlue")
|
||||
call s:X("DiffText","8fbfdc","000000","reverse","Yellow","")
|
||||
|
||||
" PHP
|
||||
|
||||
hi! link phpFunctions Function
|
||||
call s:X("StorageClass","c59f6f","","","Red","")
|
||||
hi! link phpSuperglobal Identifier
|
||||
hi! link phpQuoteSingle StringDelimiter
|
||||
hi! link phpQuoteDouble StringDelimiter
|
||||
hi! link phpBoolean Constant
|
||||
hi! link phpNull Constant
|
||||
hi! link phpArrayPair Operator
|
||||
hi! link phpOperator Normal
|
||||
hi! link phpRelation Normal
|
||||
hi! link phpVarSelector Identifier
|
||||
|
||||
" Python
|
||||
|
||||
hi! link pythonOperator Statement
|
||||
|
||||
" Ruby
|
||||
|
||||
hi! link rubySharpBang Comment
|
||||
call s:X("rubyClass","447799","","","DarkBlue","")
|
||||
call s:X("rubyIdentifier","c6b6fe","","","Cyan","")
|
||||
hi! link rubyConstant Type
|
||||
hi! link rubyFunction Function
|
||||
|
||||
call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","")
|
||||
call s:X("rubySymbol","7697d6","","","Blue","")
|
||||
hi! link rubyGlobalVariable rubyInstanceVariable
|
||||
hi! link rubyModule rubyClass
|
||||
call s:X("rubyControl","7597c6","","","Blue","")
|
||||
|
||||
hi! link rubyString String
|
||||
hi! link rubyStringDelimiter StringDelimiter
|
||||
hi! link rubyInterpolationDelimiter Identifier
|
||||
|
||||
call s:X("rubyRegexpDelimiter","540063","","","Magenta","")
|
||||
call s:X("rubyRegexp","dd0093","","","DarkMagenta","")
|
||||
call s:X("rubyRegexpSpecial","a40073","","","Magenta","")
|
||||
|
||||
call s:X("rubyPredefinedIdentifier","de5577","","","Red","")
|
||||
|
||||
" Erlang
|
||||
|
||||
hi! link erlangAtom rubySymbol
|
||||
hi! link erlangBIF rubyPredefinedIdentifier
|
||||
hi! link erlangFunction rubyPredefinedIdentifier
|
||||
hi! link erlangDirective Statement
|
||||
hi! link erlangNode Identifier
|
||||
|
||||
" Elixir
|
||||
|
||||
hi! link elixirAtom rubySymbol
|
||||
|
||||
|
||||
" JavaScript
|
||||
|
||||
hi! link javaScriptValue Constant
|
||||
hi! link javaScriptRegexpString rubyRegexp
|
||||
hi! link javaScriptTemplateVar StringDelim
|
||||
hi! link javaScriptTemplateDelim Identifier
|
||||
hi! link javaScriptTemplateString String
|
||||
|
||||
" CoffeeScript
|
||||
|
||||
hi! link coffeeRegExp javaScriptRegexpString
|
||||
|
||||
" Lua
|
||||
|
||||
hi! link luaOperator Conditional
|
||||
|
||||
" C
|
||||
|
||||
hi! link cFormat Identifier
|
||||
hi! link cOperator Constant
|
||||
|
||||
" Objective-C/Cocoa
|
||||
|
||||
hi! link objcClass Type
|
||||
hi! link cocoaClass objcClass
|
||||
hi! link objcSubclass objcClass
|
||||
hi! link objcSuperclass objcClass
|
||||
hi! link objcDirective rubyClass
|
||||
hi! link objcStatement Constant
|
||||
hi! link cocoaFunction Function
|
||||
hi! link objcMethodName Identifier
|
||||
hi! link objcMethodArg Normal
|
||||
hi! link objcMessageName Identifier
|
||||
|
||||
" Vimscript
|
||||
|
||||
hi! link vimOper Normal
|
||||
|
||||
" HTML
|
||||
|
||||
hi! link htmlTag Statement
|
||||
hi! link htmlEndTag htmlTag
|
||||
hi! link htmlTagName htmlTag
|
||||
|
||||
" XML
|
||||
|
||||
hi! link xmlTag Statement
|
||||
hi! link xmlEndTag xmlTag
|
||||
hi! link xmlTagName xmlTag
|
||||
hi! link xmlEqual xmlTag
|
||||
hi! link xmlEntity Special
|
||||
hi! link xmlEntityPunct xmlEntity
|
||||
hi! link xmlDocTypeDecl PreProc
|
||||
hi! link xmlDocTypeKeyword PreProc
|
||||
hi! link xmlProcessingDelim xmlAttrib
|
||||
|
||||
" Debugger.vim
|
||||
|
||||
call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue")
|
||||
call s:X("DbgBreakPt","","4F0037","","","DarkMagenta")
|
||||
|
||||
" vim-indent-guides
|
||||
|
||||
if !exists("g:indent_guides_auto_colors")
|
||||
let g:indent_guides_auto_colors = 0
|
||||
endif
|
||||
call s:X("IndentGuidesOdd","","232323","","","")
|
||||
call s:X("IndentGuidesEven","","1b1b1b","","","")
|
||||
|
||||
" Plugins, etc.
|
||||
|
||||
hi! link TagListFileName Directory
|
||||
call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green")
|
||||
|
||||
" Manual overrides for 256-color terminals. Dark colors auto-map badly.
|
||||
if !s:low_color
|
||||
hi StatusLineNC ctermbg=235
|
||||
hi Folded ctermbg=236
|
||||
hi DiffText ctermfg=81
|
||||
hi DbgBreakPt ctermbg=53
|
||||
hi IndentGuidesOdd ctermbg=235
|
||||
hi IndentGuidesEven ctermbg=234
|
||||
endif
|
||||
|
||||
if !empty("s:overrides")
|
||||
fun! s:current_attr(group)
|
||||
let l:synid = synIDtrans(hlID(a:group))
|
||||
let l:attrs = []
|
||||
for l:attr in ["bold", "italic", "reverse", "standout", "underline", "undercurl"]
|
||||
if synIDattr(l:synid, l:attr, "gui") == 1
|
||||
call add(l:attrs, l:attr)
|
||||
endif
|
||||
endfor
|
||||
return join(l:attrs, ",")
|
||||
endfun
|
||||
fun! s:current_color(group, what, mode)
|
||||
let l:color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode)
|
||||
if l:color == -1
|
||||
return ""
|
||||
else
|
||||
return substitute(l:color, "^#", "", "")
|
||||
endif
|
||||
endfun
|
||||
fun! s:load_color_def(group, def)
|
||||
call s:X(a:group, get(a:def, "guifg", s:current_color(a:group, "fg", "gui")),
|
||||
\ get(a:def, "guibg", s:current_color(a:group, "bg", "gui")),
|
||||
\ get(a:def, "attr", s:current_attr(a:group)),
|
||||
\ get(a:def, "ctermfg", s:current_color(a:group, "fg", "cterm")),
|
||||
\ get(a:def, "ctermbg", s:current_color(a:group, "bg", "cterm")))
|
||||
if !s:low_color
|
||||
for l:prop in ["ctermfg", "ctermbg"]
|
||||
let l:override_key = "256".l:prop
|
||||
if has_key(a:def, l:override_key)
|
||||
exec "hi ".a:group." ".l:prop."=".a:def[l:override_key]
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
endfun
|
||||
fun! s:load_colors(defs)
|
||||
for [l:group, l:def] in items(a:defs)
|
||||
if l:group == "background"
|
||||
call s:load_color_def("LineNr", l:def)
|
||||
call s:load_color_def("NonText", l:def)
|
||||
call s:load_color_def("Normal", l:def)
|
||||
else
|
||||
call s:load_color_def(l:group, l:def)
|
||||
endif
|
||||
unlet l:group
|
||||
unlet l:def
|
||||
endfor
|
||||
endfun
|
||||
call s:load_colors(s:overrides)
|
||||
delf s:load_colors
|
||||
delf s:load_color_def
|
||||
delf s:current_color
|
||||
delf s:current_attr
|
||||
endif
|
||||
|
||||
" delete functions {{{
|
||||
delf s:X
|
||||
delf s:remove_italic_attr
|
||||
delf s:prefix_highlight_value_with
|
||||
delf s:rgb
|
||||
delf s:is_empty_or_none
|
||||
delf s:color
|
||||
delf s:rgb_color
|
||||
delf s:rgb_level
|
||||
delf s:rgb_number
|
||||
delf s:grey_color
|
||||
delf s:grey_level
|
||||
delf s:grey_number
|
||||
" }}}
|
||||
|
|
@ -0,0 +1,261 @@
|
|||
" Quantum - A 24-bit Material color scheme for Vim
|
||||
" Author: Brandon Siders
|
||||
" License: MIT
|
||||
|
||||
highlight clear
|
||||
|
||||
if exists('syntax_on')
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
set background=dark
|
||||
let g:colors_name = 'quantum'
|
||||
|
||||
let g:quantum_italics = get(g:, 'quantum_italics', 0)
|
||||
let g:quantum_black = get(g:, 'quantum_black', 0)
|
||||
|
||||
" Color Palette
|
||||
let s:gray1 = g:quantum_black ? '#000000' : '#000'
|
||||
let s:gray2 = g:quantum_black ? '#292929' : '#2c3a41'
|
||||
let s:gray3 = g:quantum_black ? '#474646' : '#425762'
|
||||
let s:gray4 = g:quantum_black ? '#6a6c6c' : '#658494'
|
||||
let s:gray5 = g:quantum_black ? '#b7bdc0' : '#aebbc5'
|
||||
let s:red = '#dd7186'
|
||||
let s:green = '#87bb7c'
|
||||
let s:yellow = '#d5b875'
|
||||
let s:blue = '#70ace5'
|
||||
let s:purple = '#a48add'
|
||||
let s:cyan = '#69c5ce'
|
||||
let s:orange = '#d7956e'
|
||||
let s:indigo = '#7681de'
|
||||
|
||||
function! s:HL(group, fg, bg, attr)
|
||||
let l:attr = a:attr
|
||||
if !g:quantum_italics && l:attr ==# 'italic'
|
||||
let l:attr = 'none'
|
||||
endif
|
||||
|
||||
if !empty(a:fg)
|
||||
exec 'hi ' . a:group . ' guifg=' . a:fg
|
||||
endif
|
||||
if !empty(a:bg)
|
||||
exec 'hi ' . a:group . ' guibg=' . a:bg
|
||||
endif
|
||||
if !empty(a:attr)
|
||||
exec 'hi ' . a:group . ' gui=' . l:attr . ' cterm=' . l:attr
|
||||
endif
|
||||
endfun
|
||||
|
||||
" Vim Editor
|
||||
call s:HL('ColorColumn', '', s:gray2, '')
|
||||
call s:HL('Cursor', s:gray2, s:gray5, '')
|
||||
call s:HL('CursorColumn', '', s:gray2, '')
|
||||
call s:HL('CursorLine', '', s:gray2, 'none')
|
||||
call s:HL('CursorLineNr', s:cyan, s:gray2, 'none')
|
||||
call s:HL('Directory', s:blue, '', '')
|
||||
call s:HL('DiffAdd', s:green, s:gray2, 'none')
|
||||
call s:HL('DiffChange', s:yellow, s:gray2, 'none')
|
||||
call s:HL('DiffDelete', s:red, s:gray2, 'none')
|
||||
call s:HL('DiffText', s:blue, s:gray2, 'none')
|
||||
call s:HL('ErrorMsg', s:red, s:gray1, 'bold')
|
||||
call s:HL('FoldColumn', s:gray4, s:gray1, '')
|
||||
call s:HL('Folded', s:gray3, s:gray1, '')
|
||||
call s:HL('IncSearch', s:gray1, 's:gray5', '')
|
||||
call s:HL('LineNr', s:gray3, '', '')
|
||||
call s:HL('MatchParen', s:gray4, s:cyan, 'bold')
|
||||
call s:HL('ModeMsg', s:green, '', '')
|
||||
call s:HL('MoreMsg', s:green, '', '')
|
||||
call s:HL('NonText', s:gray4, '', 'none')
|
||||
call s:HL('Normal', s:gray5, s:gray1, 'none')
|
||||
call s:HL('Pmenu', s:gray5, s:gray3, '')
|
||||
call s:HL('PmenuSbar', '', s:gray2, '')
|
||||
call s:HL('PmenuSel', s:gray2, s:cyan, '')
|
||||
call s:HL('PmenuThumb', '', s:gray4, '')
|
||||
call s:HL('Question', s:blue, '', 'none')
|
||||
call s:HL('Search', s:yellow, s:gray1, '')
|
||||
call s:HL('SignColumn', s:gray5, s:gray1, '')
|
||||
call s:HL('SpecialKey', s:gray4, '', '')
|
||||
call s:HL('SpellCap', s:blue, s:gray2, 'undercurl')
|
||||
call s:HL('SpellBad', s:red, s:gray2, 'undercurl')
|
||||
call s:HL('StatusLine', s:gray5, s:gray3, 'none')
|
||||
call s:HL('StatusLineNC', s:gray2, s:gray4, '')
|
||||
call s:HL('TabLine', s:gray4, s:gray2, 'none')
|
||||
call s:HL('TabLineFill', s:gray4, s:gray2, 'none')
|
||||
call s:HL('TabLineSel', s:yellow, s:gray3, 'none')
|
||||
call s:HL('Title', s:green, '', 'none')
|
||||
call s:HL('VertSplit', s:gray4, s:gray1, 'none')
|
||||
call s:HL('Visual', s:gray5, s:gray3, '')
|
||||
call s:HL('WarningMsg', s:red, '', '')
|
||||
call s:HL('WildMenu', s:gray2, s:cyan, '')
|
||||
|
||||
" Standard Syntax
|
||||
call s:HL('Comment', s:gray4, '', 'italic')
|
||||
call s:HL('Constant', s:orange, '', '')
|
||||
call s:HL('String', s:green, '', '')
|
||||
call s:HL('Character', s:green, '', '')
|
||||
call s:HL('Identifier', s:red, '', 'none')
|
||||
call s:HL('Function', s:blue, '', '')
|
||||
call s:HL('Statement', s:purple, '', 'none')
|
||||
call s:HL('Operator', s:cyan, '', '')
|
||||
call s:HL('PreProc', s:cyan, '', '')
|
||||
call s:HL('Include', s:blue, '', '')
|
||||
call s:HL('Define', s:purple, '', 'none')
|
||||
call s:HL('Macro', s:purple, '', '')
|
||||
call s:HL('Type', s:yellow, '', 'none')
|
||||
call s:HL('Structure', s:cyan, '', '')
|
||||
call s:HL('Special', s:indigo, '', '')
|
||||
call s:HL('Underlined', s:blue, '', 'none')
|
||||
call s:HL('Error', s:red, s:gray1, 'bold')
|
||||
call s:HL('Todo', s:orange, s:gray1, 'bold')
|
||||
|
||||
" CSS
|
||||
call s:HL('cssAttrComma', s:gray5, '', '')
|
||||
call s:HL('cssPseudoClassId', s:yellow, '', '')
|
||||
call s:HL('cssBraces', s:gray5, '', '')
|
||||
call s:HL('cssClassName', s:yellow, '', '')
|
||||
call s:HL('cssClassNameDot', s:yellow, '', '')
|
||||
call s:HL('cssFunctionName', s:blue, '', '')
|
||||
call s:HL('cssImportant', s:cyan, '', '')
|
||||
call s:HL('cssIncludeKeyword', s:purple, '', '')
|
||||
call s:HL('cssTagName', s:red, '', '')
|
||||
call s:HL('cssMediaType', s:orange, '', '')
|
||||
call s:HL('cssProp', s:gray5, '', '')
|
||||
call s:HL('cssSelectorOp', s:cyan, '', '')
|
||||
call s:HL('cssSelectorOp2', s:cyan, '', '')
|
||||
|
||||
" Commit Messages (Git)
|
||||
call s:HL('gitcommitHeader', s:purple, '', '')
|
||||
call s:HL('gitcommitUnmerged', s:green, '', '')
|
||||
call s:HL('gitcommitSelectedFile', s:green, '', '')
|
||||
call s:HL('gitcommitDiscardedFile', s:red, '', '')
|
||||
call s:HL('gitcommitUnmergedFile', s:yellow, '', '')
|
||||
call s:HL('gitcommitSelectedType', s:green, '', '')
|
||||
call s:HL('gitcommitSummary', s:blue, '', '')
|
||||
call s:HL('gitcommitDiscardedType', s:red, '', '')
|
||||
hi link gitcommitNoBranch gitcommitBranch
|
||||
hi link gitcommitUntracked gitcommitComment
|
||||
hi link gitcommitDiscarded gitcommitComment
|
||||
hi link gitcommitSelected gitcommitComment
|
||||
hi link gitcommitDiscardedArrow gitcommitDiscardedFile
|
||||
hi link gitcommitSelectedArrow gitcommitSelectedFile
|
||||
hi link gitcommitUnmergedArrow gitcommitUnmergedFile
|
||||
|
||||
" HTML
|
||||
call s:HL('htmlEndTag', s:blue, '', '')
|
||||
call s:HL('htmlLink', s:red, '', '')
|
||||
call s:HL('htmlTag', s:blue, '', '')
|
||||
call s:HL('htmlTitle', s:gray5, '', '')
|
||||
call s:HL('htmlSpecialTagName', s:purple, '', '')
|
||||
|
||||
" Javascript
|
||||
call s:HL('javaScriptBraces', s:gray5, '', '')
|
||||
call s:HL('javaScriptNull', s:orange, '', '')
|
||||
call s:HL('javaScriptIdentifier', s:purple, '', '')
|
||||
call s:HL('javaScriptNumber', s:orange, '', '')
|
||||
call s:HL('javaScriptRequire', s:cyan, '', '')
|
||||
call s:HL('javaScriptReserved', s:purple, '', '')
|
||||
" pangloss/vim-javascript
|
||||
call s:HL('jsArrowFunction', s:purple, '', '')
|
||||
call s:HL('jsAsyncKeyword', s:purple, '', '')
|
||||
call s:HL('jsExtendsKeyword', s:purple, '', '')
|
||||
call s:HL('jsClassKeyword', s:purple, '', '')
|
||||
call s:HL('jsDocParam', s:green, '', '')
|
||||
call s:HL('jsDocTags', s:cyan, '', '')
|
||||
call s:HL('jsForAwait', s:purple, '', '')
|
||||
call s:HL('jsFlowArgumentDef', s:yellow, '', '')
|
||||
call s:HL('jsFrom', s:purple, '', '')
|
||||
call s:HL('jsImport', s:purple, '', '')
|
||||
call s:HL('jsExport', s:purple, '', '')
|
||||
call s:HL('jsExportDefault', s:purple, '', '')
|
||||
call s:HL('jsFuncCall', s:blue, '', '')
|
||||
call s:HL('jsFunction', s:purple, '', '')
|
||||
call s:HL('jsGlobalObjects', s:yellow, '', '')
|
||||
call s:HL('jsGlobalNodeObjects', s:yellow, '', '')
|
||||
call s:HL('jsModuleAs', s:purple, '', '')
|
||||
call s:HL('jsNull', s:orange, '', '')
|
||||
call s:HL('jsStorageClass', s:purple, '', '')
|
||||
call s:HL('jsTemplateBraces', s:red, '', '')
|
||||
call s:HL('jsTemplateExpression', s:red, '', '')
|
||||
call s:HL('jsThis', s:red, '', '')
|
||||
call s:HL('jsUndefined', s:orange, '', '')
|
||||
|
||||
" JSON
|
||||
call s:HL('jsonBraces', s:gray5, '', '')
|
||||
|
||||
" Less
|
||||
call s:HL('lessAmpersand', s:red, '', '')
|
||||
call s:HL('lessClassChar', s:yellow, '', '')
|
||||
call s:HL('lessCssAttribute', s:gray5, '', '')
|
||||
call s:HL('lessFunction', s:blue, '', '')
|
||||
call s:HL('lessVariable', s:purple, '', '')
|
||||
|
||||
" Markdown
|
||||
call s:HL('markdownBold', s:yellow, '', 'bold')
|
||||
call s:HL('markdownCode', s:cyan, '', '')
|
||||
call s:HL('markdownCodeBlock', s:cyan, '', '')
|
||||
call s:HL('markdownCodeDelimiter', s:cyan, '', '')
|
||||
call s:HL('markdownHeadingDelimiter', s:green, '', '')
|
||||
call s:HL('markdownHeadingRule', s:gray4, '', '')
|
||||
call s:HL('markdownId', s:purple, '', '')
|
||||
call s:HL('markdownItalic', s:blue, '', 'italic')
|
||||
call s:HL('markdownListMarker', s:orange, '', '')
|
||||
call s:HL('markdownOrderedListMarker', s:orange, '', '')
|
||||
call s:HL('markdownRule', s:gray4, '', '')
|
||||
call s:HL('markdownUrl', s:purple, '', '')
|
||||
call s:HL('markdownUrlTitleDelimiter', s:green, '', '')
|
||||
|
||||
" Ruby
|
||||
call s:HL('rubyInterpolation', s:cyan, '', '')
|
||||
call s:HL('rubyInterpolationDelimiter', s:indigo, '', '')
|
||||
call s:HL('rubyRegexp', s:cyan, '', '')
|
||||
call s:HL('rubyRegexpDelimiter', s:indigo, '', '')
|
||||
call s:HL('rubyStringDelimiter', s:green, '', '')
|
||||
|
||||
" Sass
|
||||
call s:HL('sassAmpersand', s:red, '', '')
|
||||
call s:HL('sassClassChar', s:yellow, '', '')
|
||||
call s:HL('sassMixinName', s:blue, '', '')
|
||||
call s:HL('sassVariable', s:purple, '', '')
|
||||
|
||||
" Vim-Fugitive
|
||||
call s:HL('diffAdded', s:green, '', '')
|
||||
call s:HL('diffRemoved', s:red, '', '')
|
||||
|
||||
" Vim-Gittgutter
|
||||
call s:HL('GitGutterAdd', s:green, '', '')
|
||||
call s:HL('GitGutterChange', s:yellow, '', '')
|
||||
call s:HL('GitGutterChangeDelete', s:orange, '', '')
|
||||
call s:HL('GitGutterDelete', s:red, '', '')
|
||||
|
||||
" Vim-Signify
|
||||
hi link SignifySignAdd GitGutterAdd
|
||||
hi link SignifySignChange GitGutterChange
|
||||
hi link SignifySignDelete GitGutterDelete
|
||||
|
||||
" XML
|
||||
call s:HL('xmlAttrib', s:yellow, '', '')
|
||||
call s:HL('xmlEndTag', s:blue, '', '')
|
||||
call s:HL('xmlTag', s:blue, '', '')
|
||||
call s:HL('xmlTagName', s:blue, '', '')
|
||||
|
||||
" Neovim terminal colors
|
||||
if has('nvim')
|
||||
let g:terminal_color_0 = s:gray1
|
||||
let g:terminal_color_1 = s:red
|
||||
let g:terminal_color_2 = s:green
|
||||
let g:terminal_color_3 = s:yellow
|
||||
let g:terminal_color_4 = s:blue
|
||||
let g:terminal_color_5 = s:purple
|
||||
let g:terminal_color_6 = s:cyan
|
||||
let g:terminal_color_7 = s:gray5
|
||||
let g:terminal_color_8 = s:gray3
|
||||
let g:terminal_color_9 = s:red
|
||||
let g:terminal_color_10 = s:green
|
||||
let g:terminal_color_11 = s:yellow
|
||||
let g:terminal_color_12 = s:blue
|
||||
let g:terminal_color_13 = s:purple
|
||||
let g:terminal_color_14 = s:cyan
|
||||
let g:terminal_color_15 = s:gray4
|
||||
let g:terminal_color_background = g:terminal_color_0
|
||||
let g:terminal_color_foreground = g:terminal_color_7
|
||||
endif
|
||||
|
|
@ -0,0 +1,216 @@
|
|||
|
||||
" Goyo mappings
|
||||
nmap <C-g> :Goyo 60x60
|
||||
|
||||
" Enable the Vue Language server
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'vue': ['vls']
|
||||
\ }
|
||||
|
||||
" init rainbow brackets
|
||||
"set to 0 if you want to enable it later via :RainbowToggle
|
||||
let g:rainbow_active = 0
|
||||
|
||||
" Emmet mappings
|
||||
let g:user_emmet_mode='a' " enable all functions in all modes
|
||||
let g:user_emmet_leader_key='<C-S>'
|
||||
|
||||
" Devicon Configurations
|
||||
" loading the plugin
|
||||
let g:webdevicons_enable = 1
|
||||
|
||||
" Indention Config
|
||||
let g:indentLine_char = '┊'
|
||||
|
||||
|
||||
" Lightline Themes Configurations
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'simpleblack',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ],
|
||||
\ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'cocstatus': 'coc#status'
|
||||
\ },
|
||||
\ }
|
||||
|
||||
|
||||
" Use auocmd to force lightline update.
|
||||
autocmd User CocStatusChange,CocDiagnosticChange call lightline#update()
|
||||
|
||||
" Fancy markdown syntax
|
||||
let g:markdown_fenced_languages = ['css', 'js=javascript']
|
||||
|
||||
" +++++++++++++++++++++ vim-float-term configuration +++++++++++++++++++++++++
|
||||
|
||||
let g:floaterm_keymap_new = '<leader>.'
|
||||
let g:floaterm_position = 'center'
|
||||
let g:floaterm_type = 'normal'
|
||||
|
||||
" custom mappings for my person tools in normal mode only
|
||||
nnoremap <C-p> :FloatermNew ipython<CR>
|
||||
nnoremap <C-l> :FloatermNew lf<CR>
|
||||
nnoremap <C-s> :FloatermNew sefr<CR>
|
||||
|
||||
" +++++++++++++++++++++++++ Conquer of Completion +++++++++++++++++++++++++
|
||||
|
||||
" if hidden is not set, TextEdit might fail.
|
||||
set hidden
|
||||
|
||||
" Some servers have issues with backup files, see #649
|
||||
set nobackup
|
||||
set nowritebackup
|
||||
|
||||
" Better display for messages
|
||||
set cmdheight=2
|
||||
|
||||
" You will have bad experience for diagnostic messages when it's default 4000.
|
||||
set updatetime=300
|
||||
|
||||
" don't give |ins-completion-menu| messages.
|
||||
set shortmess+=c
|
||||
|
||||
" always show signcolumns
|
||||
set signcolumn=yes
|
||||
|
||||
" Use tab for trigger completion with characters ahead and navigate.
|
||||
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin.
|
||||
inoremap <silent><expr> <TAB>
|
||||
\ pumvisible() ? "\<C-n>" :
|
||||
\ <SID>check_back_space() ? "\<TAB>" :
|
||||
\ coc#refresh()
|
||||
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
|
||||
|
||||
function! s:check_back_space() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~# '\s'
|
||||
endfunction
|
||||
|
||||
" Use <c-space> to trigger completion.
|
||||
inoremap <silent><expr> <c-space> coc#refresh()
|
||||
|
||||
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position.
|
||||
" Coc only does snippet and additional edit on confirm.
|
||||
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
|
||||
" Or use `complete_info` if your vim support it, like:
|
||||
" inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
|
||||
|
||||
" Use `[g` and `]g` to navigate diagnostics
|
||||
nmap <silent> [g <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]g <Plug>(coc-diagnostic-next)
|
||||
|
||||
" Remap keys for gotos
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gi <Plug>(coc-implementation)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
|
||||
" Use K to show documentation in preview window
|
||||
"nnoremap <silent> K :call <SID>show_documentation()<CR>
|
||||
|
||||
function! s:show_documentation()
|
||||
if (index(['vim','help'], &filetype) >= 0)
|
||||
execute 'h '.expand('<cword>')
|
||||
else
|
||||
call CocAction('doHover')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Highlight symbol under cursor on CursorHold
|
||||
autocmd CursorHold * silent call CocActionAsync('highlight')
|
||||
|
||||
" Remap for rename current word
|
||||
nmap <leader>rn <Plug>(coc-rename)
|
||||
|
||||
" Remap for format selected region
|
||||
xmap <leader>fr <Plug>(coc-format-selected)
|
||||
nmap <leader>fr <Plug>(coc-format-selected)
|
||||
|
||||
augroup mygroup
|
||||
autocmd!
|
||||
" Setup formatexpr specified filetype(s).
|
||||
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
|
||||
" Update signature help on jump placeholder
|
||||
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
|
||||
augroup end
|
||||
|
||||
" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph
|
||||
xmap <leader>a <Plug>(coc-codeaction-selected)
|
||||
nmap <leader>a <Plug>(coc-codeaction-selected)
|
||||
|
||||
" Remap for do codeAction of current line
|
||||
nmap <leader>ac <Plug>(coc-codeaction)
|
||||
" Fix autofix problem of current line
|
||||
nmap <leader>qf <Plug>(coc-fix-current)
|
||||
|
||||
" Create mappings for function text object, requires document symbols feature of languageserver.
|
||||
xmap if <Plug>(coc-funcobj-i)
|
||||
xmap af <Plug>(coc-funcobj-a)
|
||||
omap if <Plug>(coc-funcobj-i)
|
||||
omap af <Plug>(coc-funcobj-a)
|
||||
|
||||
" Use <TAB> for select selections ranges, needs server support, like: coc-tsserver, coc-python
|
||||
nmap <silent> <TAB> <Plug>(coc-range-select)
|
||||
xmap <silent> <TAB> <Plug>(coc-range-select)
|
||||
|
||||
" Use `:Format` to format current buffer
|
||||
command! -nargs=0 Format :call CocAction('format')
|
||||
|
||||
" Use `:Fold` to fold current buffer
|
||||
command! -nargs=? Fold :call CocAction('fold', <f-args>)
|
||||
|
||||
" use `:OR` for organize import of current buffer
|
||||
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
|
||||
|
||||
" Add status line support, for integration with other plugin, checkout `:h coc-status`
|
||||
set statusline^=%{StatusDiagnostic()}
|
||||
|
||||
" Using CocList
|
||||
" Show all diagnostics
|
||||
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
|
||||
" Manage extensions
|
||||
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
|
||||
" Show commands
|
||||
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
|
||||
" Find symbol of current document
|
||||
nnoremap <silent> <space>o :<C-u>CocList outline<cr>
|
||||
" Search workspace symbols
|
||||
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
|
||||
" Do default action for next item.
|
||||
nnoremap <silent> <space>j :<C-u>CocNext<CR>
|
||||
" Do default action for previous item.
|
||||
nnoremap <silent> <space>k :<C-u>CocPrev<CR>
|
||||
" Resume latest coc list
|
||||
nnoremap <silent> <space>p :<C-u>CocListResume<CR>
|
||||
|
||||
" Auto command for python projects
|
||||
autocmd FileType python let b:coc_root_patterns = ['.git', '.env']
|
||||
|
||||
" Auto command for correct comment highlighting in Json files
|
||||
autocmd FileType json syntax match Comment +\/\/.\+$+
|
||||
" status line function
|
||||
function! StatusDiagnostic() abort
|
||||
let info = get(b:, 'coc_diagnostic_info', {})
|
||||
if empty(info) | return '' | endif
|
||||
let msgs = []
|
||||
if get(info, 'error', 0)
|
||||
call add(msgs, 'E' . info['error'])
|
||||
endif
|
||||
if get(info, 'warning', 0)
|
||||
call add(msgs, 'W' . info['warning'])
|
||||
endif
|
||||
return join(msgs, ' ') . ' ' . get(g:, 'coc_status', '')
|
||||
endfunction
|
||||
|
||||
" Disable node version warning
|
||||
let g:coc_disable_startup_warning = 1
|
||||
|
||||
" Vim script coc extension
|
||||
let g:markdown_fenced_languages = [
|
||||
\ 'vim',
|
||||
\ 'help'
|
||||
\]
|
||||
|
||||
" Emoji completion
|
||||
set completefunc=emoji#complete
|
||||
|
|
@ -1,586 +1,339 @@
|
|||
" _____ _ ___ _
|
||||
" / ___|| | / _ \ | |
|
||||
" \ `--. | |__ __ _ __ __ _ __ / /_\ \ _ __ __| | ___ _ __ ___ ___ _ __
|
||||
" `--. \| '_ \ / _` |\ \ /\ / /| '_ \ | _ || '_ \ / _` | / _ \| '__|/ __| / _ \ | '_ \
|
||||
" /\__/ /| | | || (_| | \ V V / | | | | | | | || | | || (_| || __/| | \__ \| (_) || | | |
|
||||
" \____/ |_| |_| \__,_| \_/\_/ |_| |_| \_| |_/|_| |_| \__,_| \___||_| |___/ \___/ |_| |_|
|
||||
"
|
||||
" _ _ _ _____ __ _ _ _
|
||||
" | | | |(_) / __ \ / _|(_) | | (_)
|
||||
" | | | | _ _ __ ___ | / \/ ___ _ __ | |_ _ __ _ _ _ _ __ __ _ | |_ _ ___ _ __
|
||||
" | | | || || '_ ` _ \ | | / _ \ | '_ \ | _|| | / _` || | | || '__| / _` || __|| | / _ \ | '_ \
|
||||
" \ \_/ /| || | | | | | | \__/\| (_) || | | || | | || (_| || |_| || | | (_| || |_ | || (_) || | | |
|
||||
" Neo \___/ |_||_| |_| |_| \____/ \___/ |_| |_||_| |_| \__, | \__,_||_| \__,_| \__||_| \___/ |_| |_|
|
||||
" __/ |
|
||||
" |___/
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Originally a fork of:
|
||||
" https://github.com/novln/nvim/blob/master/init.vim
|
||||
"
|
||||
" Key shortcuts
|
||||
" <C-p> -> ctrl-p
|
||||
" <C-n> -> nerdtree toggle
|
||||
" ...
|
||||
"
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
"
|
||||
" First and foremost, set the cache directory. This is needed to coordinate
|
||||
" plugins.
|
||||
"
|
||||
let b:cache_directory = $HOME . '/.cache/nvim'
|
||||
"
|
||||
" Plugins are the beauty of vim! Use the awesome plugged plugin manager in
|
||||
" neovim.
|
||||
"
|
||||
call plug#begin('~/.local/share/nvim/plugged')
|
||||
"
|
||||
" Plugins are in ascending chronological order relative to when they were
|
||||
" added to the configuration.
|
||||
"
|
||||
"
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
"
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Add words in visible tmux panes to vims completefunc
|
||||
Plug 'wellle/tmux-complete.vim'
|
||||
"
|
||||
" FZF Fuzzy Finder! Careful, things are about to get FAAAAASSSTTT
|
||||
"
|
||||
" A command line fuzzy finder Very powerful
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
Plug 'airblade/vim-rooter'
|
||||
"
|
||||
"
|
||||
" This command tells fzf to skip filenames during its :Rg search command.
|
||||
"
|
||||
command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case ".shellescape(<q-args>), 1, {'options': '--delimiter : --nth 4..'}, <bang>0)
|
||||
"
|
||||
"
|
||||
" Images in vim! Using NeoVim, FZF and termpix.
|
||||
"
|
||||
" Original inspiration: to preview image files: https://www.youtube.com/watch?v=vzWibjhLBUs
|
||||
" See gist here: https://gist.github.com/LinuxIsCool/457658f5298e4186f23f3731324b68cb
|
||||
"
|
||||
let g:fzf_layout = { 'down': '~60%' }
|
||||
let g:fzf_files_options =
|
||||
\ '--preview "(~/.cargo/bin/termpix --width 50 --true-color {} || cat {}) 2> /dev/null "'
|
||||
" Vim-plug initialization
|
||||
let vim_plug_just_installed = 0
|
||||
let vim_plug_path = expand('~/.config/nvim/autoload/plug.vim')
|
||||
if !filereadable(vim_plug_path)
|
||||
echo "Installing Vim-plug..."
|
||||
echo "" silent !mkdir -p ~/.config/nvim/autoload
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
let vim_plug_just_installed = 1
|
||||
endif
|
||||
|
||||
" Map ctrl-t to bring up fzf fuzzy finder for files
|
||||
noremap <silent> <C-t> :Files<CR>
|
||||
"
|
||||
" Vim Minimap!
|
||||
" Very cool concept but it's causing a bit of lag, and it raises an error when
|
||||
" I open it. I very well could take a look at the code. I could probably fix
|
||||
" that bug and also increase the performance.
|
||||
" Also, it would need a way to be controlled, like I need to access that
|
||||
" window. It seems like that's actually what's bugging out.
|
||||
" I should probably get back to work. I can probably leave it installed for
|
||||
" now, and not use to too often. I'll take a look at the source too.
|
||||
Plug 'lleixat/vim-minimap'
|
||||
let g:minimap_show='<leader>mm'
|
||||
let g:minimap_close='<leader>mc'
|
||||
let g:minimap_update='<leader>mu'
|
||||
let g:minimap_toggle='<leader>mt'
|
||||
" This one seems sketch as well ..
|
||||
" Plug 'koron/minimap-vim'
|
||||
" No minimap for now. Sept 2020
|
||||
" Although, I couls see how the minimap could be super useful. Let's take
|
||||
" a look at the code of the original python one.
|
||||
" manually load vim-plug the first time
|
||||
if vim_plug_just_installed
|
||||
:execute 'source '.fnameescape(vim_plug_path)
|
||||
:PlugInstall
|
||||
endif
|
||||
|
||||
" Get the dot operator (repeat) functional on plugin commands
|
||||
Plug 'tpope/vim-repeat'
|
||||
" A collection of symetric commands shortcuts the use [ and ] as access keys.
|
||||
Plug 'tpope/vim-unimpaired'
|
||||
" ============================================================================
|
||||
" Active plugins
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
|
||||
" This one has a lot of potential. 95 contributors on github, and it's 83%
|
||||
" python
|
||||
Plug 'Shougo/denite.nvim'
|
||||
" Now the actual plugins:
|
||||
" rainbow brackets
|
||||
Plug 'luochen1990/rainbow'
|
||||
|
||||
" ES2015 code snippets (Optional)
|
||||
" Plug 'epilande/vim-es2015-snippets'
|
||||
" Vim emoji
|
||||
Plug 'junegunn/vim-emoji'
|
||||
|
||||
" React code snippets
|
||||
" Plug 'epilande/vim-react-snippets'
|
||||
" quick commenter
|
||||
Plug 'preservim/nerdcommenter'
|
||||
|
||||
" Ultisnips
|
||||
" Plug 'SirVer/ultisnips'
|
||||
" Conquer of Completion
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
|
||||
" Snippets are separated from the engine. Add this if you want them:
|
||||
" Plug 'honza/vim-snippets'
|
||||
" Override configs by directory
|
||||
Plug 'arielrossanigo/dir-configs-override.vim'
|
||||
|
||||
" Plug 'dsznajder/vscode-es7-javascript-react-snippets', {
|
||||
" \ 'do': 'yarn install --frozen-lockfile && yarn compile' }
|
||||
" Better file browser
|
||||
Plug 'scrooloose/nerdtree'
|
||||
|
||||
" Trigger configuration (Optional)
|
||||
" let g:UltiSnipsExpandTrigger="<C-l>"
|
||||
"
|
||||
" Vimagit inspired by magit for emacs
|
||||
Plug 'jreybert/vimagit'
|
||||
" Class/module browser
|
||||
Plug 'majutsushi/tagbar'
|
||||
" TODO known problems:
|
||||
" * current block not refreshing'
|
||||
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
" Search results counter
|
||||
Plug 'vim-scripts/IndexedSearch'
|
||||
|
||||
Plug 'alvan/vim-closetag'
|
||||
let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.js'
|
||||
" Plugin for live preview of LaTex
|
||||
Plug 'donRaphaco/neotex', {'for': 'tex'}
|
||||
|
||||
" Polyglot language pack
|
||||
" Integrated Floating terminal
|
||||
Plug 'voldikss/vim-floaterm'
|
||||
|
||||
" Lightline
|
||||
Plug 'itchyny/lightline.vim'
|
||||
|
||||
" Code and files fuzzy finder
|
||||
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
|
||||
" Pending tasks list
|
||||
Plug 'fisadev/FixedTaskList.vim'
|
||||
|
||||
" Completion from other opened files
|
||||
Plug 'Shougo/context_filetype.vim'
|
||||
|
||||
" Automatically close parenthesis, etc
|
||||
Plug 'Townk/vim-autoclose'
|
||||
|
||||
" Indent text object
|
||||
Plug 'michaeljsmith/vim-indent-object'
|
||||
|
||||
" Indentation based movements
|
||||
Plug 'jeetsukumaran/vim-indentwise'
|
||||
|
||||
" Better language packs
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Show indentation level
|
||||
Plug 'Yggdroot/indentLine'
|
||||
" Ack code search (requires ack installed in the system)
|
||||
Plug 'mileszs/ack.vim'
|
||||
" TODO is there a way to prevent the progress which hides the editor?
|
||||
|
||||
" NeoMake
|
||||
Plug 'neomake/neomake'
|
||||
" Paint css colors with the real color
|
||||
Plug 'lilydjwg/colorizer'
|
||||
" TODO is there a better option for neovim?
|
||||
|
||||
" COC
|
||||
" Javascript configuration from: https://thoughtbot.com/blog/modern-typescript-and-react-development-in-vim
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
let g:coc_global_extensions = [
|
||||
\ 'coc-tsserver'
|
||||
\ ]
|
||||
" if isdirectory('./node_modules') && isdirectory('./node_modules/prettier')
|
||||
" let g:coc_global_extensions += ['coc-prettier']
|
||||
" endif
|
||||
" Generate html in a simple way
|
||||
Plug 'mattn/emmet-vim'
|
||||
|
||||
if isdirectory('./node_modules') && isdirectory('./node_modules/eslint')
|
||||
let g:coc_global_extensions += ['coc-eslint']
|
||||
endif
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
nmap <silent> [g <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]g <Plug>(coc-diagnostic-next)
|
||||
nmap <leader>do <Plug>(coc-codeaction)
|
||||
nmap <leader>rn <Plug>(coc-rename)
|
||||
|
||||
Plug 'neoclide/coc-eslint'
|
||||
Plug 'neoclide/coc-prettier'
|
||||
|
||||
" Automatically generate ctags for files
|
||||
Plug 'xolox/vim-easytags'
|
||||
|
||||
" Language Server Protocol
|
||||
" View and search Language Server Protocol symbols and tags
|
||||
Plug 'liuchengxu/vista.vim'
|
||||
|
||||
" Goyo for distraction free editing! And T-shirts!
|
||||
Plug 'junegunn/goyo.vim'
|
||||
|
||||
" Limelight for focused editing
|
||||
Plug 'junegunn/limelight.vim'
|
||||
|
||||
" Make sure you use single quotes
|
||||
"
|
||||
Plug 'tomlion/vim-solidity'
|
||||
"Jupyter Support for VIM
|
||||
" Plug 'szymonmaszke/vimpyter'
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>b :VimpyterInsertPythonBlock<CR>
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>i :VimpyterStartJupyter<CR>
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>n :VimpyterStartNteract<CR>
|
||||
Plug 'jeffkreeftmeijer/vim-numbertoggle'
|
||||
Plug 'tpope/vim-surround'
|
||||
"-------------------------------------------------------------------------------
|
||||
"Color Theme
|
||||
Plug 'tomasiser/vim-code-dark'
|
||||
Plug 'ajmwagar/vim-deus'
|
||||
Plug 'arcticicestudio/nord-vim'
|
||||
"-------------------------------------------------------------------------------
|
||||
Plug 'jceb/vim-orgmode'
|
||||
Plug 'tpope/vim-speeddating'
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Git Section
|
||||
"
|
||||
" Github dashboard in vim!
|
||||
Plug 'junegunn/vim-github-dashboard'
|
||||
|
||||
" Git commands in vim
|
||||
" Git integration
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" A git commit browser.
|
||||
Plug 'junegunn/gv.vim'
|
||||
" Git/mercurial/others diff icons on the side of the file lines
|
||||
Plug 'mhinz/vim-signify'
|
||||
|
||||
" Show git diff in the sign column
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
"-------------------------------------------------------------------------------
|
||||
" Linters
|
||||
Plug 'neomake/neomake'
|
||||
" TODO is it running on save? or when?
|
||||
" TODO not detecting errors, just style, is it using pylint?
|
||||
|
||||
" Nice icons: Need to install patched font for this to work
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
|
||||
Plug 'tpope/vim-rhubarb'
|
||||
" add or override individual additional filetypes
|
||||
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed
|
||||
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['mkv'] = 'ƛ'
|
||||
|
||||
"---------------
|
||||
" For Javascript and Typescript
|
||||
" INVESTIGATE THESE
|
||||
Plug 'pangloss/vim-javascript'
|
||||
Plug 'leafgarland/typescript-vim'
|
||||
Plug 'peitalin/vim-jsx-typescript'
|
||||
Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
|
||||
Plug 'jparise/vim-graphql'
|
||||
Plug 'yuezk/vim-js'
|
||||
Plug 'maxmellon/vim-jsx-pretty'
|
||||
" Show indention level through lines
|
||||
Plug 'Yggdroot/indentLine'
|
||||
|
||||
" Start interactive EasyAlign in visual mode (e.g. vipga)
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
" Distraction free programming
|
||||
Plug 'junegunn/goyo.vim'
|
||||
|
||||
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Trying out vim lightline as an alternative to vim-airline, sticking with
|
||||
" airline.
|
||||
" Plug 'itchyny/lightline.vim'
|
||||
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
"Enable tabline extension
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
let g:airline#extensions#tabline#left_sep = '|'
|
||||
let g:airline#extensions#tabline#left_alt_sep = '|'
|
||||
let g:airline#extensions#tabline#formatter = 'unique_tail'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Markdown Composer
|
||||
function! BuildComposer(info)
|
||||
if a:info.status != 'unchanged' || a:info.force
|
||||
if has('nvim')
|
||||
!cargo build --release
|
||||
else
|
||||
!cargo build --release --no-default-features --features json-rpc
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
"
|
||||
Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer') }
|
||||
let g:markdown_composer_open_browser = 0
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,__pycache__/ " MacOSX/Linux<Paste>
|
||||
Plug 'ctrlpvim/ctrlp.vim'
|
||||
"The below 4 lines are for speed!from https://stackoverflow.com/questions/21346068/slow-performance-on-ctrlp-it-doesnt-work-to-ignore-some-folders/22784889#22784889
|
||||
let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp'
|
||||
if executable('ag')
|
||||
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
|
||||
endif
|
||||
let g:ctrlp_cmd = 'CtrlPMixed' " search anything (in files, buffers and MRU files at the same time.)
|
||||
let g:ctrlp_working_path_mode = '' " search for nearest ancestor like .git, .hg, and the directory of the current file
|
||||
let g:ctrlp_match_window_bottom = 1 " show the match window at the top of the screen
|
||||
let g:ctrlp_by_filename = 0
|
||||
let g:ctrlp_max_height = 10 " maximum height of match window
|
||||
let g:ctrlp_switch_buffer = 'et' " jump to a file if it's open already
|
||||
let g:ctrlp_use_caching = 1 " enable caching
|
||||
let g:ctrlp_cache_dir = b:cache_directory . '/ctrlp' " define cache path
|
||||
let g:ctrlp_clear_cache_on_exit = 0 " speed up by not removing clearing cache everytime
|
||||
let g:ctrlp_mruf_max = 250 " number of recently opened files
|
||||
let g:ctrlp_show_hidden = 1
|
||||
let g:ctrlp_custom_ignore = {
|
||||
\ 'py': '__pycache__/',
|
||||
\ }
|
||||
" \'py':__pycache__/'
|
||||
" 'bin'
|
||||
" 'develop-eggs',
|
||||
" 'eggs'
|
||||
" 'parts'
|
||||
" 'src/*.egg-info'
|
||||
" set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
"Comment manager
|
||||
" Allow commenting and inverting empty lines (useful when commenting a region)
|
||||
let g:NERDCommentEmptyLines = 1
|
||||
" Enable trimming of trailing whitespace when uncommenting
|
||||
let g:NERDTrimTrailingWhitespace = 1
|
||||
" Add spaces after comment delimiters by default
|
||||
let g:NERDSpaceDelims = 1
|
||||
" Align line-wise comment delimiters flush left instead of following code indentation
|
||||
let g:NERDDefaultAlign = 'left'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'goerz/ipynb_notedown.vim'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Modified vim start screen
|
||||
Plug 'mhinz/vim-startify'
|
||||
|
||||
Plug 'preservim/nerdtree' |
|
||||
\ Plug 'Xuyuanp/nerdtree-git-plugin' |
|
||||
\ Plug 'ryanoasis/vim-devicons'
|
||||
let g:NERDTreeGitStatusIndicatorMapCustom = {
|
||||
\ 'Modified' :'✹',
|
||||
\ 'Staged' :'✚',
|
||||
\ 'Untracked' :'✭',
|
||||
\ 'Renamed' :'➜',
|
||||
\ 'Unmerged' :'═',
|
||||
\ 'Deleted' :'✖',
|
||||
\ 'Dirty' :'✗',
|
||||
\ 'Ignored' :'☒',
|
||||
\ 'Clean' :'✔︎',
|
||||
\ 'Unknown' :'?',
|
||||
\ }
|
||||
let g:NERDTreeGitStatusUseNerdFonts = 1 " you should install nerdfonts by yourself. default: 0
|
||||
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " On-demand loading
|
||||
":help NERDTreeOptions
|
||||
map <C-n> :NERDTreeToggle<CR>
|
||||
map <leader>r :NERDTreeFind<cr>
|
||||
let NERDTreeIgnore=['\.pyc$', '\~$']
|
||||
|
||||
" This makes the location of the current open file always the current working
|
||||
" directory of vim. Experimental - Sept 15th 2020
|
||||
autocmd BufEnter * lcd %:p:h
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'bfredl/nvim-ipy'
|
||||
let g:nvim_ipy_perform_mappings = 0
|
||||
map <silent> <leader>s <Plug>(IPy-Run)
|
||||
map <silent> <leader><Enter> <Plug>(IPy-RunCell)
|
||||
map <silent> <c-s> <Plug>(IPy-Complete)
|
||||
map <silent> <c-s> <Plug>(IPy-WordObjInfo)
|
||||
map <silent> <leader>? <Plug>(IPy-Interrupt)
|
||||
map <silent> <c-s> <Plug>(IPy-Terminate)
|
||||
|
||||
""---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Fix for slimux:
|
||||
set shell=/bin/sh
|
||||
Plug 'lotabout/slimux'
|
||||
"Send text between tmux panes!
|
||||
nmap <Leader>s :SlimuxREPLSendLine<CR>j
|
||||
vmap <Leader>s :SlimuxREPLSendSelection<CR>
|
||||
" map <C-c><C-c> :SlimuxREPLConfigure<CR>
|
||||
let g:slimux_pane_format = "#W #P "
|
||||
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Plug 'vimwiki/vimwiki'
|
||||
set nocompatible
|
||||
filetype plugin on
|
||||
syntax on
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
" Initialize plugin system
|
||||
" Tell vim-plug we finished declaring plugins, so it can load them
|
||||
call plug#end()
|
||||
|
||||
" DVC
|
||||
autocmd! BufNewFile,BufRead Dvcfile,*.dvc,dvc.lock setfiletype yaml
|
||||
" ============================================================================
|
||||
" Install plugins the first time vim runs
|
||||
if vim_plug_just_installed
|
||||
echo "Installing Bundles, please ignore key map error messages"
|
||||
:PlugInstall
|
||||
endif
|
||||
|
||||
"============u============u============u============u============u============u
|
||||
" VIM BEHAVIOUR
|
||||
" Highlight character at column 80
|
||||
:set colorcolumn=80
|
||||
" ============================================================================
|
||||
" Vim settings and mappings
|
||||
|
||||
" Tab completion in command mode
|
||||
set wildmenu
|
||||
" remap default leader key to comma
|
||||
let mapleader = ","
|
||||
nnoremap <leader>vr :source $MYVIMRC<CR>
|
||||
nnoremap <leader>vc :e $MYVIMRC<CR>
|
||||
|
||||
"These filetypes are ignored when expanding wildcard searches
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc
|
||||
|
||||
" show line numbers
|
||||
set number
|
||||
" Change Ctrl N mapping to Ctrl Space "
|
||||
inoremap <C-space> <C-n>
|
||||
|
||||
" using only 1 column (and 1 space) while possible
|
||||
set numberwidth=1
|
||||
|
||||
" Set vim system timeouts
|
||||
set timeoutlen=1000
|
||||
set ttimeoutlen=5
|
||||
|
||||
" Vim Arithmetic
|
||||
" <C-c> -> increase the count of a number
|
||||
" <C-x> -> decrease the count of a number
|
||||
nnoremap <C-c> :exe "normal \<C-a>"<CR>
|
||||
|
||||
" Vim date key
|
||||
" I would like this to put behind the cursor.
|
||||
nnoremap <leader>d :r !date<CR>
|
||||
|
||||
" Vim ls key
|
||||
" Wed 16 Sep 2020 09:32:44 PM PDT
|
||||
nnoremap <leader>l :r ! ls<CR>
|
||||
|
||||
" Here we map the leader key! This is where things get spicy! The leader key
|
||||
" in vim is extremely powerful. Wielded by great mages, it unlocks the ability
|
||||
" to cast spells through one's very own fingertips by merely thinking a string
|
||||
" of words. Once the energetic vibration of these thoughts pass through the
|
||||
" keys into the keyboard, the spell is activated and it's consequences take
|
||||
" effect. Use this key in normal mode to run commands through key bindings!
|
||||
" * Why do we define it twice? Once with no g, then with a g, what is the
|
||||
" difference?
|
||||
"
|
||||
" Set the leader key - #setleader
|
||||
let mapleader=","
|
||||
let g:mapleader=","
|
||||
|
||||
" I was about to make something bad ass here. It escapes me. It was something
|
||||
" about doing something in vim.
|
||||
|
||||
" Here I make <b>shortcuts</b> to various system locations.
|
||||
" ssh config, fish config, vim config, my personal notes,
|
||||
nnoremap <leader>ev :e $MYVIMRC<CR>
|
||||
nnoremap <leader>ef :e ~/.config/fish/config.fish<CR>
|
||||
nnoremap <leader>et :e ~/.tmux.conf<CR>
|
||||
nnoremap <leader>es :e ~/.ssh/config<CR>
|
||||
nnoremap <leader>ed :e ~/Workspace/dotfiles/<CR>
|
||||
nnoremap <leader>ew :e ~/Workspace/<CR>
|
||||
nnoremap <leader>en :e ~/Notes/<CR>
|
||||
|
||||
" funct! Exec(command)
|
||||
" redir =>output
|
||||
" silent exec a:command
|
||||
" redir END
|
||||
" return output
|
||||
" endfunct!
|
||||
|
||||
nnoremap <leader><leader> i^R=Exec('ls')
|
||||
|
||||
" Force reload vimrc
|
||||
nnoremap <leader>rv :source $MYVIMRC<CR>
|
||||
" stow -v -R dotfiles -t ~/
|
||||
|
||||
" For copying text out of VIM
|
||||
"" Make vim scroll faster
|
||||
set ttyfast
|
||||
set mouse=a
|
||||
|
||||
" Syntax Highlighting
|
||||
syntax enable
|
||||
|
||||
" set background=dark
|
||||
"colorscheme solarized
|
||||
set t_Co=256
|
||||
set t_ut=
|
||||
colorscheme nord
|
||||
" colorscheme iceberg
|
||||
" colorscheme codedark
|
||||
hi Normal guibg=NONE ctermbg=NONE
|
||||
" colors deus
|
||||
|
||||
"Highlight Cursor line
|
||||
set cursorline
|
||||
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"
|
||||
" Enable Intuitive copy and paste
|
||||
" vnoremap <C-c> "*y
|
||||
" vnoremap <C-c> "+y
|
||||
" nnoremap <C-v> "+p
|
||||
" inoremap <C-v> <C-r>+
|
||||
set pastetoggle=<F2>
|
||||
|
||||
"Use modifier to jump to beginning and end of lines
|
||||
map <leader>j $
|
||||
map <leader>f 0
|
||||
|
||||
"split more naturally
|
||||
set splitbelow
|
||||
set splitright
|
||||
" Searching
|
||||
set incsearch " show 'best match so far' as you type
|
||||
set hlsearch " hilight the items found by the search
|
||||
set ignorecase " ignores case of letters on searches
|
||||
set smartcase " Override the 'ignorecase' option if the search pattern contains upper case characters
|
||||
"Manually turn off the search highlight
|
||||
map <leader>/ :nohl<CR>
|
||||
|
||||
set lazyredraw
|
||||
set nu
|
||||
set nowrap
|
||||
set relativenumber
|
||||
set encoding=UTF-8
|
||||
" set tabline to not display full path
|
||||
set guitablabel=%t
|
||||
|
||||
"Abbreviations
|
||||
ab h1 hi
|
||||
|
||||
" Disable these mappings that I don't want.
|
||||
" Hmm.. Better look into this. I should know what these do.
|
||||
noremap <silent> <C-c> <Nop>
|
||||
noremap <silent> <C-w>f <Nop>
|
||||
noremap <silent> <Del> <Nop>
|
||||
noremap <silent> <F1> <Nop>
|
||||
" Set tabs for certain file types
|
||||
" for html and css js and vue
|
||||
autocmd FileType html setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType css setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType scss setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType javascript setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType json setlocal ts=4 sw=4 expandtab
|
||||
autocmd FileType vue setlocal ts=2 sw=2 expandtab
|
||||
" Set expand width to 2 for C/C++
|
||||
autocmd FileType cpp setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType c setlocal ts=2 sw=2 expandtab
|
||||
" Set expand width to 2 for Shell scripts and perl
|
||||
autocmd FileType sh setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType zsh setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType bash setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType perl setlocal ts=2 sw=2 expandtab
|
||||
" Set expand width to 2 for markdown
|
||||
autocmd FileType md setlocal ts=2 sw=2 expandtab
|
||||
autocmd FileType markdown setlocal ts=2 sw=2 expandtab
|
||||
|
||||
" Make buffer movement similar to vimium/vimfx for firefox using let
|
||||
" g:airline#extensions#tabline#enabled v 1
|
||||
"
|
||||
" Cycle tabs
|
||||
" Don't fuckin save, it makes things slow, wish I changed this
|
||||
" earlier...(removing save - Sept 12 2020)
|
||||
" I've been mixing up the terminology of tabs and windows.
|
||||
" A Buffer is what's drawn on the screen
|
||||
" A window is a view of particular text
|
||||
" A tab page is a utility for organizing multiple windows
|
||||
nnoremap <silent> <S-k> :bn<CR>:NERDTreeFind<CR><C-w>l
|
||||
nnoremap <silent> <S-j> :bp<CR>:NERDTreeFind<CR><C-w>l
|
||||
" noremap <C-t> :tabnew split<CR>
|
||||
" Let's shuffle windows just as easy. Then we can get into nerd tree smoother
|
||||
" Whatabout shift n and shift p to cycle tabs?
|
||||
" What do shipt p and shift n do?
|
||||
" shift p is print behind, and shift n is previous search result.
|
||||
" OK, we are not changing the above, they actually match vimium in firefox
|
||||
" Fix Cycle tabs
|
||||
" nnoremap <silent> <S-j> <S-l>
|
||||
" nnoremap <silent> <S-l> :w<CR>:bp<CR>
|
||||
"
|
||||
" nnoremap <silent> <S-k> <S-h>
|
||||
" nnoremap <silent> <S-l> :w<CR>:bn<CR>
|
||||
" " Copy to clipboard
|
||||
vnoremap <leader>y "+y
|
||||
nnoremap <leader>Y "+yg_
|
||||
nnoremap <leader>y "+y
|
||||
nnoremap <leader>yy "+yy
|
||||
|
||||
" Tab spacing on html
|
||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype djangohtml setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype css setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype scss setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype javascript setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype json setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype cpp setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype c setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype sh setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype fish setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype bash setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype perl setlocal ts=2 sw=2 expandtab
|
||||
" " Paste from clipboard
|
||||
nnoremap <leader>p "+p
|
||||
nnoremap <leader>P "+P
|
||||
vnoremap <leader>p "+p
|
||||
vnoremap <leader>P "+P
|
||||
|
||||
"Maintain cursor and window position when switching buffers
|
||||
if v:version >= 700
|
||||
au BufLeave * let b:winview = winsaveview()
|
||||
au BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif
|
||||
|
||||
" Run xrdb whenever Xdefaults or Xresources are updated.
|
||||
autocmd BufWritePost *Xresources,*Xdefaults !xrdb %
|
||||
|
||||
" Recompile suckless programs. only for files that are config.h
|
||||
autocmd BufWritePost config.h,config.def.h !sudo make install; make clean
|
||||
|
||||
" Comile any latex document into pdf form
|
||||
autocmd BufWritePost answers.tex !pdflatex answers.tex
|
||||
|
||||
" Compile VIU markdown notes to pdf
|
||||
autocmd BufWritePost notes.md !pandoc -s -o notes.pdf notes.md
|
||||
|
||||
|
||||
" tabs and spaces handling
|
||||
set expandtab
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
" remove ugly vertical lines on window division
|
||||
set fillchars+=vert:\
|
||||
|
||||
"" Color Scheme set up for Material ===============================
|
||||
if (has("nvim"))
|
||||
"For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
|
||||
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
||||
endif
|
||||
|
||||
" For COC
|
||||
if filereadable(expand("~/.config/nvim/coc.vim"))
|
||||
source ~/.config/nvim/coc.vim
|
||||
" < https://github.com/neovim/neovim/wiki/Following-HEAD #20160511 >
|
||||
if (has("termguicolors"))
|
||||
set termguicolors
|
||||
endif
|
||||
|
||||
" When writing a buffer (no delay).
|
||||
call neomake#configure#automake('w')
|
||||
|
||||
" From Matt Williams
|
||||
" use 256 colors when possible
|
||||
" if (&term =~? 'mlterm\|xterm\|xterm-256\|screen-256') || has('nvim')
|
||||
" let &t_Co = 256
|
||||
" syntax on
|
||||
" colorscheme nord
|
||||
" else
|
||||
" colorscheme jellybeans
|
||||
" endif
|
||||
if (&term =~? 'mlterm\|xterm\|xterm-256\|screen-256') || has('nvim')
|
||||
let &t_Co = 256
|
||||
syntax on
|
||||
set background=light
|
||||
colorscheme quantum
|
||||
else
|
||||
colorscheme jellybeans
|
||||
endif
|
||||
|
||||
"Specify which python to use
|
||||
" let g:python3_host_prog = '/home/shawn/Software/miniconda3/bin/python'
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
"
|
||||
" .-"" ""--.
|
||||
" ,' `.
|
||||
" / ,' \
|
||||
" `\/ . |
|
||||
" .===:_, | /
|
||||
" / .'""". ,:=:. / _.,
|
||||
" " `--. `|/ _\` ( _/-" /
|
||||
" |\_b_9-"" ___) -"-"//'
|
||||
" | --/`--_o"_/' (6_//
|
||||
" P I C C O L O / ,' -"" .),-'
|
||||
" ( "-__ `-(
|
||||
" \ |HHH/ / \
|
||||
" \ - _./ `-._..._
|
||||
" 7----",'/ ..-" .-- "--.._
|
||||
" _.._.-/) .-',/ .-" -" ""--..
|
||||
" _..--"|=""--..--""""""./' . .-"""-.\
|
||||
" ,' .-',' ,' /. / .' \\
|
||||
" .:' ,' ,: / ,/'/ /' _....' _..--""" )
|
||||
" ,"/ / /( / _,/' / ,/' /. .-" __|
|
||||
" / / /' ( ""----"""" / ,/ / `:.-" _.--"" /
|
||||
" || ( \_ __.-' / |`-.`:=._-" _.-:|
|
||||
" \/ \ """"""" / ""-` `-"===="-' \
|
||||
" | "-. __..-" \._.====.. `
|
||||
" | ""--"""" //..---""\\ .
|
||||
" \ /'| __...---.\ |
|
||||
"
|
||||
|
||||
" autocompletion of files and commands behaves like shell
|
||||
" (complete only the common part, list the options that match)
|
||||
set wildmode=list:longest
|
||||
|
||||
" save as sudo
|
||||
ca w!! w !sudo tee "%"
|
||||
|
||||
" tab navigation mappings
|
||||
map tt :tabnew
|
||||
map <M-Right> :tabn<CR>
|
||||
imap <M-Right> <ESC>:tabn<CR>
|
||||
map <M-Left> :tabp<CR>
|
||||
imap <M-Left> <ESC>:tabp<CR>
|
||||
|
||||
|
||||
" when scrolling, keep cursor 3 lines away from screen border
|
||||
set scrolloff=3
|
||||
|
||||
" clear search results
|
||||
nnoremap <silent> // :noh<CR>
|
||||
|
||||
" clear empty spaces at the end of lines on save of python files
|
||||
"autocmd BufWritePre *.py :%s/\s\+$//e
|
||||
|
||||
" fix problems with uncommon shells (fish, xonsh) and plugins running commands
|
||||
" (neomake, ...)
|
||||
set shell=$SHELL
|
||||
|
||||
" Ability to add python breakpoints
|
||||
" (I use ipdb, but you can change it to whatever tool you use for debugging)
|
||||
au FileType python map <silent> <leader>b Oimport ipdb; ipdb.set_trace()<esc>
|
||||
|
||||
" ============================================================================
|
||||
" Plugins settings and mappings
|
||||
" Edit them as you wish.
|
||||
|
||||
" Tagbar -----------------------------
|
||||
" toggle tagbar display
|
||||
nmap <leader>tb :TagbarToggle<CR>
|
||||
" autofocus on tagbar open
|
||||
let g:tagbar_autofocus = 1
|
||||
|
||||
" NERDTree -----------------------------
|
||||
" toggle nerdtree display
|
||||
map <leader>nn :NERDTreeToggle<CR>
|
||||
" open nerdtree with the current file selected
|
||||
nmap <leader>nf :NERDTreeFind<CR>
|
||||
" don;t show these file types
|
||||
let NERDTreeIgnore = ['\.pyc$', '\.pyo$']
|
||||
|
||||
" Tasklist ------------------------------
|
||||
" show pending tasks list
|
||||
map <leader>tl :TaskList<CR>
|
||||
|
||||
" Neomake ------------------------------
|
||||
" Run linter on write
|
||||
autocmd! BufWritePost * Neomake
|
||||
|
||||
" Check code as python3 by default
|
||||
let g:neomake_python_python_maker = neomake#makers#ft#python#python()
|
||||
let g:neomake_python_flake8_maker = neomake#makers#ft#python#flake8()
|
||||
let g:neomake_python_python_maker.exe = 'python3 -m py_compile'
|
||||
let g:neomake_python_flake8_maker.exe = 'python3 -m flake8'
|
||||
|
||||
" Disable error messages inside the buffer, next to the problematic line
|
||||
let g:neomake_virtualtext_current_error = 1
|
||||
|
||||
|
||||
" Fzf ------------------------------
|
||||
" file finder mapping
|
||||
nmap <leader>e :Files<CR>
|
||||
" tags (symbols) in current file finder mapping
|
||||
nmap <leader>g :BTag<CR>
|
||||
" tags (symbols) in all files finder mapping
|
||||
nmap <leader>G :Tags<CR>
|
||||
" general code finder in current file mapping
|
||||
nmap <leader>f :BLines<CR>
|
||||
" general code finder in all files mapping
|
||||
nmap <leader>F :Lines<CR>
|
||||
" commands finder mapping
|
||||
nmap <leader>c :Commands<CR>
|
||||
|
||||
|
||||
" Signify ------------------------------
|
||||
" this first setting decides in which order try to guess your current vcs
|
||||
" UPDATE it to reflect your preferences, it will speed up opening files
|
||||
let g:signify_vcs_list = [ 'git', 'hg' ]
|
||||
" mappings to jump to changed blocks
|
||||
nmap <leader>sn <plug>(signify-next-hunk)
|
||||
nmap <leader>sp <plug>(signify-prev-hunk)
|
||||
|
||||
" nicer colors
|
||||
highlight DiffAdd cterm=bold ctermbg=none ctermfg=119
|
||||
highlight DiffDelete cterm=bold ctermbg=none ctermfg=167
|
||||
highlight DiffChange cterm=bold ctermbg=none ctermfg=227
|
||||
highlight SignifySignAdd cterm=bold ctermbg=237 ctermfg=119
|
||||
highlight SignifySignDelete cterm=bold ctermbg=237 ctermfg=167
|
||||
highlight SignifySignChange cterm=bold ctermbg=237 ctermfg=227
|
||||
|
||||
" Autoclose ------------------------------
|
||||
" Fix to let ESC work as espected with Autoclose plugin
|
||||
" (without this, when showing an autocompletion window, ESC won't leave insert
|
||||
" mode)
|
||||
|
||||
let g:AutoClosePumvisible = {"ENTER": "\<C-Y>", "ESC": "\<ESC>"}
|
||||
let g:AutoClosePairs = "() {} [] ' ` \" "
|
||||
|
||||
" This is solves a bug in devicons that appears when sourcing vimrc
|
||||
if exists("g:loaded_webdevicons")
|
||||
call webdevicons#refresh()
|
||||
endif
|
||||
|
||||
" Include user's custom nvim configurations
|
||||
if filereadable(expand("~/.config/nvim/custom.vim"))
|
||||
source ~/.config/nvim/custom.vim
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -0,0 +1,593 @@
|
|||
" _____ _ ___ _
|
||||
" / ___|| | / _ \ | |
|
||||
" \ `--. | |__ __ _ __ __ _ __ / /_\ \ _ __ __| | ___ _ __ ___ ___ _ __
|
||||
" `--. \| '_ \ / _` |\ \ /\ / /| '_ \ | _ || '_ \ / _` | / _ \| '__|/ __| / _ \ | '_ \
|
||||
" /\__/ /| | | || (_| | \ V V / | | | | | | | || | | || (_| || __/| | \__ \| (_) || | | |
|
||||
" \____/ |_| |_| \__,_| \_/\_/ |_| |_| \_| |_/|_| |_| \__,_| \___||_| |___/ \___/ |_| |_|
|
||||
"
|
||||
" _ _ _ _____ __ _ _ _
|
||||
" | | | |(_) / __ \ / _|(_) | | (_)
|
||||
" | | | | _ _ __ ___ | / \/ ___ _ __ | |_ _ __ _ _ _ _ __ __ _ | |_ _ ___ _ __
|
||||
" | | | || || '_ ` _ \ | | / _ \ | '_ \ | _|| | / _` || | | || '__| / _` || __|| | / _ \ | '_ \
|
||||
" \ \_/ /| || | | | | | | \__/\| (_) || | | || | | || (_| || |_| || | | (_| || |_ | || (_) || | | |
|
||||
" Neo \___/ |_||_| |_| |_| \____/ \___/ |_| |_||_| |_| \__, | \__,_||_| \__,_| \__||_| \___/ |_| |_|
|
||||
" __/ |
|
||||
" |___/
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Originally a fork of:
|
||||
" https://github.com/novln/nvim/blob/master/init.vim
|
||||
"
|
||||
" Key shortcuts
|
||||
" <C-p> -> ctrl-p
|
||||
" <C-n> -> nerdtree toggle
|
||||
" ...
|
||||
"
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
"
|
||||
" First and foremost, set the cache directory. This is needed to coordinate
|
||||
" plugins.
|
||||
"
|
||||
let b:cache_directory = $HOME . '/.cache/nvim'
|
||||
"
|
||||
" Plugins are the beauty of vim! Use the awesome plugged plugin manager in
|
||||
" neovim.
|
||||
"
|
||||
call plug#begin('~/.local/share/nvim/plugged')
|
||||
"
|
||||
" Plugins are in ascending chronological order relative to when they were
|
||||
" added to the configuration.
|
||||
"
|
||||
"
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Plug 'junegunn/vim-emoji'
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Add words in visible tmux panes to vims completefunc
|
||||
Plug 'wellle/tmux-complete.vim'
|
||||
"
|
||||
" FZF Fuzzy Finder! Careful, things are about to get FAAAAASSSTTT
|
||||
"
|
||||
" A command line fuzzy finder Very powerful
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
Plug 'airblade/vim-rooter'
|
||||
"
|
||||
"
|
||||
" This command tells fzf to skip filenames during its :Rg search command.
|
||||
"
|
||||
command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case ".shellescape(<q-args>), 1, {'options': '--delimiter : --nth 4..'}, <bang>0)
|
||||
"
|
||||
"
|
||||
" Images in vim! Using NeoVim, FZF and termpix.
|
||||
"
|
||||
" Original inspiration: to preview image files: https://www.youtube.com/watch?v=vzWibjhLBUs
|
||||
" See gist here: https://gist.github.com/LinuxIsCool/457658f5298e4186f23f3731324b68cb
|
||||
"
|
||||
let g:fzf_layout = { 'down': '~60%' }
|
||||
let g:fzf_files_options =
|
||||
\ '--preview "(~/.cargo/bin/termpix --width 50 --true-color {} || cat {}) 2> /dev/null "'
|
||||
|
||||
" Map ctrl-t to bring up fzf fuzzy finder for files
|
||||
noremap <silent> <C-t> :Files<CR>
|
||||
"
|
||||
" Vim Minimap!
|
||||
" Very cool concept but it's causing a bit of lag, and it raises an error when
|
||||
" I open it. I very well could take a look at the code. I could probably fix
|
||||
" that bug and also increase the performance.
|
||||
" Also, it would need a way to be controlled, like I need to access that
|
||||
" window. It seems like that's actually what's bugging out.
|
||||
" I should probably get back to work. I can probably leave it installed for
|
||||
" now, and not use to too often. I'll take a look at the source too.
|
||||
Plug 'lleixat/vim-minimap'
|
||||
let g:minimap_show='<leader>mm'
|
||||
let g:minimap_close='<leader>mc'
|
||||
let g:minimap_update='<leader>mu'
|
||||
let g:minimap_toggle='<leader>mt'
|
||||
" This one seems sketch as well ..
|
||||
" Plug 'koron/minimap-vim'
|
||||
" No minimap for now. Sept 2020
|
||||
" Although, I couls see how the minimap could be super useful. Let's take
|
||||
" a look at the code of the original python one.
|
||||
|
||||
" Get the dot operator (repeat) functional on plugin commands
|
||||
Plug 'tpope/vim-repeat'
|
||||
" A collection of symetric commands shortcuts the use [ and ] as access keys.
|
||||
Plug 'tpope/vim-unimpaired'
|
||||
|
||||
" This one has a lot of potential. 95 contributors on github, and it's 83%
|
||||
" python
|
||||
Plug 'Shougo/denite.nvim'
|
||||
|
||||
" ES2015 code snippets (Optional)
|
||||
" Plug 'epilande/vim-es2015-snippets'
|
||||
|
||||
" React code snippets
|
||||
" Plug 'epilande/vim-react-snippets'
|
||||
|
||||
" Ultisnips
|
||||
" Plug 'SirVer/ultisnips'
|
||||
|
||||
" Snippets are separated from the engine. Add this if you want them:
|
||||
" Plug 'honza/vim-snippets'
|
||||
|
||||
" Plug 'dsznajder/vscode-es7-javascript-react-snippets', {
|
||||
" \ 'do': 'yarn install --frozen-lockfile && yarn compile' }
|
||||
|
||||
" Trigger configuration (Optional)
|
||||
" let g:UltiSnipsExpandTrigger="<C-l>"
|
||||
"
|
||||
" Vimagit inspired by magit for emacs
|
||||
Plug 'jreybert/vimagit'
|
||||
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
let g:AutoPairsFlyMode = 1
|
||||
au FileType html let b:AutoPairs = AutoPairsDefine({'<!--' : '-->'}, [])
|
||||
au FileType vim let b:AutoPairs = AutoPairsDefine({}, ['"'])
|
||||
|
||||
Plug 'alvan/vim-closetag'
|
||||
let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.js'
|
||||
|
||||
" Polyglot language pack
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Show indentation level
|
||||
Plug 'Yggdroot/indentLine'
|
||||
|
||||
" NeoMake
|
||||
Plug 'neomake/neomake'
|
||||
|
||||
" COC
|
||||
" Javascript configuration from: https://thoughtbot.com/blog/modern-typescript-and-react-development-in-vim
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
let g:coc_global_extensions = [
|
||||
\ 'coc-tsserver'
|
||||
\ ]
|
||||
" if isdirectory('./node_modules') && isdirectory('./node_modules/prettier')
|
||||
" let g:coc_global_extensions += ['coc-prettier']
|
||||
" endif
|
||||
|
||||
if isdirectory('./node_modules') && isdirectory('./node_modules/eslint')
|
||||
let g:coc_global_extensions += ['coc-eslint']
|
||||
endif
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
nmap <silent> [g <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]g <Plug>(coc-diagnostic-next)
|
||||
nmap <leader>do <Plug>(coc-codeaction)
|
||||
nmap <leader>rn <Plug>(coc-rename)
|
||||
|
||||
Plug 'neoclide/coc-eslint'
|
||||
Plug 'neoclide/coc-prettier'
|
||||
|
||||
" Automatically generate ctags for files
|
||||
Plug 'xolox/vim-easytags'
|
||||
|
||||
" Language Server Protocol
|
||||
" View and search Language Server Protocol symbols and tags
|
||||
Plug 'liuchengxu/vista.vim'
|
||||
|
||||
" Goyo for distraction free editing! And T-shirts!
|
||||
Plug 'junegunn/goyo.vim'
|
||||
|
||||
" Limelight for focused editing
|
||||
Plug 'junegunn/limelight.vim'
|
||||
|
||||
" Make sure you use single quotes
|
||||
"
|
||||
Plug 'tomlion/vim-solidity'
|
||||
"Jupyter Support for VIM
|
||||
" Plug 'szymonmaszke/vimpyter'
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>b :VimpyterInsertPythonBlock<CR>
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>i :VimpyterStartJupyter<CR>
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>n :VimpyterStartNteract<CR>
|
||||
Plug 'jeffkreeftmeijer/vim-numbertoggle'
|
||||
Plug 'tpope/vim-surround'
|
||||
"-------------------------------------------------------------------------------
|
||||
"Color Theme
|
||||
Plug 'tomasiser/vim-code-dark'
|
||||
Plug 'ajmwagar/vim-deus'
|
||||
Plug 'arcticicestudio/nord-vim'
|
||||
"-------------------------------------------------------------------------------
|
||||
Plug 'jceb/vim-orgmode'
|
||||
Plug 'tpope/vim-speeddating'
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Git Section
|
||||
"
|
||||
" Github dashboard in vim!
|
||||
Plug 'junegunn/vim-github-dashboard'
|
||||
|
||||
" Git commands in vim
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" A git commit browser.
|
||||
Plug 'junegunn/gv.vim'
|
||||
|
||||
" Show git diff in the sign column
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Plug 'tpope/vim-rhubarb'
|
||||
|
||||
"---------------
|
||||
" For Javascript and Typescript
|
||||
" INVESTIGATE THESE
|
||||
Plug 'pangloss/vim-javascript'
|
||||
Plug 'leafgarland/typescript-vim'
|
||||
Plug 'peitalin/vim-jsx-typescript'
|
||||
Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
|
||||
Plug 'jparise/vim-graphql'
|
||||
Plug 'yuezk/vim-js'
|
||||
Plug 'maxmellon/vim-jsx-pretty'
|
||||
|
||||
" Start interactive EasyAlign in visual mode (e.g. vipga)
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
|
||||
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Trying out vim lightline as an alternative to vim-airline, sticking with
|
||||
" airline.
|
||||
" Plug 'itchyny/lightline.vim'
|
||||
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
"Enable tabline extension
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
let g:airline#extensions#tabline#left_sep = '|'
|
||||
let g:airline#extensions#tabline#left_alt_sep = '|'
|
||||
let g:airline#extensions#tabline#formatter = 'unique_tail'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Markdown Composer
|
||||
function! BuildComposer(info)
|
||||
if a:info.status != 'unchanged' || a:info.force
|
||||
if has('nvim')
|
||||
!cargo build --release
|
||||
else
|
||||
!cargo build --release --no-default-features --features json-rpc
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
"
|
||||
Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer') }
|
||||
let g:markdown_composer_open_browser = 0
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,__pycache__/ " MacOSX/Linux<Paste>
|
||||
Plug 'ctrlpvim/ctrlp.vim'
|
||||
"The below 4 lines are for speed!from https://stackoverflow.com/questions/21346068/slow-performance-on-ctrlp-it-doesnt-work-to-ignore-some-folders/22784889#22784889
|
||||
let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp'
|
||||
if executable('ag')
|
||||
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
|
||||
endif
|
||||
let g:ctrlp_cmd = 'CtrlPMixed' " search anything (in files, buffers and MRU files at the same time.)
|
||||
let g:ctrlp_working_path_mode = '' " search for nearest ancestor like .git, .hg, and the directory of the current file
|
||||
let g:ctrlp_match_window_bottom = 1 " show the match window at the top of the screen
|
||||
let g:ctrlp_by_filename = 0
|
||||
let g:ctrlp_max_height = 10 " maximum height of match window
|
||||
let g:ctrlp_switch_buffer = 'et' " jump to a file if it's open already
|
||||
let g:ctrlp_use_caching = 1 " enable caching
|
||||
let g:ctrlp_cache_dir = b:cache_directory . '/ctrlp' " define cache path
|
||||
let g:ctrlp_clear_cache_on_exit = 0 " speed up by not removing clearing cache everytime
|
||||
let g:ctrlp_mruf_max = 250 " number of recently opened files
|
||||
let g:ctrlp_show_hidden = 1
|
||||
let g:ctrlp_custom_ignore = {
|
||||
\ 'py': '__pycache__/',
|
||||
\ }
|
||||
" \'py':__pycache__/'
|
||||
" 'bin'
|
||||
" 'develop-eggs',
|
||||
" 'eggs'
|
||||
" 'parts'
|
||||
" 'src/*.egg-info'
|
||||
" set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
"Comment manager
|
||||
" Allow commenting and inverting empty lines (useful when commenting a region)
|
||||
let g:NERDCommentEmptyLines = 1
|
||||
" Enable trimming of trailing whitespace when uncommenting
|
||||
let g:NERDTrimTrailingWhitespace = 1
|
||||
" Add spaces after comment delimiters by default
|
||||
let g:NERDSpaceDelims = 1
|
||||
" Align line-wise comment delimiters flush left instead of following code indentation
|
||||
let g:NERDDefaultAlign = 'left'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'goerz/ipynb_notedown.vim'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Modified vim start screen
|
||||
Plug 'mhinz/vim-startify'
|
||||
|
||||
Plug 'preservim/nerdtree' |
|
||||
\ Plug 'Xuyuanp/nerdtree-git-plugin' |
|
||||
\ Plug 'ryanoasis/vim-devicons'
|
||||
let g:NERDTreeGitStatusIndicatorMapCustom = {
|
||||
\ 'Modified' :'✹',
|
||||
\ 'Staged' :'✚',
|
||||
\ 'Untracked' :'✭',
|
||||
\ 'Renamed' :'➜',
|
||||
\ 'Unmerged' :'═',
|
||||
\ 'Deleted' :'✖',
|
||||
\ 'Dirty' :'✗',
|
||||
\ 'Ignored' :'☒',
|
||||
\ 'Clean' :'✔︎',
|
||||
\ 'Unknown' :'?',
|
||||
\ }
|
||||
let g:NERDTreeGitStatusUseNerdFonts = 1 " you should install nerdfonts by yourself. default: 0
|
||||
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " On-demand loading
|
||||
":help NERDTreeOptions
|
||||
map <C-n> :NERDTreeToggle<CR>
|
||||
map <leader>r :NERDTreeFind<cr>
|
||||
let NERDTreeIgnore=['\.pyc$', '\~$']
|
||||
|
||||
" This makes the location of the current open file always the current working
|
||||
" directory of vim. Experimental - Sept 15th 2020
|
||||
autocmd BufEnter * lcd %:p:h
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'bfredl/nvim-ipy'
|
||||
let g:nvim_ipy_perform_mappings = 0
|
||||
map <silent> <leader>s <Plug>(IPy-Run)
|
||||
map <silent> <leader><Enter> <Plug>(IPy-RunCell)
|
||||
map <silent> <c-s> <Plug>(IPy-Complete)
|
||||
map <silent> <c-s> <Plug>(IPy-WordObjInfo)
|
||||
map <silent> <leader>? <Plug>(IPy-Interrupt)
|
||||
map <silent> <c-s> <Plug>(IPy-Terminate)
|
||||
|
||||
""---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Fix for slimux:
|
||||
set shell=/bin/sh
|
||||
Plug 'lotabout/slimux'
|
||||
"Send text between tmux panes!
|
||||
nmap <Leader>s :SlimuxREPLSendLine<CR>j
|
||||
vmap <Leader>s :SlimuxREPLSendSelection<CR>
|
||||
" map <C-c><C-c> :SlimuxREPLConfigure<CR>
|
||||
let g:slimux_pane_format = "#W #P "
|
||||
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Plug 'vimwiki/vimwiki'
|
||||
set nocompatible
|
||||
filetype plugin on
|
||||
syntax on
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
" Initialize plugin system
|
||||
call plug#end()
|
||||
|
||||
" DVC
|
||||
autocmd! BufNewFile,BufRead Dvcfile,*.dvc,dvc.lock setfiletype yaml
|
||||
|
||||
"============u============u============u============u============u============u
|
||||
" VIM BEHAVIOUR - Settings
|
||||
" Highlight character at column 80
|
||||
:set colorcolumn=80
|
||||
|
||||
" Tab completion in command mode
|
||||
set wildmenu
|
||||
|
||||
"These filetypes are ignored when expanding wildcard searches
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc
|
||||
|
||||
" show line numbers
|
||||
set number
|
||||
|
||||
" using only 1 column (and 1 space) while possible
|
||||
set numberwidth=1
|
||||
|
||||
" Set vim system timeouts
|
||||
set timeoutlen=1000
|
||||
set ttimeoutlen=5
|
||||
|
||||
" Set numbers relative or
|
||||
" set relativenumber
|
||||
set norelativenumber
|
||||
|
||||
" Vim Arithmetic
|
||||
" <C-c> -> increase the count of a number
|
||||
" <C-x> -> decrease the count of a number
|
||||
nnoremap <C-c> :exe "normal \<C-a>"<CR>
|
||||
|
||||
" Vim date key
|
||||
" I would like this to put behind the cursor.
|
||||
" nnoremap <leader>d :r !date<CR>
|
||||
|
||||
" Vim ls key
|
||||
" Wed 16 Sep 2020 09:32:44 PM PDT
|
||||
nnoremap <leader>l :r ! ls<CR>
|
||||
|
||||
" Here we map the leader key! This is where things get spicy! The leader key
|
||||
" in vim is extremely powerful. Wielded by great mages, it unlocks the ability
|
||||
" to cast spells through one's very own fingertips by merely thinking a string
|
||||
" of words. Once the energetic vibration of these thoughts pass through the
|
||||
" keys into the keyboard, the spell is activated and it's consequences take
|
||||
" effect. Use this key in normal mode to run commands through key bindings!
|
||||
" * Why do we define it twice? Once with no g, then with a g, what is the
|
||||
" difference?
|
||||
"
|
||||
" Set the leader key - #setleader
|
||||
let mapleader=","
|
||||
let g:mapleader=","
|
||||
|
||||
" I was about to make something bad ass here. It escapes me. It was something
|
||||
" about doing something in vim.
|
||||
|
||||
" Here I make <b>shortcuts</b> to various system locations.
|
||||
" ssh config, fish config, vim config, my personal notes,
|
||||
nnoremap <leader>ev :e $MYVIMRC<CR>
|
||||
nnoremap <leader>ef :e ~/.config/fish/config.fish<CR>
|
||||
nnoremap <leader>et :e ~/.tmux.conf<CR>
|
||||
nnoremap <leader>es :e ~/.ssh/config<CR>
|
||||
nnoremap <leader>ed :e ~/Workspace/dotfiles/<CR>
|
||||
nnoremap <leader>ew :e ~/Workspace/<CR>
|
||||
" let current_week "=strftime('%V')
|
||||
" nnoremap <leader>en :e ~/Notes/strftime('%V')/strftime('%V').md<CR>G
|
||||
function Edit()
|
||||
let n = '~/Notes/'.strftime('%V').'/'.strftime('%V').'.md'
|
||||
edit(n)
|
||||
endfunction
|
||||
|
||||
function! Edit()
|
||||
let n = '~/Notes/'.strftime('%V').'/'.strftime('%V').'.md'
|
||||
execute "e ".fnameescape(n)
|
||||
endfunction
|
||||
|
||||
" nnoremap <leader>en :Edit()
|
||||
" nnoremap <leader>en :ex "e ".fnameescape('~/Notes/'.=strftime('%V').'/'.=strftime('%V').'.md')<CR>
|
||||
nnoremap <leader>en "='~/Notes/'.strftime('%V').'/'.strftime('%V').'.md'
|
||||
|
||||
|
||||
nnoremap <leader>en :e strftime('%V')
|
||||
|
||||
" Date utilities
|
||||
:nnoremap <F5> "=strftime("%c")<CR>P
|
||||
:inoremap <F5> <C-R>=strftime("%c")<CR>
|
||||
|
||||
" funct! Exec(command)
|
||||
" redir =>output
|
||||
" silent exec a:command
|
||||
" redir END
|
||||
" return output
|
||||
" endfunct!
|
||||
|
||||
nnoremap <leader><leader> i^R=Exec('ls')
|
||||
|
||||
" Force reload vimrc
|
||||
nnoremap <leader>rv :source $MYVIMRC<CR>
|
||||
" stow -v -R dotfiles -t ~/
|
||||
|
||||
" For copying text out of VIM
|
||||
set mouse=a
|
||||
|
||||
" Syntax Highlighting
|
||||
syntax enable
|
||||
|
||||
" set background=dark
|
||||
"colorscheme solarized
|
||||
set t_Co=256
|
||||
set t_ut=
|
||||
colorscheme nord
|
||||
" colorscheme iceberg
|
||||
" colorscheme codedark
|
||||
hi Normal guibg=NONE ctermbg=NONE
|
||||
" colors deus
|
||||
|
||||
"Highlight Cursor line
|
||||
set cursorline
|
||||
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"
|
||||
" Enable Intuitive copy and paste
|
||||
" vnoremap <C-c> "*y
|
||||
" vnoremap <C-c> "+y
|
||||
" nnoremap <C-v> "+p
|
||||
" inoremap <C-v> <C-r>+
|
||||
set pastetoggle=<F2>
|
||||
|
||||
"Use modifier to jump to beginning and end of lines
|
||||
map <leader>j $
|
||||
map <leader>f 0
|
||||
|
||||
" This keeps the cursor at the center of the screen.
|
||||
set scrolloff=999
|
||||
|
||||
"split more naturally
|
||||
set splitbelow
|
||||
set splitright
|
||||
" Searching
|
||||
set incsearch " show 'best match so far' as you type
|
||||
set hlsearch " hilight the items found by the search
|
||||
set ignorecase " ignores case of letters on searches
|
||||
set smartcase " Override the 'ignorecase' option if the search pattern contains upper case characters
|
||||
"Manually turn off the search highlight
|
||||
map <leader>/ :nohl<CR>
|
||||
|
||||
set nowrap
|
||||
|
||||
"Abbreviations
|
||||
ab h1 hi
|
||||
|
||||
" Disable these mappings that I don't want.
|
||||
" Hmm.. Better look into this. I should know what these do.
|
||||
noremap <silent> <C-c> <Nop>
|
||||
noremap <silent> <C-w>f <Nop>
|
||||
noremap <silent> <Del> <Nop>
|
||||
noremap <silent> <F1> <Nop>
|
||||
|
||||
" Make buffer movement similar to vimium/vimfx for firefox using let
|
||||
" g:airline#extensions#tabline#enabled v 1
|
||||
"
|
||||
" Cycle tabs
|
||||
" Don't fuckin save, it makes things slow, wish I changed this
|
||||
" earlier...(removing save - Sept 12 2020)
|
||||
" I've been mixing up the terminology of tabs and windows.
|
||||
" A Buffer is what's drawn on the screen
|
||||
" A window is a view of particular text
|
||||
" A tab page is a utility for organizing multiple windows
|
||||
nnoremap <silent> <S-k> :bn<CR>:NERDTreeFind<CR><C-w>l
|
||||
nnoremap <silent> <S-j> :bp<CR>:NERDTreeFind<CR><C-w>l
|
||||
" noremap <C-t> :tabnew split<CR>
|
||||
" Let's shuffle windows just as easy. Then we can get into nerd tree smoother
|
||||
" Whatabout shift n and shift p to cycle tabs?
|
||||
" What do shipt p and shift n do?
|
||||
" shift p is print behind, and shift n is previous search result.
|
||||
" OK, we are not changing the above, they actually match vimium in firefox
|
||||
" Fix Cycle tabs
|
||||
" nnoremap <silent> <S-j> <S-l>
|
||||
" nnoremap <silent> <S-l> :w<CR>:bp<CR>
|
||||
"
|
||||
" nnoremap <silent> <S-k> <S-h>
|
||||
" nnoremap <silent> <S-l> :w<CR>:bn<CR>
|
||||
|
||||
" Tab spacing on html
|
||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype djangohtml setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype css setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype scss setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype javascript setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype json setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype cpp setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype c setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype sh setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype fish setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype bash setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype perl setlocal ts=2 sw=2 expandtab
|
||||
|
||||
"Maintain cursor and window position when switching buffers
|
||||
if v:version >= 700
|
||||
au BufLeave * let b:winview = winsaveview()
|
||||
au BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif
|
||||
endif
|
||||
|
||||
" For COC
|
||||
if filereadable(expand("~/.config/nvim/coc.vim"))
|
||||
source ~/.config/nvim/coc.vim
|
||||
endif
|
||||
" " `--. `|/ _\` ( _/-" /
|
||||
" |\_b_9-"" ___) -"-"//'
|
||||
" | --/`--_o"_/' (6_//
|
||||
" P I C C O L O / ,' -"" .),-'
|
||||
" ( "-__ `-(
|
||||
" \ |HHH/ / \
|
||||
" \ - _./ `-._..._
|
||||
" 7----",'/ ..-" .-- "--.._
|
||||
" _.._.-/) .-',/ .-" -" ""--..
|
||||
" _..--"|=""--..--""""""./' . .-"""-.\
|
||||
" ,' .-',' ,' /. / .' \\
|
||||
" .:' ,' ,: / ,/'/ /' _....' _..--""" )
|
||||
" ,"/ / /( / _,/' / ,/' /. .-" __|
|
||||
" / / /' ( ""----"""" / ,/ / `:.-" _.--"" /
|
||||
" || ( \_ __.-' / |`-.`:=._-" _.-:|
|
||||
" \/ \ """"""" / ""-` `-"===="-' \
|
||||
" | "-. __..-" \._.====.. `
|
||||
" | ""--"""" //..---""\\ .
|
||||
" \ /'| __...---.\ |
|
||||
"
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"coc.preferences.formatOnSaveFiletypes": [
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"typescript",
|
||||
"typescriptreact"
|
||||
],
|
||||
"tsserver.formatOnType": true,
|
||||
"coc.preferences.formatOnType": true,
|
||||
"eslint.autoFixOnSave": true,
|
||||
"eslint.filetypes": ["javascript", "javascriptreact", "typescript", "typescriptreact"]
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,615 @@
|
|||
" _____ _ ___ _
|
||||
" / ___|| | / _ \ | |
|
||||
" \ `--. | |__ __ _ __ __ _ __ / /_\ \ _ __ __| | ___ _ __ ___ ___ _ __
|
||||
" `--. \| '_ \ / _` |\ \ /\ / /| '_ \ | _ || '_ \ / _` | / _ \| '__|/ __| / _ \ | '_ \
|
||||
" /\__/ /| | | || (_| | \ V V / | | | | | | | || | | || (_| || __/| | \__ \| (_) || | | |
|
||||
" \____/ |_| |_| \__,_| \_/\_/ |_| |_| \_| |_/|_| |_| \__,_| \___||_| |___/ \___/ |_| |_|
|
||||
"
|
||||
" _ _ _ _____ __ _ _ _
|
||||
" | | | |(_) / __ \ / _|(_) | | (_)
|
||||
" | | | | _ _ __ ___ | / \/ ___ _ __ | |_ _ __ _ _ _ _ __ __ _ | |_ _ ___ _ __
|
||||
" | | | || || '_ ` _ \ | | / _ \ | '_ \ | _|| | / _` || | | || '__| / _` || __|| | / _ \ | '_ \
|
||||
" \ \_/ /| || | | | | | | \__/\| (_) || | | || | | || (_| || |_| || | | (_| || |_ | || (_) || | | |
|
||||
" Neo \___/ |_||_| |_| |_| \____/ \___/ |_| |_||_| |_| \__, | \__,_||_| \__,_| \__||_| \___/ |_| |_|
|
||||
" __/ |
|
||||
" |___/
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Originally a fork of:
|
||||
" https://github.com/novln/nvim/blob/master/init.vim
|
||||
"
|
||||
" Key shortcuts
|
||||
" <C-p> -> ctrl-p
|
||||
" <C-n> -> nerdtree toggle
|
||||
" ...
|
||||
"
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
"
|
||||
" First and foremost, set the cache directory. This is needed to coordinate
|
||||
" plugins.
|
||||
"
|
||||
let b:cache_directory = $HOME . '/.cache/nvim'
|
||||
"
|
||||
" Plugins are the beauty of vim! Use the awesome plugged plugin manager in
|
||||
" neovim.
|
||||
"
|
||||
call plug#begin('~/.local/share/nvim/plugged')
|
||||
"
|
||||
" Plugins are in ascending chronological order relative to when they were
|
||||
" added to the configuration.
|
||||
"
|
||||
Plug 'junegunn/rainbow_parentheses.vim'
|
||||
Plug 'psliwka/vim-smoothie'
|
||||
Plug 'jez/vim-superman'
|
||||
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Plug 'junegunn/vim-emoji'
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Add words in visible tmux panes to vims completefunc
|
||||
Plug 'wellle/tmux-complete.vim'
|
||||
"
|
||||
" FZF Fuzzy Finder! Careful, things are about to get FAAAAASSSTTT
|
||||
"
|
||||
" A command line fuzzy finder Very powerful
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
Plug 'yuki-ycino/fzf-preview.vim', { 'branch': 'release', 'do': ':UpdateRemotePlugins' }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
Plug 'airblade/vim-rooter'
|
||||
"
|
||||
"
|
||||
" This command tells fzf to skip filenames during its :Rg search command.
|
||||
" Why do that? I don't know.. needs experimentation.
|
||||
command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case ".shellescape(<q-args>), 1, {'options': '--delimiter : --nth 4..'}, <bang>0)
|
||||
|
||||
" https://dev.to/iggredible/how-to-search-faster-in-vim-with-fzf-vim-36ko
|
||||
" This overides the vim :grep command
|
||||
set grepprg=rg\ --vimgrep\ --smart-case\ --follow
|
||||
" It allows for search and replace across our entire project with the
|
||||
" following:
|
||||
" :grep "pizza"
|
||||
" :cfdo %s/pizza/donut/g | update
|
||||
" cfdo executes any command we pass on all entries in our quickfix list.
|
||||
"
|
||||
" Video - https://www.youtube.com/watch?v=vzWibjhLBUs
|
||||
" Gist - https://gist.github.com/LinuxIsCool/457658f5298e4186f23f3731324b68cb
|
||||
" Images in vim! Using NeoVim, FZF and termpix.
|
||||
if executable('fish')
|
||||
" use fish for embedded terminals
|
||||
set shell=fish
|
||||
" use bash for else
|
||||
let $SHELL = 'bash'
|
||||
endif
|
||||
let g:fzf_layout = { 'down': '~60%' }
|
||||
let g:fzf_files_options =
|
||||
\ '--preview "(termpix --width 50 {} || bat {}) 2> /dev/null "'
|
||||
|
||||
" Map ctrl-t to bring up fzf fuzzy finder for files
|
||||
noremap <silent> <C-t> :Files<CR>
|
||||
"
|
||||
" Vim Minimap!
|
||||
" Very cool concept but it's causing a bit of lag, and it raises an error when
|
||||
" I open it. I very well could take a look at the code. I could probably fix
|
||||
" that bug and also increase the performance.
|
||||
" Also, it would need a way to be controlled, like I need to access that
|
||||
" window. It seems like that's actually what's bugging out.
|
||||
" I should probably get back to work. I can probably leave it installed for
|
||||
" now, and not use to too often. I'll take a look at the source too.
|
||||
Plug 'lleixat/vim-minimap'
|
||||
let g:minimap_show='<leader>mm'
|
||||
let g:minimap_close='<leader>mc'
|
||||
let g:minimap_update='<leader>mu'
|
||||
let g:minimap_toggle='<leader>mt'
|
||||
" This one seems sketch as well ..
|
||||
" Plug 'koron/minimap-vim'
|
||||
" No minimap for now. Sept 2020
|
||||
" Although, I couls see how the minimap could be super useful. Let's take
|
||||
" a look at the code of the original python one.
|
||||
|
||||
" Get the dot operator (repeat) functional on plugin commands
|
||||
Plug 'tpope/vim-repeat'
|
||||
" A collection of symetric commands shortcuts the use [ and ] as access keys.
|
||||
Plug 'tpope/vim-unimpaired'
|
||||
|
||||
" This one has a lot of potential. 95 contributors on github, and it's 83%
|
||||
" python
|
||||
Plug 'Shougo/denite.nvim'
|
||||
|
||||
" ES2015 code snippets (Optional)
|
||||
" Plug 'epilande/vim-es2015-snippets'
|
||||
|
||||
" React code snippets
|
||||
" Plug 'epilande/vim-react-snippets'
|
||||
|
||||
" Ultisnips
|
||||
" Plug 'SirVer/ultisnips'
|
||||
|
||||
" Snippets are separated from the engine. Add this if you want them:
|
||||
" Plug 'honza/vim-snippets'
|
||||
|
||||
" Plug 'dsznajder/vscode-es7-javascript-react-snippets', {
|
||||
" \ 'do': 'yarn install --frozen-lockfile && yarn compile' }
|
||||
|
||||
" Trigger configuration (Optional)
|
||||
" let g:UltiSnipsExpandTrigger="<C-l>"
|
||||
"
|
||||
" Vimagit inspired by magit for emacs
|
||||
Plug 'jreybert/vimagit'
|
||||
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
let g:AutoPairsFlyMode = 1
|
||||
au FileType html let b:AutoPairs = AutoPairsDefine({'<!--' : '-->'}, [])
|
||||
au FileType vim let b:AutoPairs = AutoPairsDefine({}, ['"'])
|
||||
|
||||
Plug 'alvan/vim-closetag'
|
||||
let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.js'
|
||||
|
||||
" Polyglot language pack
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Show indentation level
|
||||
Plug 'Yggdroot/indentLine'
|
||||
|
||||
" NeoMake
|
||||
Plug 'neomake/neomake'
|
||||
|
||||
" COC
|
||||
" Javascript configuration from: https://thoughtbot.com/blog/modern-typescript-and-react-development-in-vim
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
let g:coc_global_extensions = [
|
||||
\ 'coc-tsserver'
|
||||
\ ]
|
||||
" if isdirectory('./node_modules') && isdirectory('./node_modules/prettier')
|
||||
" let g:coc_global_extensions += ['coc-prettier']
|
||||
" endif
|
||||
|
||||
if isdirectory('./node_modules') && isdirectory('./node_modules/eslint')
|
||||
let g:coc_global_extensions += ['coc-eslint']
|
||||
endif
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
nmap <silent> [g <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]g <Plug>(coc-diagnostic-next)
|
||||
nmap <leader>do <Plug>(coc-codeaction)
|
||||
nmap <leader>rn <Plug>(coc-rename)
|
||||
|
||||
Plug 'neoclide/coc-eslint'
|
||||
Plug 'neoclide/coc-prettier'
|
||||
|
||||
" Automatically generate ctags for files
|
||||
Plug 'xolox/vim-easytags'
|
||||
|
||||
" Language Server Protocol
|
||||
" View and search Language Server Protocol symbols and tags
|
||||
Plug 'liuchengxu/vista.vim'
|
||||
|
||||
" Goyo for distraction free editing! And T-shirts!
|
||||
Plug 'junegunn/goyo.vim'
|
||||
|
||||
" Limelight for focused editing
|
||||
Plug 'junegunn/limelight.vim'
|
||||
|
||||
" Make sure you use single quotes
|
||||
"
|
||||
Plug 'tomlion/vim-solidity'
|
||||
"Jupyter Support for VIM
|
||||
" Plug 'szymonmaszke/vimpyter'
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>b :VimpyterInsertPythonBlock<CR>
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>i :VimpyterStartJupyter<CR>
|
||||
" autocmd Filetype ipynb nmap <silent><Leader>n :VimpyterStartNteract<CR>
|
||||
Plug 'jeffkreeftmeijer/vim-numbertoggle'
|
||||
Plug 'tpope/vim-surround'
|
||||
"-------------------------------------------------------------------------------
|
||||
"Color Theme
|
||||
Plug 'tomasiser/vim-code-dark'
|
||||
Plug 'ajmwagar/vim-deus'
|
||||
Plug 'arcticicestudio/nord-vim'
|
||||
"-------------------------------------------------------------------------------
|
||||
Plug 'jceb/vim-orgmode'
|
||||
Plug 'tpope/vim-speeddating'
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Git Section
|
||||
"
|
||||
" Github dashboard in vim!
|
||||
Plug 'junegunn/vim-github-dashboard'
|
||||
|
||||
" Git commands in vim
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" A git commit browser.
|
||||
Plug 'junegunn/gv.vim'
|
||||
|
||||
" Show git diff in the sign column
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Plug 'tpope/vim-rhubarb'
|
||||
|
||||
"---------------
|
||||
" For Javascript and Typescript
|
||||
" INVESTIGATE THESE
|
||||
Plug 'pangloss/vim-javascript'
|
||||
Plug 'leafgarland/typescript-vim'
|
||||
Plug 'peitalin/vim-jsx-typescript'
|
||||
Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
|
||||
Plug 'jparise/vim-graphql'
|
||||
Plug 'yuezk/vim-js'
|
||||
Plug 'maxmellon/vim-jsx-pretty'
|
||||
|
||||
" Start interactive EasyAlign in visual mode (e.g. vipga)
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
|
||||
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Trying out vim lightline as an alternative to vim-airline, sticking with
|
||||
" airline.
|
||||
" Plug 'itchyny/lightline.vim'
|
||||
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
"Enable tabline extension
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
let g:airline#extensions#tabline#left_sep = '|'
|
||||
let g:airline#extensions#tabline#left_alt_sep = '|'
|
||||
let g:airline#extensions#tabline#formatter = 'unique_tail'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Markdown Composer
|
||||
function! BuildComposer(info)
|
||||
if a:info.status != 'unchanged' || a:info.force
|
||||
if has('nvim')
|
||||
!cargo build --release
|
||||
else
|
||||
!cargo build --release --no-default-features --features json-rpc
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
"
|
||||
Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer') }
|
||||
let g:markdown_composer_open_browser = 0
|
||||
"-------------------------------------------------------------------------------
|
||||
"
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,__pycache__/ " MacOSX/Linux<Paste>
|
||||
Plug 'ctrlpvim/ctrlp.vim'
|
||||
"The below 4 lines are for speed!from https://stackoverflow.com/questions/21346068/slow-performance-on-ctrlp-it-doesnt-work-to-ignore-some-folders/22784889#22784889
|
||||
let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp'
|
||||
if executable('ag')
|
||||
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
|
||||
endif
|
||||
let g:ctrlp_cmd = 'CtrlPMixed' " search anything (in files, buffers and MRU files at the same time.)
|
||||
let g:ctrlp_working_path_mode = '' " search for nearest ancestor like .git, .hg, and the directory of the current file
|
||||
let g:ctrlp_match_window_bottom = 1 " show the match window at the top of the screen
|
||||
let g:ctrlp_by_filename = 0
|
||||
let g:ctrlp_max_height = 10 " maximum height of match window
|
||||
let g:ctrlp_switch_buffer = 'et' " jump to a file if it's open already
|
||||
let g:ctrlp_use_caching = 1 " enable caching
|
||||
let g:ctrlp_cache_dir = b:cache_directory . '/ctrlp' " define cache path
|
||||
let g:ctrlp_clear_cache_on_exit = 0 " speed up by not removing clearing cache everytime
|
||||
let g:ctrlp_mruf_max = 250 " number of recently opened files
|
||||
let g:ctrlp_show_hidden = 1
|
||||
let g:ctrlp_custom_ignore = {
|
||||
\ 'py': '__pycache__/',
|
||||
\ }
|
||||
" \'py':__pycache__/'
|
||||
" 'bin'
|
||||
" 'develop-eggs',
|
||||
" 'eggs'
|
||||
" 'parts'
|
||||
" 'src/*.egg-info'
|
||||
" set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
"Comment manager
|
||||
" Allow commenting and inverting empty lines (useful when commenting a region)
|
||||
let g:NERDCommentEmptyLines = 1
|
||||
" Enable trimming of trailing whitespace when uncommenting
|
||||
let g:NERDTrimTrailingWhitespace = 1
|
||||
" Add spaces after comment delimiters by default
|
||||
let g:NERDSpaceDelims = 1
|
||||
" Align line-wise comment delimiters flush left instead of following code indentation
|
||||
let g:NERDDefaultAlign = 'left'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'goerz/ipynb_notedown.vim'
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Modified vim start screen
|
||||
Plug 'mhinz/vim-startify'
|
||||
|
||||
Plug 'preservim/nerdtree' |
|
||||
\ Plug 'Xuyuanp/nerdtree-git-plugin' |
|
||||
\ Plug 'ryanoasis/vim-devicons'
|
||||
let g:NERDTreeGitStatusIndicatorMapCustom = {
|
||||
\ 'Modified' :'✹',
|
||||
\ 'Staged' :'✚',
|
||||
\ 'Untracked' :'✭',
|
||||
\ 'Renamed' :'➜',
|
||||
\ 'Unmerged' :'═',
|
||||
\ 'Deleted' :'✖',
|
||||
\ 'Dirty' :'✗',
|
||||
\ 'Ignored' :'☒',
|
||||
\ 'Clean' :'✔︎',
|
||||
\ 'Unknown' :'?',
|
||||
\ }
|
||||
let g:NERDTreeGitStatusUseNerdFonts = 1 " you should install nerdfonts by yourself. default: 0
|
||||
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " On-demand loading
|
||||
":help NERDTreeOptions
|
||||
map <C-n> :NERDTreeToggle<CR>
|
||||
map <leader>r :NERDTreeFind<cr>
|
||||
let NERDTreeIgnore=['\.pyc$', '\~$']
|
||||
|
||||
" This makes the location of the current open file always the current working
|
||||
" directory of vim. Experimental - Sept 15th 2020
|
||||
autocmd BufEnter * lcd %:p:h
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
Plug 'bfredl/nvim-ipy'
|
||||
let g:nvim_ipy_perform_mappings = 0
|
||||
map <silent> <leader>s <Plug>(IPy-Run)
|
||||
map <silent> <leader><Enter> <Plug>(IPy-RunCell)
|
||||
map <silent> <c-s> <Plug>(IPy-Complete)
|
||||
map <silent> <c-s> <Plug>(IPy-WordObjInfo)
|
||||
map <silent> <leader>? <Plug>(IPy-Interrupt)
|
||||
map <silent> <c-s> <Plug>(IPy-Terminate)
|
||||
|
||||
""---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
" Fix for slimux:
|
||||
set shell=/bin/sh
|
||||
Plug 'lotabout/slimux'
|
||||
"Send text between tmux panes!
|
||||
nmap <Leader>s :SlimuxREPLSendLine<CR>j
|
||||
vmap <Leader>s :SlimuxREPLSendSelection<CR>
|
||||
" map <C-c><C-c> :SlimuxREPLConfigure<CR>
|
||||
let g:slimux_pane_format = "#W #P "
|
||||
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Plug 'vimwiki/vimwiki'
|
||||
set nocompatible
|
||||
filetype plugin on
|
||||
syntax on
|
||||
"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
" Initialize plugin system
|
||||
call plug#end()
|
||||
|
||||
" DVC
|
||||
autocmd! BufNewFile,BufRead Dvcfile,*.dvc,dvc.lock setfiletype yaml
|
||||
|
||||
"============u============u============u============u============u============u
|
||||
" VIM BEHAVIOUR - Settings
|
||||
" Highlight character at column 80
|
||||
:set colorcolumn=80
|
||||
|
||||
" Tab completion in command mode
|
||||
set wildmenu
|
||||
|
||||
"These filetypes are ignored when expanding wildcard searches
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc
|
||||
|
||||
" show line numbers
|
||||
set number
|
||||
|
||||
" using only 1 column (and 1 space) while possible
|
||||
set numberwidth=1
|
||||
|
||||
" Set vim system timeouts
|
||||
set timeoutlen=1000
|
||||
set ttimeoutlen=5
|
||||
|
||||
" Set numbers relative or
|
||||
set relativenumber
|
||||
" set norelativenumber
|
||||
|
||||
" Vim Arithmetic
|
||||
" <C-c> -> increase the count of a number
|
||||
" <C-x> -> decrease the count of a number
|
||||
nnoremap <C-c> :exe "normal \<C-a>"<CR>
|
||||
|
||||
" Vim date key
|
||||
" I would like this to put behind the cursor.
|
||||
" nnoremap <leader>d :r !date<CR>
|
||||
|
||||
" Vim ls key
|
||||
" Wed 16 Sep 2020 09:32:44 PM PDT
|
||||
nnoremap <leader>l :r ! ls<CR>
|
||||
|
||||
" Here we map the leader key! This is where things get spicy! The leader key
|
||||
" in vim is extremely powerful. Wielded by great mages, it unlocks the ability
|
||||
" to cast spells through one's very own fingertips by merely thinking a string
|
||||
" of words. Once the energetic vibration of these thoughts pass through the
|
||||
" keys into the keyboard, the spell is activated and it's consequences take
|
||||
" effect. Use this key in normal mode to run commands through key bindings!
|
||||
" * Why do we define it twice? Once with no g, then with a g, what is the
|
||||
" difference?
|
||||
"
|
||||
" Set the leader key - #setleader
|
||||
let mapleader=","
|
||||
let g:mapleader=","
|
||||
|
||||
" I was about to make something bad ass here. It escapes me. It was something
|
||||
" about doing something in vim.
|
||||
|
||||
" Here I make <b>shortcuts</b> to various system locations.
|
||||
" ssh config, fish config, vim config, my personal notes,
|
||||
nnoremap <leader>ev :e $MYVIMRC<CR>
|
||||
nnoremap <leader>ef :e ~/.config/fish/config.fish<CR>
|
||||
nnoremap <leader>et :e ~/.tmux.conf<CR>
|
||||
nnoremap <leader>es :e ~/.ssh/config<CR>
|
||||
nnoremap <leader>ed :e ~/Workspace/dotfiles/<CR>
|
||||
nnoremap <leader>ew :e ~/Workspace/<CR>
|
||||
" let current_week "=strftime('%V')
|
||||
" nnoremap <leader>en :e ~/Notes/strftime('%V')/strftime('%V').md<CR>G
|
||||
function Edit()
|
||||
let n = '~/Notes/'.strftime('%V').'/'.strftime('%V').'.md'
|
||||
edit(n)
|
||||
endfunction
|
||||
|
||||
function! Edit()
|
||||
let n = '~/Notes/'.strftime('%V').'/'.strftime('%V').'.md'
|
||||
execute "e ".fnameescape(n)
|
||||
endfunction
|
||||
|
||||
" nnoremap <leader>en :Edit()
|
||||
" nnoremap <leader>en :ex "e ".fnameescape('~/Notes/'.=strftime('%V').'/'.=strftime('%V').'.md')<CR>
|
||||
nnoremap <leader>en "='~/Notes/'.strftime('%V').'/'.strftime('%V').'.md'
|
||||
|
||||
|
||||
nnoremap <leader>en :e strftime('%V')
|
||||
|
||||
" Date utilities
|
||||
:nnoremap <F5> "=strftime("%c")<CR>P
|
||||
:inoremap <F5> <C-R>=strftime("%c")<CR>
|
||||
|
||||
" funct! Exec(command)
|
||||
" redir =>output
|
||||
" silent exec a:command
|
||||
" redir END
|
||||
" return output
|
||||
" endfunct!
|
||||
|
||||
nnoremap <leader><leader> i^R=Exec('ls')
|
||||
|
||||
" Force reload vimrc
|
||||
nnoremap <leader>rv :source $MYVIMRC<CR>
|
||||
" stow -v -R dotfiles -t ~/
|
||||
|
||||
" For copying text out of VIM
|
||||
set mouse=a
|
||||
|
||||
" Syntax Highlighting
|
||||
syntax enable
|
||||
|
||||
" set background=dark
|
||||
"colorscheme solarized
|
||||
set t_Co=256
|
||||
set t_ut=
|
||||
" set t_AB=^[[48;5;%dm
|
||||
" set t_AF=^[[38;5;%dm
|
||||
" let NVIM_TUI_ENABLE_TRUE_COLOR=1
|
||||
" colorscheme desert-warm-256
|
||||
colorscheme quantum
|
||||
" colorscheme nord
|
||||
" colorscheme iceberg
|
||||
" colorscheme codedark
|
||||
|
||||
hi Normal guibg=NONE ctermbg=NONE
|
||||
" colors deus
|
||||
"Highlight Cursor line
|
||||
set cursorline
|
||||
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"
|
||||
" Enable Intuitive copy and paste
|
||||
" vnoremap <C-c> "*y
|
||||
" vnoremap <C-c> "+y
|
||||
" nnoremap <C-v> "+p
|
||||
" inoremap <C-v> <C-r>+
|
||||
set pastetoggle=<F2>
|
||||
|
||||
"Use modifier to jump to beginning and end of lines
|
||||
map <leader>j $
|
||||
map <leader>f 0
|
||||
|
||||
" This keeps the cursor at the center of the screen.
|
||||
" set scrolloff=0
|
||||
set scrolloff=999
|
||||
|
||||
"split more naturally
|
||||
set splitbelow
|
||||
set splitright
|
||||
" Searching
|
||||
set incsearch " show 'best match so far' as you type
|
||||
set hlsearch " hilight the items found by the search
|
||||
set ignorecase " ignores case of letters on searches
|
||||
set smartcase " Override the 'ignorecase' option if the search pattern contains upper case characters
|
||||
"Manually turn off the search highlight
|
||||
map <leader>/ :nohl<CR>
|
||||
|
||||
set nowrap
|
||||
|
||||
"Abbreviations
|
||||
ab h1 hi
|
||||
|
||||
" Disable these mappings that I don't want.
|
||||
" Hmm.. Better look into this. I should know what these do.
|
||||
noremap <silent> <C-c> <Nop>
|
||||
noremap <silent> <C-w>f <Nop>
|
||||
noremap <silent> <Del> <Nop>
|
||||
noremap <silent> <F1> <Nop>
|
||||
|
||||
" Make buffer movement similar to vimium/vimfx for firefox using let
|
||||
" g:airline#extensions#tabline#enabled v 1
|
||||
"
|
||||
" Cycle tabs
|
||||
" Don't fuckin save, it makes things slow, wish I changed this
|
||||
" earlier...(removing save - Sept 12 2020)
|
||||
" I've been mixing up the terminology of tabs and windows.
|
||||
" A Buffer is what's drawn on the screen
|
||||
" A window is a view of particular text
|
||||
" A tab page is a utility for organizing multiple windows
|
||||
nnoremap <silent> <S-k> :bn<CR>:NERDTreeFind<CR><C-w>l
|
||||
nnoremap <silent> <S-j> :bp<CR>:NERDTreeFind<CR><C-w>l
|
||||
" noremap <C-t> :tabnew split<CR>
|
||||
" Let's shuffle windows just as easy. Then we can get into nerd tree smoother
|
||||
" Whatabout shift n and shift p to cycle tabs?
|
||||
" What do shipt p and shift n do?
|
||||
" shift p is print behind, and shift n is previous search result.
|
||||
" OK, we are not changing the above, they actually match vimium in firefox
|
||||
" Fix Cycle tabs
|
||||
" nnoremap <silent> <S-j> <S-l>
|
||||
" nnoremap <silent> <S-l> :w<CR>:bp<CR>
|
||||
"
|
||||
" nnoremap <silent> <S-k> <S-h>
|
||||
" nnoremap <silent> <S-l> :w<CR>:bn<CR>
|
||||
|
||||
" Tab spacing on html
|
||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype djangohtml setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype css setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype scss setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype javascript setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype json setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype cpp setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype c setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype sh setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype fish setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype bash setlocal ts=2 sw=2 expandtab
|
||||
autocmd Filetype perl setlocal ts=2 sw=2 expandtab
|
||||
|
||||
"Maintain cursor and window position when switching buffers
|
||||
if v:version >= 700
|
||||
au BufLeave * let b:winview = winsaveview()
|
||||
au BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif
|
||||
endif
|
||||
|
||||
" For COC
|
||||
if filereadable(expand("~/.config/nvim/coc.vim"))
|
||||
source ~/.config/nvim/coc.vim
|
||||
endif
|
||||
" " `--. `|/ _\` ( _/-" /
|
||||
" |\_b_9-"" ___) -"-"//'
|
||||
" | --/`--_o"_/' (6_//
|
||||
" P I C C O L O / ,' -"" .),-'
|
||||
" ( "-__ `-(
|
||||
" \ |HHH/ / \
|
||||
" \ - _./ `-._..._
|
||||
" 7----",'/ ..-" .-- "--.._
|
||||
" _.._.-/) .-',/ .-" -" ""--..
|
||||
" _..--"|=""--..--""""""./' . .-"""-.\
|
||||
" ,' .-',' ,' /. / .' \\
|
||||
" .:' ,' ,: / ,/'/ /' _....' _..--""" )
|
||||
" ,"/ / /( / _,/' / ,/' /. .-" __|
|
||||
" / / /' ( ""----"""" / ,/ / `:.-" _.--"" /
|
||||
" || ( \_ __.-' / |`-.`:=._-" _.-:|
|
||||
" \/ \ """"""" / ""-` `-"===="-' \
|
||||
" | "-. __..-" \._.====.. `
|
||||
" | ""--"""" //..---""\\ .
|
||||
" \ /'| __...---.\ |
|
||||
"
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
1601205341.298278 client started (175843): version 3.0a, socket /tmp//tmux-1000/default, protocol 8
|
||||
1601205341.298290 on Linux 5.4.0-7642-generic #46~1598628707~20.04~040157c-Ubuntu SMP Fri Aug 28 18:02:16 UTC ; libevent 2.1.11-stable (poll)
|
||||
1601205341.298296 socket is /tmp//tmux-1000/default
|
||||
1601205341.298304 trying connect
|
||||
1601205341.298329 add peer 0x5582eff8d5e0: 6 ((nil))
|
||||
1601205341.298379 sending message 100 to peer 0x5582eff8d5e0 (4 bytes)
|
||||
1601205341.298382 sending message 101 to peer 0x5582eff8d5e0 (7 bytes)
|
||||
1601205341.298384 sending message 102 to peer 0x5582eff8d5e0 (11 bytes)
|
||||
1601205341.298385 sending message 108 to peer 0x5582eff8d5e0 (60 bytes)
|
||||
1601205341.298387 sending message 104 to peer 0x5582eff8d5e0 (0 bytes)
|
||||
1601205341.298389 sending message 107 to peer 0x5582eff8d5e0 (4 bytes)
|
||||
1601205341.298391 sending message 105 to peer 0x5582eff8d5e0 (63 bytes)
|
||||
1601205341.298392 sending message 105 to peer 0x5582eff8d5e0 (19 bytes)
|
||||
1601205341.298394 sending message 105 to peer 0x5582eff8d5e0 (16 bytes)
|
||||
1601205341.298395 sending message 105 to peer 0x5582eff8d5e0 (20 bytes)
|
||||
1601205341.298397 sending message 105 to peer 0x5582eff8d5e0 (54 bytes)
|
||||
1601205341.298398 sending message 105 to peer 0x5582eff8d5e0 (48 bytes)
|
||||
1601205341.298400 sending message 105 to peer 0x5582eff8d5e0 (20 bytes)
|
||||
1601205341.298401 sending message 105 to peer 0x5582eff8d5e0 (11 bytes)
|
||||
1601205341.298403 sending message 105 to peer 0x5582eff8d5e0 (12 bytes)
|
||||
1601205341.298404 sending message 105 to peer 0x5582eff8d5e0 (15 bytes)
|
||||
1601205341.298406 sending message 105 to peer 0x5582eff8d5e0 (44 bytes)
|
||||
1601205341.298411 sending message 105 to peer 0x5582eff8d5e0 (29 bytes)
|
||||
1601205341.298413 sending message 105 to peer 0x5582eff8d5e0 (86 bytes)
|
||||
1601205341.298415 sending message 105 to peer 0x5582eff8d5e0 (29 bytes)
|
||||
1601205341.298416 sending message 105 to peer 0x5582eff8d5e0 (52 bytes)
|
||||
1601205341.298418 sending message 105 to peer 0x5582eff8d5e0 (47 bytes)
|
||||
1601205341.298435 sending message 105 to peer 0x5582eff8d5e0 (15 bytes)
|
||||
1601205341.298436 sending message 105 to peer 0x5582eff8d5e0 (18 bytes)
|
||||
1601205341.298438 sending message 105 to peer 0x5582eff8d5e0 (47 bytes)
|
||||
1601205341.298439 sending message 105 to peer 0x5582eff8d5e0 (23 bytes)
|
||||
1601205341.298441 sending message 105 to peer 0x5582eff8d5e0 (17 bytes)
|
||||
1601205341.298443 sending message 105 to peer 0x5582eff8d5e0 (18 bytes)
|
||||
1601205341.298444 sending message 105 to peer 0x5582eff8d5e0 (23 bytes)
|
||||
1601205341.298445 sending message 105 to peer 0x5582eff8d5e0 (30 bytes)
|
||||
1601205341.298447 sending message 105 to peer 0x5582eff8d5e0 (27 bytes)
|
||||
1601205341.298448 sending message 105 to peer 0x5582eff8d5e0 (24 bytes)
|
||||
1601205341.298450 sending message 105 to peer 0x5582eff8d5e0 (20 bytes)
|
||||
1601205341.298451 sending message 105 to peer 0x5582eff8d5e0 (23 bytes)
|
||||
1601205341.298453 sending message 105 to peer 0x5582eff8d5e0 (21 bytes)
|
||||
1601205341.298454 sending message 105 to peer 0x5582eff8d5e0 (25 bytes)
|
||||
1601205341.298456 sending message 105 to peer 0x5582eff8d5e0 (20 bytes)
|
||||
1601205341.298457 sending message 105 to peer 0x5582eff8d5e0 (35 bytes)
|
||||
1601205341.298459 sending message 105 to peer 0x5582eff8d5e0 (12 bytes)
|
||||
1601205341.298460 sending message 105 to peer 0x5582eff8d5e0 (16 bytes)
|
||||
1601205341.298462 sending message 105 to peer 0x5582eff8d5e0 (51 bytes)
|
||||
1601205341.298463 sending message 105 to peer 0x5582eff8d5e0 (33 bytes)
|
||||
1601205341.298465 sending message 105 to peer 0x5582eff8d5e0 (36 bytes)
|
||||
1601205341.298466 sending message 105 to peer 0x5582eff8d5e0 (17 bytes)
|
||||
1601205341.298468 sending message 105 to peer 0x5582eff8d5e0 (17 bytes)
|
||||
1601205341.298469 sending message 105 to peer 0x5582eff8d5e0 (387 bytes)
|
||||
1601205341.298471 sending message 105 to peer 0x5582eff8d5e0 (64 bytes)
|
||||
1601205341.298473 sending message 105 to peer 0x5582eff8d5e0 (19 bytes)
|
||||
1601205341.298474 sending message 105 to peer 0x5582eff8d5e0 (18 bytes)
|
||||
1601205341.298476 sending message 105 to peer 0x5582eff8d5e0 (15 bytes)
|
||||
1601205341.298477 sending message 105 to peer 0x5582eff8d5e0 (82 bytes)
|
||||
1601205341.298479 sending message 105 to peer 0x5582eff8d5e0 (20 bytes)
|
||||
1601205341.298484 sending message 105 to peer 0x5582eff8d5e0 (8 bytes)
|
||||
1601205341.298485 sending message 105 to peer 0x5582eff8d5e0 (19 bytes)
|
||||
1601205341.298487 sending message 105 to peer 0x5582eff8d5e0 (41 bytes)
|
||||
1601205341.298488 sending message 105 to peer 0x5582eff8d5e0 (12 bytes)
|
||||
1601205341.298490 sending message 105 to peer 0x5582eff8d5e0 (24 bytes)
|
||||
1601205341.298491 sending message 105 to peer 0x5582eff8d5e0 (36 bytes)
|
||||
1601205341.298493 sending message 105 to peer 0x5582eff8d5e0 (14 bytes)
|
||||
1601205341.298494 sending message 105 to peer 0x5582eff8d5e0 (9 bytes)
|
||||
1601205341.298496 sending message 105 to peer 0x5582eff8d5e0 (13 bytes)
|
||||
1601205341.298498 sending message 105 to peer 0x5582eff8d5e0 (17 bytes)
|
||||
1601205341.298499 sending message 105 to peer 0x5582eff8d5e0 (13 bytes)
|
||||
1601205341.298501 sending message 105 to peer 0x5582eff8d5e0 (41 bytes)
|
||||
1601205341.298502 sending message 105 to peer 0x5582eff8d5e0 (42 bytes)
|
||||
1601205341.298504 sending message 105 to peer 0x5582eff8d5e0 (30 bytes)
|
||||
1601205341.298505 sending message 105 to peer 0x5582eff8d5e0 (158 bytes)
|
||||
1601205341.298507 sending message 105 to peer 0x5582eff8d5e0 (23 bytes)
|
||||
1601205341.298509 sending message 105 to peer 0x5582eff8d5e0 (31 bytes)
|
||||
1601205341.298510 sending message 105 to peer 0x5582eff8d5e0 (23 bytes)
|
||||
1601205341.298512 sending message 105 to peer 0x5582eff8d5e0 (24 bytes)
|
||||
1601205341.298513 sending message 105 to peer 0x5582eff8d5e0 (21 bytes)
|
||||
1601205341.298514 sending message 105 to peer 0x5582eff8d5e0 (20 bytes)
|
||||
1601205341.298516 sending message 105 to peer 0x5582eff8d5e0 (56 bytes)
|
||||
1601205341.298518 sending message 106 to peer 0x5582eff8d5e0 (0 bytes)
|
||||
1601205341.298519 sending message 200 to peer 0x5582eff8d5e0 (4 bytes)
|
||||
1601205341.298521 client loop enter
|
||||
1601205341.298781 peer 0x5582eff8d5e0 message 211
|
||||
1601205341.298786 client_write: sessions should be nested with care, unset $TMUX to force\n
|
||||
1601205341.298791 peer 0x5582eff8d5e0 message 203
|
||||
1601205341.298794 client loop exit
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package argu
|
||||
package bass
|
||||
package config
|
||||
package expand
|
||||
package marlin
|
||||
package spark
|
||||
package vcs
|
||||
package weather
|
||||
theme agnoster
|
||||
theme aight
|
||||
theme ays
|
||||
theme bira
|
||||
theme bobthefish
|
||||
theme coffeeandcode
|
||||
theme default
|
||||
theme doughsay
|
||||
theme es
|
||||
theme gentoo
|
||||
theme gitstatus
|
||||
theme gnuykeaj
|
||||
theme godfather
|
||||
theme pie
|
||||
theme rider
|
||||
theme sushi
|
||||
|
|
@ -0,0 +1 @@
|
|||
stable
|
||||
|
|
@ -0,0 +1 @@
|
|||
agnoster
|
||||
|
|
@ -0,0 +1 @@
|
|||
34da4a18e8fdacda2ce10061f1cd6340
|
||||
|
|
@ -0,0 +1 @@
|
|||
30
|
||||
|
|
@ -0,0 +1 @@
|
|||
default
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
# peat rate. In the case that the server supports the XKB extension, the delay is the
|
||||
# number of milliseconds before autorepeat starts, and the rate is the number of repeats
|
||||
# per second. If the rate or delay is not given, it will be set to the default value.
|
||||
xset r rate 225 60 &
|
||||
xset r rate 200 60 &
|
||||
|
||||
# make CapsLock behave like Ctrl:
|
||||
setxkbmap -option ctrl:nocaps
|
||||
|
|
|
|||
|
|
@ -32,6 +32,10 @@ bind -n S-right next
|
|||
bind -n C-left swap-window -t -1
|
||||
bind -n C-right swap-window -t +1
|
||||
|
||||
# Surfraw shortcuts
|
||||
# bind -n g send-keys -t . "sr google "
|
||||
bind -n g send-keys -t . "g"
|
||||
|
||||
|
||||
# zoom a pane into a new window for temporary work
|
||||
# unbind +
|
||||
|
|
@ -70,8 +74,8 @@ unbind ^L
|
|||
bind ^L refresh-client
|
||||
|
||||
#quick reload and edit config
|
||||
bind-key r source-file ~/.config/serious-tmux/serious.tmux.conf \; display-message "Tmux config reloaded"
|
||||
bind-key e split-window -h "vim ~/.config/serious-tmux/serious.tmux.conf"
|
||||
bind-key r source-file ~/.tmux.conf \; display-message "Tmux config reloaded"
|
||||
bind-key e split-window -h "nvim ~/.tmux.conf"
|
||||
|
||||
# split windows like vim
|
||||
bind s split-window -v -c '#{pane_current_path}'
|
||||
|
|
@ -110,7 +114,9 @@ setw -g mode-keys vi
|
|||
setw -g xterm-keys on
|
||||
|
||||
# Get 24 bit colors
|
||||
set -ga terminal-overrides ",xterm-256color:Tc"
|
||||
set -g default-terminal "tmux-256color" # or tmux-256color
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
# set -ga terminal-overrides ",xterm-256color:Tc"
|
||||
# set -ga terminal-overrides 'xterm*:smcup@:rmcup@'
|
||||
|
||||
# Recommended by nvim from ':checkhealth'
|
||||
|
|
@ -128,7 +134,7 @@ set -g @plugin 'tmux-plugins/tmux-resurrect'
|
|||
set -g @continuum-save-interval '15'
|
||||
set -g @continuum-restore 'off'
|
||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
run -b "~/.config/serious-tmux/serious/plugins/tpm/tpm"
|
||||
# run -b "~/.config/serious-tmux/serious/plugins/tpm/tpm"
|
||||
|
||||
set -g status-right-length 240
|
||||
set -g status-left-length 140
|
||||
|
|
@ -139,8 +145,8 @@ set -g status-right 'Continuum status: #{continuum_status}'
|
|||
set -g status-right "#{pane_current_path} "
|
||||
set -ag status-right "#{prefix_highlight}"
|
||||
set -ag status-right '#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] Continuum: #{@continuum-restore} #[fg=white,bg=brightblack,nobold,noitalics,nounderscore] '
|
||||
run -b "~/.config/serious-tmux/serious/plugins/tpm/tpm"
|
||||
run-shell "~/.config/serious-tmux/serious/plugins/nord-tmux/nord.tmux"
|
||||
# run -b "~/.config/serious-tmux/serious/plugins/tpm/tpm"
|
||||
# run-shell "~/.config/serious-tmux/serious/plugins/nord-tmux/nord.tmux"
|
||||
# set -ag status-left "#{prefix_highlight}"
|
||||
|
||||
# set -g pane-border-status on
|
||||
|
|
@ -183,3 +189,27 @@ unbind -T copy-mode MouseDragEnd1Pane
|
|||
# set -ag window-status-current-format "#[fg=red,bg=black] #{pane_current_path}"
|
||||
# set -ag window-status-current-format ' '
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# From https://www.rockyourcode.com/copy-and-paste-in-tmux/
|
||||
# Use vim keybindings in copy mode
|
||||
set-option -g mouse on
|
||||
setw -g mode-keys vi
|
||||
set-option -s set-clipboard off
|
||||
bind P paste-buffer
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi y send-keys -X rectangle-toggle
|
||||
unbind -T copy-mode-vi Enter
|
||||
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'xclip -se c -i'
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip -se c -i'
|
||||
#
|
||||
# <c-a>[ Now Enters copy mode
|
||||
# Navigate the copy mode with vi-like-key bindings (u for up, d for down, etc.)
|
||||
# Hit v to start copying.
|
||||
# Press y or Enter to copy the text into the tmux buffer. This automatically cancels copy mode.
|
||||
# Paste into the buffer with <prefix>+P (make sure that it’s uppercase P).
|
||||
#
|
||||
# Or alternatively, use the mouse to copy text after you’ve entered copy mode.
|
||||
#
|
||||
# The above commands use xclip, a Linux command line tool for X11. You can
|
||||
# replace xclip -se c -i with a platform-specific command like pbcopy (MacOS) or
|
||||
# wl-copy (Wayland).
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Loading…
Reference in New Issue