nvim: cambiar plugins y sacar lo que no sirve. tmux: usar alt. zsh: envvars, teclas, aliases. borrar muchas cosas viejas que no se usan mas, y muchos cambios pequeños aqui y alla
This commit is contained in:
parent
90d987bc62
commit
68c65de02d
|
@ -84,5 +84,7 @@ bspc rule -a Termite:archi desktop='^3'
|
|||
bspc rule -a Termite:multi desktop='^1'
|
||||
|
||||
# scripts utiles
|
||||
bspc config external_rules_command ~/.config/bspwm/scripts/external_rules.sh
|
||||
|
||||
setbg &
|
||||
unclutter &
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "0x8-10+31"
|
||||
geometry = "600x8-10+31"
|
||||
|
||||
title = Dunst # Define window title
|
||||
class = Dunst # Define window class
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
.window-frame, .window-frame:backdrop {
|
||||
.window-frame,
|
||||
.window-frame:backdrop {
|
||||
box-shadow: none;
|
||||
border-style: none;
|
||||
margin: 0;
|
||||
|
@ -10,16 +11,17 @@
|
|||
}
|
||||
|
||||
window decoration {
|
||||
margin: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
VteTerminal, vte-terminal {
|
||||
padding: 5px;
|
||||
padding-bottom: 0;
|
||||
VteTerminal,
|
||||
vte-terminal {
|
||||
padding: 5px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.termite {
|
||||
padding: 0 10px;
|
||||
padding: 2px 10px;
|
||||
}
|
||||
|
||||
.window-frame.csd.popup {
|
||||
|
@ -38,16 +40,21 @@ GtkLabel.title {
|
|||
}*/
|
||||
|
||||
headerbar.default-decoration {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
min-height: 0;
|
||||
font-size: 0.8em;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
min-height: 0;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
headerbar.default-decoration button.titlebutton {
|
||||
padding: 0;
|
||||
min-height: 0;
|
||||
padding: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
/* Remove dotted lines from GTK+ 3 applications */
|
||||
undershoot.top, undershoot.right, undershoot.bottom, undershoot.left { background-image: none; }
|
||||
undershoot.top,
|
||||
undershoot.right,
|
||||
undershoot.bottom,
|
||||
undershoot.left {
|
||||
background-image: none;
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
# This file goes in ~/.config/mpv
|
||||
ao=pulse,jack,alsa,
|
||||
#vo=opengl-hq
|
||||
#proflie=opengl-hq
|
||||
#msg-level=all=fatal,ao=error
|
||||
ao=pulse,jack,alsa,
|
||||
scale=ewa_lanczossharp
|
||||
cscale=ewa_lanczossharp
|
||||
deband=no
|
||||
|
@ -12,22 +13,41 @@ autofit-larger=90%x90%
|
|||
stop-playback-on-init-failure=yes
|
||||
idle=once
|
||||
osc=yes
|
||||
save-position-on-quit
|
||||
ytdl-format=bestvideo[height<=?1080]+bestaudio/best
|
||||
screenshot-format=png
|
||||
screenshot-directory="~/Pictures/scrot"
|
||||
hwdec=vaapi
|
||||
osd-level=1
|
||||
osd-duration="3500"
|
||||
osd-font="IBM Plex Sans"
|
||||
osd-font-size="25"
|
||||
osd-border-size="2"
|
||||
osd-duration="2500"
|
||||
osd-margin-x="10"
|
||||
osd-margin-y="10"
|
||||
osd-bar-align-x="0"
|
||||
osd-bar-align-y="0.75"
|
||||
#msg-level=all=fatal,ao=error
|
||||
term-osd-bar
|
||||
term-playing-msg='${filename}'
|
||||
sub-auto=fuzzy
|
||||
sub-file-paths-append=ass
|
||||
sub-file-paths-append=srt
|
||||
sub-file-paths-append=sub
|
||||
sub-file-paths-append=subs
|
||||
sub-file-paths-append=subtitles
|
||||
demuxer-mkv-subtitle-preroll
|
||||
embeddedfonts=yes
|
||||
sub-fix-timing=no
|
||||
sub-ass-force-style=Kerning=yes
|
||||
sub-use-margins
|
||||
sub-ass-force-margins
|
||||
cache-secs=300
|
||||
cursor-autohide=1000
|
||||
prefetch-playlist=yes
|
||||
hls-bitrate=max
|
||||
save-position-on-quit
|
||||
term-osd-bar
|
||||
no-border
|
||||
msg-module
|
||||
msg-color
|
||||
|
||||
#
|
||||
# mpv configuration file
|
||||
|
|
|
@ -39,7 +39,7 @@ set sig_dashes ## dashes before sig
|
|||
set text_flowed = yes ## Eliminate odd line breaks
|
||||
set skip_quoted_offset = 3
|
||||
|
||||
set editor="nvim -c 'set textwidth=80' +Goyo"
|
||||
set editor="nvim -c 'set textwidth=80'"
|
||||
|
||||
set status_on_top = yes
|
||||
set status_chars = " *%A"
|
||||
|
|
|
@ -95,5 +95,6 @@ incremental_seeking = yes
|
|||
# LYRICS
|
||||
follow_now_playing_lyrics = no
|
||||
store_lyrics_in_song_dir = no
|
||||
lyrics_directory = ~/.local/share/lyrics
|
||||
|
||||
execute_on_song_change = "/home/deadguy/bin/tapa"
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
-------COMICS------------
|
||||
---------MISC------------
|
||||
https://www.questionablecontent.net/QCRSS.xml "~Questionable Content" comics
|
||||
|
||||
-------BLOGS------------
|
||||
https://chiptuneswin.com/blog/feed/ "~Chiptunes=WIN" blogs
|
||||
https://vimways.org/index.xml "~Vimways" blogs
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
augroup ftdetect_gitconfig
|
||||
autocmd!
|
||||
autocmd BufRead,BufNewFile *.gitconfig set filetype=gitconfig
|
||||
augroup END
|
|
@ -1,2 +0,0 @@
|
|||
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
|
||||
highlight BadWhitespace ctermbg=red guibg=darkred
|
|
@ -1 +0,0 @@
|
|||
autocmd BufNewFile,BufRead {.,}tmux*.conf* setfiletype tmux
|
|
@ -1,3 +0,0 @@
|
|||
set noshowmode
|
||||
set noruler
|
||||
autocmd BufLeave <buffer> set showmode ruler
|
|
@ -1,41 +0,0 @@
|
|||
" Vim filetype plugin
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
if !exists('b:git_dir')
|
||||
if expand('%:p') =~# '[\/]\.git[\/]modules[\/]'
|
||||
" Stay out of the way
|
||||
elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
|
||||
let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
|
||||
elseif expand('%:p') =~# '\.git\>'
|
||||
let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
|
||||
elseif $GIT_DIR != ''
|
||||
let b:git_dir = $GIT_DIR
|
||||
endif
|
||||
if (has('win32') || has('win64')) && exists('b:git_dir')
|
||||
let b:git_dir = substitute(b:git_dir,'\\','/','g')
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
|
||||
if b:git_dir =~# '/\.git$' " Not a bare repository
|
||||
let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
|
||||
endif
|
||||
let &l:path = escape(b:git_dir,'\, ').','.&l:path
|
||||
let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
|
||||
else
|
||||
setlocal keywordprg=git\ show
|
||||
endif
|
||||
if has('gui_running')
|
||||
let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','')
|
||||
endif
|
||||
|
||||
setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','')
|
||||
let b:undo_ftplugin = "setl keywordprg< path< includeexpr<"
|
|
@ -1,64 +0,0 @@
|
|||
" Vim filetype plugin
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! ftplugin/git.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
|
||||
setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms<'
|
||||
|
||||
if exists("g:no_gitcommit_commands") || v:version < 700
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("b:git_dir")
|
||||
let b:git_dir = expand("%:p:h")
|
||||
endif
|
||||
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
|
||||
|
||||
function! s:diffcomplete(A,L,P)
|
||||
let args = ""
|
||||
if a:P <= match(a:L." -- "," -- ")+3
|
||||
let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
|
||||
end
|
||||
if exists("b:git_dir") && a:A !~ '^-'
|
||||
let tree = fnamemodify(b:git_dir,':h')
|
||||
if strpart(getcwd(),0,strlen(tree)) == tree
|
||||
let args = args."\n".system("git diff --cached --name-only")
|
||||
endif
|
||||
endif
|
||||
return args
|
||||
endfunction
|
||||
|
||||
function! s:gitdiffcached(bang,gitdir,...)
|
||||
let tree = fnamemodify(a:gitdir,':h')
|
||||
let name = tempname()
|
||||
let git = "git"
|
||||
if strpart(getcwd(),0,strlen(tree)) != tree
|
||||
let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
|
||||
endif
|
||||
if a:0
|
||||
let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
|
||||
else
|
||||
let extra = "-p --stat=".&columns
|
||||
endif
|
||||
call system(git." diff --cached --no-color --no-ext-diff ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
|
||||
exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
|
||||
wincmd P
|
||||
let b:git_dir = a:gitdir
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
|
||||
nnoremap <buffer> <silent> q :q<CR>
|
||||
setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
|
||||
endfunction
|
|
@ -1,15 +0,0 @@
|
|||
" Vim filetype plugin
|
||||
" Language: git config file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2009 Dec 24
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal comments=:#,:; commentstring=;\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< cms<"
|
|
@ -4,6 +4,7 @@
|
|||
"
|
||||
" nnoremap <buffer><silent> gO :call man#showtoc()<Enter>
|
||||
""
|
||||
|
||||
function! man#showtoc() abort
|
||||
let l:bufname = bufname('%')
|
||||
let l:info = getloclist(0, { 'winid': 1 })
|
||||
|
|
|
@ -28,6 +28,4 @@ augroup mdownstuff
|
|||
autocmd BufNewFile *.md call Prose()
|
||||
augroup END
|
||||
|
||||
"let b:ale_linters = ['proselint']
|
||||
|
||||
setl rulerformat=%-12.(%l,%c%V%)\ %P
|
|
@ -2,7 +2,7 @@ setlocal ts=4
|
|||
setlocal sts=4
|
||||
setlocal sw=4
|
||||
setlocal et
|
||||
"setlocal tw=80
|
||||
setlocal tw=80
|
||||
setlocal colorcolumn=79
|
||||
setlocal smartindent
|
||||
setlocal autoindent
|
||||
|
@ -14,8 +14,6 @@ setlocal cinwords=if,elif,else,for,while,try,except,finally,def,class,with
|
|||
augroup pystuff
|
||||
autocmd!
|
||||
autocmd BufNewFile *.py 0r ~/.config/nvim/templates/py.skeleton
|
||||
autocmd InsertEnter *.py Semshi pause
|
||||
autocmd InsertLeave *.py Semshi enable
|
||||
augroup END
|
||||
|
||||
nnoremap <buffer> <localleader>y :0,$!yapf<Cr>
|
||||
|
@ -23,17 +21,10 @@ nnoremap <buffer> <LocalLeader>i :!isort %<CR><CR>
|
|||
nnoremap <buffer> <silent> <LocalLeader>= :ALEFix<CR>
|
||||
nnoremap <buffer> <localleader>c I#<esc>
|
||||
|
||||
let g:LanguageClient_autoStart = 1
|
||||
|
||||
let g:ale_sign_column_always = 1
|
||||
let g:ale_python_mypy_options = "--ignore-missing-imports"
|
||||
let g:ale_python_pylint_options = "--disable=C"
|
||||
let g:ale_python_flake8_options = "--ignore=E221"
|
||||
let g:move_key_modifier = 'N'
|
||||
let g:ale_lint_on_insert_leave = 1
|
||||
let g:ale_lint_on_text_changed = 'never'
|
||||
let g:ale_lint_on_enter = 1
|
||||
let g:ale_lint_on_save = 1
|
||||
|
||||
" Check Python files with flake8 and pylint.
|
||||
let b:ale_linters = ['pyls', 'flake8', 'pylint']
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
setl ts=2
|
||||
setl sts=2
|
||||
setl sw=2
|
||||
setl et
|
||||
setl tw=80
|
|
@ -1 +0,0 @@
|
|||
setlocal commentstring=#\ %s
|
|
@ -1,15 +0,0 @@
|
|||
" Vim indent file
|
||||
" Language: Arduino
|
||||
" Maintainer: Kevin Sjöberg <kev.sjoberg@gmail.com>
|
||||
" Last Change: 2014 Feb 28
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
" C++ indenting is built-in, thus this is very simple
|
||||
setlocal cindent
|
||||
|
||||
let b:undo_indent = "setl cin<"
|
|
@ -1,429 +0,0 @@
|
|||
" PEP8 compatible Python indent file
|
||||
" Language: Python
|
||||
" Maintainer: Daniel Hahler <https://daniel.hahler.de/>
|
||||
" Prev Maintainer: Hynek Schlawack <hs@ox.cx>
|
||||
" Prev Maintainer: Eric Mc Sween <em@tomcom.de> (address invalid)
|
||||
" Original Author: David Bustos <bustos@caltech.edu> (address invalid)
|
||||
" License: CC0
|
||||
"
|
||||
" vim-python-pep8-indent - A nicer Python indentation style for vim.
|
||||
" Written in 2004 by David Bustos <bustos@caltech.edu>
|
||||
" Maintained from 2004-2005 by Eric Mc Sween <em@tomcom.de>
|
||||
" Maintained from 2013 by Hynek Schlawack <hs@ox.cx>
|
||||
" Maintained from 2017 by Daniel Hahler <https://daniel.hahler.de/>
|
||||
"
|
||||
" To the extent possible under law, the author(s) have dedicated all copyright
|
||||
" and related and neighboring rights to this software to the public domain
|
||||
" worldwide. This software is distributed without any warranty.
|
||||
" You should have received a copy of the CC0 Public Domain Dedication along
|
||||
" with this software. If not, see
|
||||
" <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nolisp
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=GetPythonPEPIndent(v:lnum)
|
||||
setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except
|
||||
|
||||
if !exists('g:python_pep8_indent_multiline_string')
|
||||
let g:python_pep8_indent_multiline_string = 0
|
||||
endif
|
||||
|
||||
let s:block_rules = {
|
||||
\ '^\s*elif\>': ['if', 'elif'],
|
||||
\ '^\s*except\>': ['try', 'except'],
|
||||
\ '^\s*finally\>': ['try', 'except', 'else']
|
||||
\ }
|
||||
let s:block_rules_multiple = {
|
||||
\ '^\s*else\>': ['if', 'elif', 'for', 'try', 'except'],
|
||||
\ }
|
||||
" Pairs to look for when searching for opening parenthesis.
|
||||
" The value is the maximum offset in lines.
|
||||
let s:paren_pairs = {'()': 50, '[]': 100, '{}': 1000}
|
||||
|
||||
if &filetype ==# 'pyrex' || &filetype ==# 'cython'
|
||||
let b:control_statement = '\v^\s*(class|def|if|while|with|for|except|cdef|cpdef)>'
|
||||
else
|
||||
let b:control_statement = '\v^\s*(class|def|if|while|with|for|except)>'
|
||||
endif
|
||||
let s:stop_statement = '^\s*\(break\|continue\|raise\|return\|pass\)\>'
|
||||
|
||||
" Skip strings and comments. Return 1 for chars to skip.
|
||||
" jedi* refers to syntax definitions from jedi-vim for call signatures, which
|
||||
" are inserted temporarily into the buffer.
|
||||
let s:skip_special_chars = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
|
||||
\ '=~? "\\vstring|comment|jedi\\S"'
|
||||
|
||||
let s:skip_after_opening_paren = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
|
||||
\ '=~? "\\vcomment|jedi\\S"'
|
||||
|
||||
" Also ignore anything concealed.
|
||||
" Wrapper around synconcealed for older Vim (7.3.429, used on Travis CI).
|
||||
function! s:is_concealed(line, col)
|
||||
let concealed = synconcealed(a:line, a:col)
|
||||
return len(concealed) && concealed[0]
|
||||
endfunction
|
||||
if has('conceal')
|
||||
let s:skip_special_chars .= '|| s:is_concealed(line("."), col("."))'
|
||||
endif
|
||||
|
||||
|
||||
let s:skip_search = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
|
||||
\ '=~? "comment"'
|
||||
|
||||
" Use 'shiftwidth()' instead of '&sw'.
|
||||
" (Since Vim patch 7.3.629, 'shiftwidth' can be set to 0 to follow 'tabstop').
|
||||
if exists('*shiftwidth')
|
||||
function! s:sw()
|
||||
return shiftwidth()
|
||||
endfunction
|
||||
else
|
||||
function! s:sw()
|
||||
return &shiftwidth
|
||||
endfunction
|
||||
endif
|
||||
|
||||
function! s:pair_sort(x, y)
|
||||
if a:x[0] == a:y[0]
|
||||
return a:x[1] == a:y[1] ? 0 : a:x[1] > a:y[1] ? 1 : -1
|
||||
else
|
||||
return a:x[0] > a:y[0] ? 1 : -1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Find backwards the closest open parenthesis/bracket/brace.
|
||||
function! s:find_opening_paren(...)
|
||||
" optional arguments: line and column (defaults to 1) to search around
|
||||
if a:0 > 0
|
||||
let view = winsaveview()
|
||||
call cursor(a:1, a:0 > 1 ? a:2 : 1)
|
||||
let ret = s:find_opening_paren()
|
||||
call winrestview(view)
|
||||
return ret
|
||||
endif
|
||||
|
||||
" Return if cursor is in a comment.
|
||||
exe 'if' s:skip_search '| return [0, 0] | endif'
|
||||
|
||||
let nearest = [0, 0]
|
||||
for [p, maxoff] in items(s:paren_pairs)
|
||||
let stopline = max([0, line('.') - maxoff, nearest[0]])
|
||||
let next = searchpairpos(
|
||||
\ '\V'.p[0], '', '\V'.p[1], 'bnW', s:skip_special_chars, stopline)
|
||||
if next[0] && (next[0] > nearest[0] || (next[0] == nearest[0] && next[1] > nearest[1]))
|
||||
let nearest = next
|
||||
endif
|
||||
endfor
|
||||
return nearest
|
||||
endfunction
|
||||
|
||||
" Find the start of a multi-line statement
|
||||
function! s:find_start_of_multiline_statement(lnum)
|
||||
let lnum = a:lnum
|
||||
while lnum > 0
|
||||
if getline(lnum - 1) =~# '\\$'
|
||||
let lnum = prevnonblank(lnum - 1)
|
||||
else
|
||||
let [paren_lnum, _] = s:find_opening_paren(lnum)
|
||||
if paren_lnum < 1
|
||||
return lnum
|
||||
else
|
||||
let lnum = paren_lnum
|
||||
endif
|
||||
endif
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
" Find possible indent(s) of the block starter that matches the current line.
|
||||
function! s:find_start_of_block(lnum, types, multiple)
|
||||
let r = []
|
||||
let types = copy(a:types)
|
||||
let re = '\V\^\s\*\('.join(a:types, '\|').'\)\>'
|
||||
let lnum = a:lnum
|
||||
let last_indent = indent(lnum) + 1
|
||||
while lnum > 0 && last_indent > 0
|
||||
let indent = indent(lnum)
|
||||
if indent < last_indent
|
||||
for type in types
|
||||
let re = '\v^\s*'.type.'>'
|
||||
if getline(lnum) =~# re
|
||||
if !a:multiple
|
||||
return [indent]
|
||||
endif
|
||||
if index(r, indent) == -1
|
||||
let r += [indent]
|
||||
endif
|
||||
" Remove any handled type, e.g. 'if'.
|
||||
call remove(types, index(types, type))
|
||||
endif
|
||||
endfor
|
||||
let last_indent = indent(lnum)
|
||||
endif
|
||||
let lnum = prevnonblank(lnum - 1)
|
||||
endwhile
|
||||
return r
|
||||
endfunction
|
||||
|
||||
" Is "expr" true for every position in "lnum", beginning at "start"?
|
||||
" (optionally up to a:1 / 4th argument)
|
||||
function! s:match_expr_on_line(expr, lnum, start, ...)
|
||||
let text = getline(a:lnum)
|
||||
let end = a:0 ? a:1 : len(text)
|
||||
if a:start > end
|
||||
return 1
|
||||
endif
|
||||
let save_pos = getpos('.')
|
||||
let r = 1
|
||||
for i in range(a:start, end)
|
||||
call cursor(a:lnum, i)
|
||||
if !(eval(a:expr) || text[i-1] =~# '\s')
|
||||
let r = 0
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
call setpos('.', save_pos)
|
||||
return r
|
||||
endfunction
|
||||
|
||||
" Line up with open parenthesis/bracket/brace.
|
||||
function! s:indent_like_opening_paren(lnum)
|
||||
let [paren_lnum, paren_col] = s:find_opening_paren(a:lnum)
|
||||
if paren_lnum <= 0
|
||||
return -2
|
||||
endif
|
||||
let text = getline(paren_lnum)
|
||||
let base = indent(paren_lnum)
|
||||
|
||||
let nothing_after_opening_paren = s:match_expr_on_line(
|
||||
\ s:skip_after_opening_paren, paren_lnum, paren_col+1)
|
||||
let starts_with_closing_paren = getline(a:lnum) =~# '^\s*[])}]'
|
||||
|
||||
if nothing_after_opening_paren
|
||||
if starts_with_closing_paren
|
||||
let res = base
|
||||
else
|
||||
let res = base + s:sw()
|
||||
endif
|
||||
else
|
||||
" Indent to match position of opening paren.
|
||||
let res = paren_col
|
||||
endif
|
||||
|
||||
" If this line is the continuation of a control statement
|
||||
" indent further to distinguish the continuation line
|
||||
" from the next logical line.
|
||||
if text =~# b:control_statement && res == base + s:sw()
|
||||
return base + s:sw() * 2
|
||||
else
|
||||
return res
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Match indent of first block of this type.
|
||||
function! s:indent_like_block(lnum)
|
||||
let text = getline(a:lnum)
|
||||
for [multiple, block_rules] in [
|
||||
\ [0, s:block_rules],
|
||||
\ [1, s:block_rules_multiple]]
|
||||
for [line_re, blocks] in items(block_rules)
|
||||
if text !~# line_re
|
||||
continue
|
||||
endif
|
||||
|
||||
let indents = s:find_start_of_block(a:lnum - 1, blocks, multiple)
|
||||
if !len(indents)
|
||||
return -1
|
||||
endif
|
||||
if len(indents) == 1
|
||||
return indents[0]
|
||||
endif
|
||||
|
||||
" Multiple valid indents, e.g. for 'else' with both try and if.
|
||||
let indent = indent(a:lnum)
|
||||
if index(indents, indent) != -1
|
||||
" The indent is valid, keep it.
|
||||
return indent
|
||||
endif
|
||||
" Fallback to the first/nearest one.
|
||||
return indents[0]
|
||||
endfor
|
||||
endfor
|
||||
return -2
|
||||
endfunction
|
||||
|
||||
function! s:indent_like_previous_line(lnum)
|
||||
let lnum = prevnonblank(a:lnum - 1)
|
||||
|
||||
" No previous line, keep current indent.
|
||||
if lnum < 1
|
||||
return -1
|
||||
endif
|
||||
|
||||
let text = getline(lnum)
|
||||
let start = s:find_start_of_multiline_statement(lnum)
|
||||
let base = indent(start)
|
||||
let current = indent(a:lnum)
|
||||
|
||||
" Jump to last character in previous line.
|
||||
call cursor(lnum, len(text))
|
||||
let ignore_last_char = eval(s:skip_special_chars)
|
||||
|
||||
" Search for final colon that is not inside something to be ignored.
|
||||
while 1
|
||||
let curpos = getpos('.')[2]
|
||||
if curpos == 1 | break | endif
|
||||
if eval(s:skip_special_chars) || text[curpos-1] =~# '\s'
|
||||
normal! h
|
||||
continue
|
||||
elseif text[curpos-1] ==# ':'
|
||||
return base + s:sw()
|
||||
endif
|
||||
break
|
||||
endwhile
|
||||
|
||||
if text =~# '\\$' && !ignore_last_char
|
||||
" If this line is the continuation of a control statement
|
||||
" indent further to distinguish the continuation line
|
||||
" from the next logical line.
|
||||
if getline(start) =~# b:control_statement
|
||||
return base + s:sw() * 2
|
||||
endif
|
||||
|
||||
" Nest (other) explicit continuations only one level deeper.
|
||||
return base + s:sw()
|
||||
endif
|
||||
|
||||
let empty = getline(a:lnum) =~# '^\s*$'
|
||||
|
||||
" Current and prev line are empty, next is not -> indent like next.
|
||||
if empty && a:lnum > 1 &&
|
||||
\ (getline(a:lnum - 1) =~# '^\s*$') &&
|
||||
\ !(getline(a:lnum + 1) =~# '^\s*$')
|
||||
return indent(a:lnum + 1)
|
||||
endif
|
||||
|
||||
" If the previous statement was a stop-execution statement or a pass
|
||||
if getline(start) =~# s:stop_statement
|
||||
" Remove one level of indentation if the user hasn't already dedented
|
||||
if empty || current > base - s:sw()
|
||||
return base - s:sw()
|
||||
endif
|
||||
" Otherwise, trust the user
|
||||
return -1
|
||||
endif
|
||||
|
||||
if !empty && s:is_dedented_already(current, base)
|
||||
return -1
|
||||
endif
|
||||
|
||||
" In all other cases, line up with the start of the previous statement.
|
||||
return base
|
||||
endfunction
|
||||
|
||||
" If this line is dedented and the number of indent spaces is valid
|
||||
" (multiple of the indentation size), trust the user.
|
||||
function! s:is_dedented_already(current, base)
|
||||
let dedent_size = a:current - a:base
|
||||
return (dedent_size < 0 && a:current % s:sw() == 0) ? 1 : 0
|
||||
endfunction
|
||||
|
||||
" Is the syntax at lnum (and optionally cnum) a python string?
|
||||
function! s:is_python_string(lnum, ...)
|
||||
let line = getline(a:lnum)
|
||||
let linelen = len(line)
|
||||
if linelen < 1
|
||||
let linelen = 1
|
||||
endif
|
||||
let cols = a:0 ? type(a:1) != type([]) ? [a:1] : a:1 : range(1, linelen)
|
||||
for cnum in cols
|
||||
if match(map(synstack(a:lnum, cnum),
|
||||
\ "synIDattr(v:val, 'name')"), 'python\S*String') == -1
|
||||
return 0
|
||||
end
|
||||
endfor
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! GetPythonPEPIndent(lnum)
|
||||
" First line has indent 0
|
||||
if a:lnum == 1
|
||||
return 0
|
||||
endif
|
||||
|
||||
let line = getline(a:lnum)
|
||||
let prevline = getline(a:lnum-1)
|
||||
|
||||
" Multilinestrings: continous, docstring or starting.
|
||||
if s:is_python_string(a:lnum-1, len(prevline))
|
||||
\ && (s:is_python_string(a:lnum, 1)
|
||||
\ || match(line, '^\%("""\|''''''\)') != -1)
|
||||
|
||||
" Indent closing quotes as the line with the opening ones.
|
||||
let match_quotes = match(line, '^\s*\zs\%("""\|''''''\)')
|
||||
if match_quotes != -1
|
||||
" closing multiline string
|
||||
let quotes = line[match_quotes:(match_quotes+2)]
|
||||
let pairpos = searchpairpos(quotes, '', quotes, 'b')
|
||||
if pairpos[0] != 0
|
||||
return indent(pairpos[0])
|
||||
else
|
||||
" TODO: test to cover this!
|
||||
endif
|
||||
endif
|
||||
|
||||
if s:is_python_string(a:lnum-1)
|
||||
" Previous line is (completely) a string.
|
||||
return indent(a:lnum-1)
|
||||
endif
|
||||
|
||||
if match(prevline, '^\s*\%("""\|''''''\)') != -1
|
||||
" docstring.
|
||||
return indent(a:lnum-1)
|
||||
endif
|
||||
|
||||
let indent_multi = get(b:, 'python_pep8_indent_multiline_string',
|
||||
\ get(g:, 'python_pep8_indent_multiline_string', 0))
|
||||
if match(prevline, '\v%("""|'''''')$') != -1
|
||||
" Opening multiline string, started in previous line.
|
||||
if (&autoindent && indent(a:lnum) == indent(a:lnum-1))
|
||||
\ || match(line, '\v^\s+$') != -1
|
||||
" <CR> with empty line or to split up 'foo("""bar' into
|
||||
" 'foo("""' and 'bar'.
|
||||
if indent_multi == -2
|
||||
return indent(a:lnum-1) + s:sw()
|
||||
endif
|
||||
return indent_multi
|
||||
endif
|
||||
endif
|
||||
|
||||
" Keep existing indent.
|
||||
if match(line, '\v^\s*\S') != -1
|
||||
return -1
|
||||
endif
|
||||
|
||||
if indent_multi != -2
|
||||
return indent_multi
|
||||
endif
|
||||
|
||||
return s:indent_like_opening_paren(a:lnum)
|
||||
endif
|
||||
|
||||
" Parens: If we can find an open parenthesis/bracket/brace, line up with it.
|
||||
let indent = s:indent_like_opening_paren(a:lnum)
|
||||
if indent >= -1
|
||||
return indent
|
||||
endif
|
||||
|
||||
" Blocks: Match indent of first block of this type.
|
||||
let indent = s:indent_like_block(a:lnum)
|
||||
if indent >= -1
|
||||
return indent
|
||||
endif
|
||||
|
||||
return s:indent_like_previous_line(a:lnum)
|
||||
endfunction
|
|
@ -4,151 +4,92 @@ let g:loaded_python_provider=1 " Disable python 2 interfa
|
|||
let g:python_host_skip_check=1 " Skip python 2 host check
|
||||
let g:python3_host_prog = '/usr/bin/python3'
|
||||
let g:tagbar_ctags_bin = '/usr/bin/ctags'
|
||||
set inccommand=nosplit " Live preview of substitutes and other similar commands
|
||||
let python_highlight_all=1
|
||||
set inccommand=nosplit " Live preview of substitutes and other similar commands
|
||||
|
||||
" Plug updates itself automatically
|
||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
|
||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
||||
au VimEnter * PlugInstall --sync | source $MYVIMRC
|
||||
endif
|
||||
|
||||
if executable('rg')
|
||||
set grepprg=rg\ --vimgrep\ --hidden\ --no-heading
|
||||
set grepformat=%f:%l:%c:%m,%f:%l:%m
|
||||
endif
|
||||
set grepprg=rg\ --vimgrep\ --hidden\ --no-heading
|
||||
set grepformat=%f:%l:%c:%m,%f:%l:%m
|
||||
" }}}
|
||||
" Plugins {{{
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
Plug 'junegunn/vim-plug'
|
||||
" UI
|
||||
Plug 'zefei/vim-wintabs'
|
||||
Plug 'zefei/vim-wintabs-powerline'
|
||||
" Languages
|
||||
Plug 'lervag/vimtex', { 'for': 'tex' }
|
||||
Plug 'plasticboy/vim-markdown', { 'for': 'markdown' }
|
||||
" Formatting
|
||||
Plug 'tmsvg/pear-tree'
|
||||
Plug 'w0rp/ale'
|
||||
Plug 'sbdchd/neoformat', {'on': 'Neoformat'}
|
||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||
Plug 'Shougo/neco-syntax'
|
||||
Plug 'Shougo/neco-vim'
|
||||
" Navigation
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
Plug 'othree/yajs.vim', {'for': 'javascript'}
|
||||
Plug 'othree/es.next.syntax.vim', {'for': 'javascript'}
|
||||
Plug 'mxw/vim-jsx', {'for': 'javascript'}
|
||||
Plug 'HerringtonDarkholme/yats.vim', {'for': 'typescript'}
|
||||
Plug 'mhartington/nvim-typescript', {'do': './install.sh', 'for': 'typescript'}
|
||||
Plug 'neoclide/coc.nvim', {'tag': '*', 'do': { -> coc#util#install()}}
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
Plug 'tmsvg/pear-tree'
|
||||
Plug 'tpope/vim-commentary'
|
||||
Plug 'tpope/vim-vinegar'
|
||||
Plug '/usr/bin/fzf'
|
||||
Plug 'junegunn/fzf.vim'
|
||||
" Modes
|
||||
Plug 'junegunn/goyo.vim'
|
||||
" Python
|
||||
Plug 'numirias/semshi', {'do': ':UpdateRemotePlugins'}
|
||||
Plug 'jpalardy/vim-slime'
|
||||
Plug 'zchee/deoplete-jedi'
|
||||
Plug 'autozimu/LanguageClient-neovim', {
|
||||
\ 'branch': 'next',
|
||||
\ 'do': 'bash install.sh',
|
||||
\ }
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'mhartington/oceanic-next'
|
||||
call plug#end()
|
||||
" }}}
|
||||
" Options {{{
|
||||
" Search down into subfolders
|
||||
" Provides tab-completion for all file-related tasks
|
||||
" - :b lets you autocomplete any open buffer
|
||||
set path+=**
|
||||
set binary
|
||||
set clipboard^=unnamedplus " system clipboard (requires +clipboard)
|
||||
set encoding=utf-8 " The encoding displayed.
|
||||
set fileencoding=utf-8 " The encoding written to file.
|
||||
set shell=/bin/zsh " Setting shell to zsh
|
||||
set number " Line numbers on
|
||||
set showmode " Always show mode
|
||||
set mousemodel=popup
|
||||
set breakindent
|
||||
set cmdheight=1 " Command line height
|
||||
set cmdwinheight=5 " Command-line lines
|
||||
set pumheight=12 " Completion window max size
|
||||
set helpheight=12 " Minimum help window height
|
||||
set previewheight=12 " Completion preview height
|
||||
set noswapfile " New buffers will be loaded without creating a swapfile
|
||||
set hidden " Enables to switch between unsaved buffers and keep undo history
|
||||
set redrawtime=500
|
||||
set lazyredraw " Don't redraw while executing macros (better performance)
|
||||
set showmatch " Show matching brackets when text indicator is over them
|
||||
set matchtime=2 " How many tenths of a second to blink when matching brackets
|
||||
set nojoinspaces " No extra space when joining a line which ends with . ? !
|
||||
set updatetime=1000 " Update time used to create swap file or other things
|
||||
set synmaxcol=200 " Don't try to syntax highlight minified files
|
||||
set splitbelow " Splitting a window will put the new window below the current
|
||||
set splitright " Splitting a window will put the new window right of the current
|
||||
set notimeout " Time out on key codes but not mappings.
|
||||
set ttimeout
|
||||
set ttimeoutlen=10
|
||||
set ignorecase " Ignore case by default
|
||||
set smartcase " Make search case sensitive only if it contains uppercase letters
|
||||
set wrapscan " Search again from top when reached the bottom
|
||||
set cursorline " Hightlight the screen line of the cursor
|
||||
set numberwidth=5 " Minimal number of columns to use for line numbers
|
||||
set nobackup
|
||||
set nowritebackup
|
||||
set wrap " Wrap lines longer than the width of the window
|
||||
set visualbell " Use visual bell instead of beeping
|
||||
set selectmode=key
|
||||
set keymodel=startsel
|
||||
set foldenable " Fold by default
|
||||
set clipboard^=unnamedplus " system clipboard (requires +clipboard)
|
||||
set fileencoding=utf-8 " The encoding written to file.
|
||||
set shell=/bin/zsh " Setting shell to zsh
|
||||
set number " Line numbers on
|
||||
set pumheight=12 " Completion window max size
|
||||
set helpheight=12 " Minimum help window height
|
||||
set noswapfile " New buffers will be loaded without creating a swapfile
|
||||
set hidden " Enables to switch between unsaved buffers and keep undo history
|
||||
set lazyredraw " Don't redraw while executing macros (better performance)
|
||||
set showmatch " Show matching brackets when text indicator is over them
|
||||
set matchtime=2 " How many tenths of a second to blink when matching brackets
|
||||
set nojoinspaces " No extra space when joining a line which ends with . ? !
|
||||
set updatetime=300 " Update time used to create swap file or other things
|
||||
set synmaxcol=200 " Don't try to syntax highlight minified files
|
||||
set splitbelow " Splitting a window will put the new window below the current
|
||||
set splitright " Splitting a window will put the new window right of the current
|
||||
set notimeout " Time out on key codes but not mappings.
|
||||
set ignorecase " Ignore case by default
|
||||
set cursorline " Hightlight the screen line of the cursor
|
||||
set visualbell " Use visual bell instead of beeping
|
||||
set scrolloff=3 " Keep this many lines padding when scrolling
|
||||
set shortmess+=aoOIWcs " Shorten messages and don't show intro
|
||||
set tabstop=4 " Number of spaces a <Tab> equals
|
||||
set shiftwidth=4 " Number of spaces for each (auto)indent step
|
||||
set foldnestmax=10 " Deepest fold is 10 levels
|
||||
set foldmethod=marker " Markers are used to specify folds.
|
||||
set foldlevelstart=10
|
||||
set foldnestmax=10 " Deepest fold is 10 levels
|
||||
set foldmethod=marker " Markers are used to specify folds.
|
||||
set completeopt-=preview
|
||||
set completefunc=LanguageClient#complete
|
||||
set formatexpr=LanguageClient#textDocument_rangeFormatting_sync()
|
||||
set noexpandtab " Do not turn tabs into spaces
|
||||
set tabstop=4 " Number of spaces a <Tab> equals
|
||||
set softtabstop=4
|
||||
set shiftwidth=4 " Number of spaces for each (auto)indent step
|
||||
set foldclose=all
|
||||
set softtabstop=4
|
||||
set noshowmode
|
||||
set breakindent
|
||||
set redrawtime=500
|
||||
set ttimeoutlen=10
|
||||
set nowritebackup
|
||||
set completeopt-=preview
|
||||
set nostartofline
|
||||
set nosmartindent
|
||||
set nosmarttab
|
||||
set modeline
|
||||
set modelines=2
|
||||
set scrolloff=3 " Keep this many lines padding when scrolling
|
||||
set title
|
||||
set undofile
|
||||
set undolevels=1000
|
||||
set undoreload=10000
|
||||
set undodir=$HOME/.config/nvim/undo
|
||||
set nrformats-=octal
|
||||
set pastetoggle=<F12>
|
||||
set shortmess=aoOtIWcFs " Shorten messages and don't show intro
|
||||
set omnifunc=syntaxcomplete#Complete
|
||||
set complete+=]
|
||||
set formatoptions+=n
|
||||
set signcolumn=yes
|
||||
set pastetoggle=<F12>
|
||||
|
||||
" Display all matching files when we tab complete
|
||||
set wildmenu
|
||||
set wildmode=longest:full,full
|
||||
set wildignorecase
|
||||
set wildoptions=tagfile
|
||||
set wildignore+=.git,.hg,.svn
|
||||
set wildignore+=*.aux,*.out,*.toc
|
||||
set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest,*.rbc,*.class
|
||||
set wildignore+=*.ai,*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png,*.psd,*.webp
|
||||
set wildignore+=*.avi,*.divx,*.mp4,*.webm,*.mov,*.m2ts,*.mkv,*.vob,*.mpg,*.mpeg
|
||||
set wildignore+=*.mp3,*.oga,*.ogg,*.wav,*.flac
|
||||
set wildignore+=*.eot,*.otf,*.ttf,*.woff
|
||||
set wildignore+=*.doc,*.pdf,*.cbr,*.cbz
|
||||
set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.kgb
|
||||
set wildignore+=*.swp,.lock,.DS_Store,._*
|
||||
set wildignore+=.stversions,*.pyc,*.spl,*.o,*.out,*~,%*
|
||||
set wildignore+=*vim/backups*
|
||||
set wildignore+=tmp/**
|
||||
set wildignore+=*.gem
|
||||
set wildignore+=log/**
|
||||
set wildignore+=*cache*
|
||||
set wildignore+=*logs*
|
||||
set wildignore+=*node_modules/**
|
||||
set wildignore+=__pycache__,*.egg-info
|
||||
set wildmode=longest:list,full
|
||||
|
||||
if &diff
|
||||
set textwidth=80
|
||||
|
@ -160,73 +101,118 @@ let mapleader="\<SPACE>"
|
|||
let maplocalleader=","
|
||||
let formatlistpat='^\s*\(\d\+[\]:.)}\t ]\|[*-][\t ]\)\s*'
|
||||
" }}}
|
||||
" Read-Only files {{{
|
||||
" Read-Only {{{
|
||||
if &readonly
|
||||
set laststatus=0
|
||||
set ruler
|
||||
set cmdheight=1
|
||||
set cmdheight=0
|
||||
set nonumber
|
||||
set noshowmode
|
||||
set noruler
|
||||
set colorcolumn=0
|
||||
set signcolumn=no
|
||||
let g:ale_disabled
|
||||
let w:airline_disabled=1
|
||||
endif
|
||||
" }}}
|
||||
" Netrw {{{
|
||||
" - :edit a folder to open a file browser
|
||||
" - <CR>/v/t to open in an h-split/v-split/tab
|
||||
let g:netrw_banner=0
|
||||
let g:netrw_browse_split=4
|
||||
let g:netrw_altv=1
|
||||
let g:netrw_preview=1
|
||||
let g:netrw_liststyle=3
|
||||
let g:netrw_list_hide=netrw_gitignore#Hide()
|
||||
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
||||
let g:netrw_sort_sequence = '[\/]$,*'
|
||||
let g:netrw_fastbrowse=2
|
||||
let g:netrw_winsize=-28
|
||||
let g:netrw_localrmdir='rm -r'
|
||||
nnoremap <F5> Lexplore<CR>
|
||||
" }}}
|
||||
" {{{ Ale
|
||||
let g:ale_use_global_executables = 1
|
||||
let g:ale_completion_enabled = 0
|
||||
let g:ale_linters_explicit = 1
|
||||
let g:ale_change_sign_column_color = 1
|
||||
let g:ale_echo_msg_format = '[%linter%] %s% (code)% [%severity%]'
|
||||
let g:ale_loclist_msg_format = '[%linter%] %s% (code)% [%severity%]'
|
||||
let g:ale_open_list = 'on_save'
|
||||
let g:ale_lint_delay = 0
|
||||
let g:ale_lint_on_text_changed = 'normal'
|
||||
let g:ale_lint_on_insert_leave = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
let g:ale_close_preview_on_insert = 1
|
||||
let g:ale_sign_error = '✖'
|
||||
let g:ale_sign_warning = '⚠'
|
||||
let g:ale_lint_delay = 500 " relint max once per [amount] milliseconds
|
||||
let g:ale_sign_info = 'i'
|
||||
let g:ale_set_loclist = 0
|
||||
let g:ale_set_quickfix = 1
|
||||
let g:ale_loclist_msg_format = '[%linter%] %s% (code)% [%severity%]'
|
||||
let g:ale_set_highlights = 1
|
||||
let g:ale_set_signs = 1
|
||||
let g:ale_set_balloons = 1
|
||||
let g:ale_virtualtext_cursor = 1
|
||||
let g:ale_linter_aliases = {
|
||||
\ 'jsx': ['css', 'javascript'],
|
||||
\ 'vue': ['vue', 'javascript'],
|
||||
\}
|
||||
let g:ale_linters = {
|
||||
\ 'javascript': ['standard'],
|
||||
\ 'jsx': ['stylelint', 'eslint'],
|
||||
\ 'typescript': ['tsserver', 'tslint'],
|
||||
\ 'vue': ['eslint', 'vls'],
|
||||
\ 'html': ['tidy'],
|
||||
\ 'bash': ['shellcheck'],
|
||||
\}
|
||||
let g:ale_fixers = {
|
||||
\ 'javascript': ['prettier_standard'],
|
||||
\ 'typescript': ['prettier'],
|
||||
\ 'vue': ['eslint'],
|
||||
\ 'scss': ['prettier'],
|
||||
\ 'css': ['prettier'],
|
||||
\ 'markdown': ['prettier'],
|
||||
\ 'html': ['prettier'],
|
||||
\}
|
||||
let g:ale_pattern_options = {
|
||||
\ '\.min\.js$': {'ale_linters': [], 'ale_fixers': []},
|
||||
\ '\.min\.css$': {'ale_linters': [], 'ale_fixers': []},
|
||||
\}
|
||||
|
||||
nmap <silent> <F10> <Plug>(ale_previous_wrap)
|
||||
nmap <silent> <F11> <Plug>(ale_next_wrap)
|
||||
" }}}
|
||||
" Deoplete {{{
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
call deoplete#custom#option('max_list', 100000)
|
||||
call deoplete#custom#option('min_pattern_length', 2)
|
||||
call deoplete#custom#source('LanguageClient',
|
||||
\ 'min_pattern_length',
|
||||
\ 2)
|
||||
if !exists('g:deoplete#omni#input_patterns')
|
||||
let g:deoplete#omni#input_patterns = {}
|
||||
endif
|
||||
let g:deoplete#sources#jedi#server_timeout = 120
|
||||
let g:deoplete#sources#jedi#show_docstring = 1
|
||||
let g:deoplete#enable_ignore_case = 1
|
||||
let g:deoplete#enable_smart_case = 1
|
||||
let g:context_filetype#same_filetypes = {}
|
||||
let g:context_filetype#same_filetypes._ = '_'
|
||||
" CoC {{{
|
||||
let g:coc_global_extensions = ['coc-stylelint', 'coc-vetur', 'coc-tsserver', 'coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-eslint', 'coc-prettier', 'coc-python']
|
||||
|
||||
" Remap keys for gotos
|
||||
nmap <silent> <leader>ld <Plug>(coc-definition)
|
||||
nmap <silent> <leader>lt <Plug>(coc-type-definition)
|
||||
nmap <silent> <leader>li <Plug>(coc-implementation)
|
||||
nmap <silent> <leader>lf <Plug>(coc-references)
|
||||
|
||||
" Remap for rename current word
|
||||
nmap <leader>lr <Plug>(coc-rename)
|
||||
|
||||
" Show documentation in preview window
|
||||
nnoremap <silent> <leader>lk :call <SID>show_documentation()<CR>
|
||||
|
||||
function! s:show_documentation()
|
||||
if &filetype == 'vim'
|
||||
execute 'h '.expand('<cword>')
|
||||
else
|
||||
call CocAction('doHover')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Highlight symbol under cursor on CursorHold
|
||||
au CursorHold * silent call CocActionAsync('highlight')
|
||||
"}}}
|
||||
" Tmux navigator {{{
|
||||
let g:tmux_navigator_no_mappings = 1
|
||||
let g:tmux_navigator_save_on_switch = 1
|
||||
nnoremap <silent> M-left :TmuxNavigateLeft<cr>
|
||||
nnoremap <silent> M-Down :TmuxNavigateDown<cr>
|
||||
nnoremap <silent> M-Up :TmuxNavigateUp<cr>
|
||||
nnoremap <silent> M-Right :TmuxNavigateRight<cr>
|
||||
nnoremap <silent> M-Tab :TmuxNavigatePrevious<cr>
|
||||
" }}}
|
||||
" FZF {{{
|
||||
" use bottom positioned 30% height bottom split
|
||||
let g:fzf_layout = { 'down': '~35%' }
|
||||
let g:fzf_action = {
|
||||
\ 'ctrl-t': 'enew',
|
||||
\ 'ctrl-e': 'enew',
|
||||
\ 'ctrl-t': 'tab split',
|
||||
\ 'ctrl-s': 'split',
|
||||
\ 'ctrl-v': 'vsplit' }
|
||||
|
||||
let g:fzf_colors =
|
||||
\ { 'fg': ['fg', 'Normal'],
|
||||
let g:fzf_colors = {
|
||||
\ 'fg': ['fg', 'Normal'],
|
||||
\ 'bg': ['bg', 'Clear'],
|
||||
\ 'hl': ['fg', 'String'],
|
||||
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
|
||||
|
@ -242,6 +228,7 @@ let g:fzf_colors =
|
|||
let g:fzf_buffers_jump = 1
|
||||
let g:fzf_tags_command = 'ctags -R'
|
||||
let g:fzf_history_dir = '~/.local/share/fzf-history'
|
||||
let g:fzf_nvim_statusline = 0
|
||||
|
||||
command! -bang -nargs=* Rg
|
||||
\ call fzf#vim#grep(
|
||||
|
@ -257,129 +244,131 @@ command! -bang -nargs=? -complete=dir Files
|
|||
if !&diff
|
||||
nnoremap <F1> :Helptags<CR>
|
||||
nnoremap <F2> :Files<CR>
|
||||
nnoremap <F3> :History<CR>
|
||||
nnoremap <F4> :Buffers<CR>
|
||||
nnoremap <C-g> :Rg<CR>
|
||||
nnoremap <F3> :Buffers<CR>
|
||||
nnoremap <F4> :Windows<CR>
|
||||
nnoremap <F6> :History<CR>
|
||||
nnoremap <F7> :Rg<CR>
|
||||
endif
|
||||
" }}}
|
||||
" Semshi {{{
|
||||
let g:semshi#mark_selected_nodes = 2
|
||||
let g:semshi#error_sign = v:false
|
||||
" }}}
|
||||
" Slime {{{
|
||||
let g:slime_target = 'tmux'
|
||||
let g:slime_python_ipython = 1
|
||||
let g:slime_paste_file = '~/Documents/Algorave/.slime_paste'
|
||||
let g:slime_default_config = {"socket_name": "default", "target_pane": ":.2"}
|
||||
let g:slime_dont_ask_default = 1
|
||||
nnoremap <c-c>l :SlimeSendCurrentLine<CR>
|
||||
" }}}
|
||||
" LSP {{{
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'python': ['/usr/bin/pyls'],
|
||||
\ 'cpp': ['clangd'],
|
||||
\ 'bash': ['/usr/bin/shellcheck'],
|
||||
\ }
|
||||
|
||||
nnoremap <F5> :call LanguageClient_contextMenu()<CR>
|
||||
" }}}
|
||||
" JS {{{
|
||||
let g:polyglot_disabled = ['javascript', 'jsx', 'typescript', 'json', 'python']
|
||||
let g:jsx_ext_required = 1
|
||||
let g:yats_host_keyword = 1
|
||||
"}}}
|
||||
" Colors {{{
|
||||
let g:seoul256_srgb = 1
|
||||
let g:seoul256_background = 233
|
||||
colo seoul256
|
||||
let g:oceanic_next_terminal_italic = 1
|
||||
colo OceanicNext
|
||||
|
||||
function! MyHighlights() abort
|
||||
highlight Trail ctermbg=red guibg=red
|
||||
call matchadd('Trail', '\s\+$', 100)
|
||||
endfunction
|
||||
|
||||
hi! Comment cterm=italic ctermbg=NONE guibg=NONE
|
||||
hi! Normal ctermbg=NONE guibg=NONE
|
||||
hi! NonText ctermbg=NONE guibg=NONE
|
||||
hi! LineNr ctermbg=232 ctermfg=237 guibg=#6699CC
|
||||
hi! CursorLineNr ctermbg=236 ctermfg=NONE
|
||||
hi! CursorLine ctermbg=236 ctermfg=NONE
|
||||
hi! StatusLine guifg=#16252b guibg=#6699CC
|
||||
hi! StatusLineNC guifg=#16252b guibg=#16252b
|
||||
hi! EndOfBuffer ctermbg=NONE ctermfg=NONE guibg=#17252c guifg=#17252c
|
||||
hi! link CocErrorSign WarningMsg
|
||||
hi! link CocWarningSign Number
|
||||
hi! link CocInfoSign Type
|
||||
" }}}
|
||||
" Wintabs {{{
|
||||
let g:wintabs_switchbuf='useopen,usetab'
|
||||
nnoremap <silent> <C-w> :WintabsClose<CR>
|
||||
nnoremap <silent> <C-l> :WintabsNext<CR>
|
||||
nnoremap <silent> <C-h> :WintabsPrevious<CR>
|
||||
" Statusline {{{
|
||||
let g:airline_extensions = ['quickfix', 'ale']
|
||||
let g:airline_skip_empty_sections = 1
|
||||
let g:airline#extensions#tabline#formatter = 'unique_tail'
|
||||
let g:airline_section_z = airline#section#create(['linenr'])
|
||||
let g:airline#extensions#default#layout = [['a', 'c', 'warning', 'error'], ['x', 'z']]
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
let g:airline#extensions#ale#checking_symbol=""
|
||||
let airline#extensions#ale#show_line_numbers = 1
|
||||
let g:airline_exclude_preview = 1
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline_highlighting_cache = 1
|
||||
if !exists('g:airline_symbols')
|
||||
let g:airline_symbols = {}
|
||||
endif
|
||||
let g:airline_left_sep = ''
|
||||
let g:airline_right_sep = ''
|
||||
let g:airline_symbols.linenr = 'Ξ'
|
||||
let g:airline_theme='space'
|
||||
" }}}
|
||||
" AutoCommands {{{
|
||||
if !exists("autocommands_loaded") && has("autocmd")
|
||||
let autocommands_loaded = 1
|
||||
|
||||
" Auto remove all trailing whitespace on :w
|
||||
autocmd BufWritePre * :%s/\s\+$//e
|
||||
au BufWritePre * :%s/\s\+$//e
|
||||
|
||||
" Disables automatic commenting on newline
|
||||
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
|
||||
au FileType * setl formatoptions-=cro
|
||||
|
||||
" Runs a script that cleans out tex build files whenever I close out of a .tex file.
|
||||
autocmd VimLeave *.tex !texclear %
|
||||
au VimLeave *.tex !texclear %
|
||||
|
||||
autocmd BufWritePost ~/.Xresources,~/.Xdefaults !xrdb %
|
||||
au ColorScheme * call MyHighlights()
|
||||
au BufWritePost ~/.Xresources,~/.Xdefaults !xrdb %
|
||||
au InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif
|
||||
au TermOpen * setlocal nonumber norelativenumber
|
||||
au QuitPre * if empty(&buftype) | lclose | endif
|
||||
|
||||
au FocusLost,TabLeave * call PopOutOfInsertMode()
|
||||
|
||||
function! PopOutOfInsertMode()
|
||||
if v:insertmode
|
||||
feedkeys("\<C-\>\<C-n>")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
aug aug_cursor_line
|
||||
au!
|
||||
au InsertEnter * setlocal nocursorline
|
||||
au InsertLeave * setlocal cursorline
|
||||
aug END
|
||||
|
||||
aug skeletons
|
||||
autocmd BufNewFile *.py 0r ~/.config/nvim/templates/py.skeleton
|
||||
autocmd BufRead,BufNewFile *.foxdot 0r ~/.config/nvim/templates/foxdot.skeleton
|
||||
autocmd BufNewFile *.sh 0r ~/.config/nvim/templates/sh.skeleton
|
||||
aug END
|
||||
|
||||
aug terminal_stuff
|
||||
au TermOpen * setlocal nonumber norelativenumber
|
||||
aug END
|
||||
|
||||
augroup CloseLoclistWindowGroup
|
||||
autocmd!
|
||||
autocmd QuitPre * if empty(&buftype) | lclose | endif
|
||||
augroup END
|
||||
|
||||
autocmd FileType fzf set laststatus=0 noshowmode noruler
|
||||
\| autocmd BufLeave <buffer> set showmode ruler
|
||||
|
||||
aug fzf_setup
|
||||
au!
|
||||
au FileType fzf set laststatus=0 noruler
|
||||
\| au BufLeave <buffer> set ruler laststatus=2
|
||||
au TermOpen term://*FZF tnoremap <silent> <buffer> <esc> <c-c>
|
||||
aug END
|
||||
|
||||
autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80
|
||||
autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo
|
||||
|
||||
" Automatic syntax highlighting for files
|
||||
aug set_file_types
|
||||
au BufRead,BufNewFile *.md set filetype=markdown
|
||||
au BufRead,BufNewFile *.conf set filetype=dosini
|
||||
au BufRead,BufNewFile *.bash* set filetype=sh
|
||||
au BufRead,BufNewFile *.jsx set filetype=javascript.jsx
|
||||
au BufRead,BufNewFile *.ts set filetype=typescript
|
||||
au BufRead,BufNewFile *.tsx set filetype=typescript.tsx
|
||||
au BufRead,BufNewFile *.vue set filetype=vue
|
||||
au BufRead,BufNewFile man set textwidth=80
|
||||
au FileType json syntax match Comment +\/\/.\+$+
|
||||
aug END
|
||||
endif
|
||||
" }}}
|
||||
"Mappings {{{
|
||||
" Spell checking
|
||||
nnoremap <F6> :setlocal spell! spelllang=es<CR>
|
||||
nnoremap <F7> :setlocal spell! spelllang=en<CR>
|
||||
nnoremap <F8> :set nospell<CR>
|
||||
|
||||
" LaTeX
|
||||
nnoremap <F9> :w! \| !compiler <c-r>%<CR>
|
||||
"Normal {{{
|
||||
" LaTeX and friends
|
||||
nnoremap <F8> :w! \| !compiler <c-r>%<CR>
|
||||
|
||||
" Plug
|
||||
nnoremap <leader>pi :PlugInstall<CR>
|
||||
nnoremap <leader>pu :PlugUpdate<CR>
|
||||
nnoremap <leader>pU :PlugUpgrade<CR>
|
||||
nnoremap <leader>pc :PlugClean<CR>
|
||||
|
||||
" Neoformat
|
||||
nnoremap <leader>f :Neoformat<CR>
|
||||
vnoremap <leader>f :Neoformat<CR>
|
||||
|
||||
" Use urlview to choose and open a url:
|
||||
noremap <leader>u :w<Home>silent <End> !urlscan<CR>
|
||||
noremap ,, :w<Home>silent <End> !urlscan<CR>
|
||||
|
||||
" Visual mode pressing * or # searches for the current selection
|
||||
vnoremap <silent> * :<C-u>call VisualSelection('', '')<CR>/<C-R>=@/<CR><CR>
|
||||
vnoremap <silent> # :<C-u>call VisualSelection('', '')<CR>?<C-R>=@/<CR><CR>
|
||||
nnoremap <leader>u :w<Home>silent <End> !urlscan<CR>
|
||||
|
||||
" Super quick search and replace
|
||||
nnoremap <Space>+ :'{,'}s/\<<C-r>=expand("<cword>")<CR>\>/
|
||||
nnoremap <Space>¿ :%s/\<<C-r>=expand("<cword>")<CR>\>/
|
||||
nnoremap <leader>+ :'{,'}s/\<<C-r>=expand("<cword>")<CR>\>/
|
||||
nnoremap <leader>¿ :%s/\<<C-r>=expand("<cword>")<CR>\>/
|
||||
|
||||
" Learn vim keys the hard way
|
||||
nnoremap <silent> <Left> :vertical resize -2<CR>
|
||||
|
@ -406,21 +395,9 @@ nnoremap <leader>v :vsplit<CR>
|
|||
nnoremap <leader>nv :vnew<CR>
|
||||
nnoremap <leader>ns :new<CR>
|
||||
|
||||
" Ensure that ctrl+u in insert mode can be reversed
|
||||
" http://vim.wikia.com/wiki/Recover_from_accidental_Ctrl-U
|
||||
inoremap <c-u> <c-g>u<c-u>
|
||||
inoremap <c-w> <c-g>u<c-w>
|
||||
|
||||
" My vim wants to enter all the time, enter all the time
|
||||
nnoremap <silent> <CR> i<CR><ESC>
|
||||
|
||||
" Fix indentation
|
||||
nnoremap <leader>i mzgg=G`z<CR>
|
||||
|
||||
" Deedee
|
||||
nnoremap - dd<CR>p
|
||||
inoremap <c-d> <esc>ddi
|
||||
|
||||
" Quote words under cursor
|
||||
nnoremap <leader>" viW<esc>a"<esc>gvo<esc>i"<esc>gvo<esc>3l
|
||||
nnoremap <leader>' viW<esc>a'<esc>gvo<esc>i'<esc>gvo<esc>3l
|
||||
|
@ -428,8 +405,6 @@ nnoremap <leader>' viW<esc>a'<esc>gvo<esc>i'<esc>gvo<esc>3l
|
|||
" Move a line of text using Shift+[jk]
|
||||
nnoremap <S-j> mz:m+<cr>`z
|
||||
nnoremap <S-k> mz:m-2<cr>`z
|
||||
vnoremap <S-j> :m'>+<cr>`<my`>mzgv`yo`z
|
||||
vnoremap <S-k> :m'<-2<cr>`>my`<mzgv`yo`z
|
||||
|
||||
" Unhighlight search terms
|
||||
nnoremap <silent> <leader><space> :noh<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
||||
|
@ -441,48 +416,76 @@ map q <nop>
|
|||
" j = gj :: k = gk while preserving numbered jumps ie. 12j or 30k
|
||||
nnoremap <buffer><silent><expr>j v:count ? 'j' : 'gj'
|
||||
nnoremap <buffer><silent><expr>k v:count ? 'k' : 'gk'
|
||||
vnoremap <buffer><silent><expr>j v:count ? 'j' : 'gj'
|
||||
vnoremap <buffer><silent><expr>k v:count ? 'k' : 'gk'
|
||||
|
||||
" Line movements
|
||||
noremap <silent> <Home> g<Home>
|
||||
noremap <silent> <End> g<End>
|
||||
inoremap <silent> <Home> <C-o>g<Home>
|
||||
inoremap <silent> <End> <C-o>g<End>
|
||||
nnoremap H 0
|
||||
nnoremap L $
|
||||
vnoremap H 0
|
||||
vnoremap L $
|
||||
noremap Y 0y$
|
||||
noremap <leader>y y$
|
||||
|
||||
" Center screen when jumping and moving
|
||||
nnoremap <silent> n :norm! nzz<CR>
|
||||
nnoremap <silent> N :norm! Nzz<CR>
|
||||
vnoremap <silent> n :norm! nzz<CR>
|
||||
vnoremap <silent> N :norm! Nzz<CR>
|
||||
nnoremap Y 0y$
|
||||
nnoremap <leader>y y$
|
||||
|
||||
" Alt to switch windows
|
||||
nnoremap <M-j> <C-W><C-J>
|
||||
nnoremap <M-k> <C-W><C-K>
|
||||
nnoremap <M-l> <C-W><C-L>
|
||||
nnoremap <M-h> <C-W><C-H>
|
||||
|
||||
" Tab movement
|
||||
nnoremap tn :tabnew<cr>
|
||||
nnoremap tk :tabnext<cr>
|
||||
nnoremap tj :tabprev<cr>
|
||||
nnoremap th :tabfirst<cr>
|
||||
nnoremap tl :tablast<cr>
|
||||
|
||||
|
||||
"}}}
|
||||
"Insert {{{
|
||||
" Ensure that ctrl+u in insert mode can be reversed
|
||||
" http://vim.wikia.com/wiki/Recover_from_accidental_Ctrl-U
|
||||
inoremap <c-u> <c-g>u<c-u>
|
||||
inoremap <c-w> <c-g>u<c-w>
|
||||
|
||||
" Deedee
|
||||
inoremap <c-d> <esc>ddi
|
||||
|
||||
" Line movements
|
||||
inoremap <silent> <Home> <C-o>g<Home>
|
||||
inoremap <silent> <End> <C-o>g<End>
|
||||
|
||||
" Alt to switch windows
|
||||
inoremap <A-h> <Esc><C-w>h
|
||||
inoremap <A-j> <Esc><C-w>j
|
||||
inoremap <A-k> <Esc><C-w>k
|
||||
inoremap <A-l> <Esc><C-w>l
|
||||
"}}}
|
||||
"Visual {{{
|
||||
" Visual mode pressing * or # searches for the current selection
|
||||
vnoremap <silent> # :<C-u>call VisualSelection('', '')<CR>?<C-R>=@/<CR><CR>
|
||||
|
||||
" Use <TAB> to select the popup menu:
|
||||
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
||||
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
||||
" Move a line of text using Shift+[jk]
|
||||
vnoremap <S-j> :m'>+<cr>`<my`>mzgv`yo`z
|
||||
vnoremap <S-k> :m'<-2<cr>`>my`<mzgv`yo`z
|
||||
|
||||
" j = gj :: k = gk while preserving numbered jumps ie. 12j or 30k
|
||||
vnoremap <buffer><silent><expr>j v:count ? 'j' : 'gj'
|
||||
vnoremap <buffer><silent><expr>k v:count ? 'k' : 'gk'
|
||||
|
||||
" Line movements
|
||||
vnoremap $ $h
|
||||
|
||||
" Delete current visual selection and dump in black hole buffer before pasting
|
||||
" Used when you want to paste over something without it getting copied to
|
||||
" Vim's default buffer
|
||||
vnoremap <leader>p "_dP
|
||||
"}}}
|
||||
"Terminal {{{
|
||||
" Terminal movement
|
||||
tnoremap <Esc> <C-\><C-n>
|
||||
tnoremap <M-h> <C-\><C-n><C-w>h
|
||||
tnoremap <M-j> <C-\><C-n><C-w>j
|
||||
tnoremap <M-k> <C-\><C-n><C-w>k
|
||||
tnoremap <M-l> <C-\><C-n><C-w>l
|
||||
|
||||
"}}}
|
||||
"Command {{{
|
||||
" Shift butterfinger
|
||||
:command! WQ wq
|
||||
:command! Wq wq
|
||||
|
@ -493,6 +496,7 @@ tnoremap <M-l> <C-\><C-n><C-w>l
|
|||
:command! Q q
|
||||
:command! Qa qa
|
||||
:command! QA qa
|
||||
"}}}
|
||||
" }}}
|
||||
" Stuff i'll probably use if i remember to {{{
|
||||
" Don't close window when deleting a buffer
|
||||
|
@ -587,5 +591,4 @@ nnoremap <Leader>fw
|
|||
\ unlet b:jump <Bar>
|
||||
\ endif <CR><Paste>
|
||||
" }}}
|
||||
|
||||
" vim:foldmethod=marker:foldlevel=0
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: Arduino
|
||||
" Maintainer: Johannes Hoff <johannes@johanneshoff.com>
|
||||
" Last Change: 17 May 2015
|
||||
" License: VIM license (:help license, replace vim by arduino.vim)
|
||||
|
||||
" Syntax highlighting like in the Arduino IDE
|
||||
" Automatically generated by the script available at
|
||||
" https://bitbucket.org/johannes/arduino-vim-syntax
|
||||
" Using keywords from <arduino>/build/shared/lib/keywords.txt
|
||||
" From version: ARDUINO 1.6.4 - 2015.05.06
|
||||
|
||||
" Thanks to Rik, Erik Nomitch, Adam Obeng, Graeme Cross and Niall Parker
|
||||
" for helpful feedback!
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read the C syntax to start with
|
||||
if version < 600
|
||||
so <sfile>:p:h/cpp.vim
|
||||
else
|
||||
runtime! syntax/cpp.vim
|
||||
endif
|
||||
|
||||
syn keyword arduinoConstant BIN CHANGE DEC DEFAULT EXTERNAL FALLING HALF_PI HEX
|
||||
syn keyword arduinoConstant HIGH INPUT INPUT_PULLUP INTERNAL INTERNAL1V1
|
||||
syn keyword arduinoConstant INTERNAL2V56 LOW LSBFIRST MSBFIRST OCT OUTPUT PI
|
||||
syn keyword arduinoConstant RISING TWO_PI
|
||||
|
||||
syn keyword arduinoFunc analogRead analogReference analogWrite
|
||||
syn keyword arduinoFunc attachInterrupt bit bitClear bitRead bitSet
|
||||
syn keyword arduinoFunc bitWrite delay delayMicroseconds detachInterrupt
|
||||
syn keyword arduinoFunc digitalRead digitalWrite highByte interrupts
|
||||
syn keyword arduinoFunc lowByte micros millis noInterrupts noTone pinMode
|
||||
syn keyword arduinoFunc pulseIn shiftIn shiftOut tone yield
|
||||
|
||||
syn keyword arduinoMethod available availableForWrite begin charAt compareTo
|
||||
syn keyword arduinoMethod concat end endsWith equals equalsIgnoreCase find
|
||||
syn keyword arduinoMethod findUntil flush getBytes indexOf lastIndexOf length
|
||||
syn keyword arduinoMethod loop parseFloat parseInt peek print println read
|
||||
syn keyword arduinoMethod readBytes readBytesUntil readString readStringUntil
|
||||
syn keyword arduinoMethod replace setCharAt setTimeout setup startsWith
|
||||
syn keyword arduinoMethod substring toCharArray toInt toLowerCase toUpperCase
|
||||
syn keyword arduinoMethod trim word
|
||||
|
||||
syn keyword arduinoModule Keyboard Mouse Serial Serial1 Serial2 Serial3
|
||||
syn keyword arduinoModule SerialUSB
|
||||
|
||||
syn keyword arduinoStdFunc abs accept acos asin atan atan2 ceil click constrain
|
||||
syn keyword arduinoStdFunc cos degrees exp floor isPressed log map max min
|
||||
syn keyword arduinoStdFunc move pow press radians random randomSeed release
|
||||
syn keyword arduinoStdFunc releaseAll round sin sq sqrt tan
|
||||
|
||||
syn keyword arduinoType boolean byte null String word
|
||||
|
||||
hi def link arduinoType Type
|
||||
hi def link arduinoConstant Constant
|
||||
hi def link arduinoStdFunc Function
|
||||
hi def link arduinoFunc Function
|
||||
hi def link arduinoMethod Function
|
||||
hi def link arduinoModule Identifier
|
|
@ -1,489 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Nov 18
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
||||
|
||||
" A bunch of useful C keywords
|
||||
syn keyword cStatement goto break return continue asm
|
||||
syn keyword cLabel case default
|
||||
syn keyword cConditional if else switch
|
||||
syn keyword cRepeat while for do
|
||||
|
||||
syn keyword cTodo contained TODO FIXME XXX
|
||||
|
||||
" It's easy to accidentally add a space after a backslash that was intended
|
||||
" for line continuation. Some compilers allow it, which makes it
|
||||
" unpredictable and should be avoided.
|
||||
syn match cBadContinuation contained "\\\s\+$"
|
||||
|
||||
" cCommentGroup allows adding matches for special things in comments
|
||||
syn cluster cCommentGroup contains=cTodo,cBadContinuation
|
||||
|
||||
" String and Character constants
|
||||
" Highlight special characters (those which have a backslash) differently
|
||||
syn match cSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||
if !exists("c_no_utf")
|
||||
syn match cSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
|
||||
endif
|
||||
|
||||
if !exists("c_no_cformat")
|
||||
" Highlight % items in strings.
|
||||
if !exists("c_no_c99") " ISO C99
|
||||
syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
else
|
||||
syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
endif
|
||||
syn match cFormat display "%%" contained
|
||||
endif
|
||||
|
||||
" cCppString: same as cString, but ends at end of line
|
||||
if s:ft ==# "cpp" && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
|
||||
" ISO C++11
|
||||
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
|
||||
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
|
||||
elseif s:ft ==# "c" && !exists("c_no_c11") && !exists("c_no_cformat")
|
||||
" ISO C99
|
||||
syn region cString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
|
||||
syn region cCppString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
|
||||
else
|
||||
" older C or C++
|
||||
syn match cFormat display "%%" contained
|
||||
syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
|
||||
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
|
||||
endif
|
||||
|
||||
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
|
||||
|
||||
syn cluster cStringGroup contains=cCppString,cCppSkip
|
||||
|
||||
syn match cCharacter "L\='[^\\]'"
|
||||
syn match cCharacter "L'[^']*'" contains=cSpecial
|
||||
if exists("c_gnu")
|
||||
syn match cSpecialError "L\='\\[^'\"?\\abefnrtv]'"
|
||||
syn match cSpecialCharacter "L\='\\['\"?\\abefnrtv]'"
|
||||
else
|
||||
syn match cSpecialError "L\='\\[^'\"?\\abfnrtv]'"
|
||||
syn match cSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
|
||||
endif
|
||||
syn match cSpecialCharacter display "L\='\\\o\{1,3}'"
|
||||
syn match cSpecialCharacter display "'\\x\x\{1,2}'"
|
||||
syn match cSpecialCharacter display "L'\\x\x\+'"
|
||||
|
||||
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11"))
|
||||
" ISO C11 or ISO C++ 11
|
||||
if exists("c_no_cformat")
|
||||
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
|
||||
else
|
||||
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
|
||||
endif
|
||||
syn match cCharacter "[Uu]'[^\\]'"
|
||||
syn match cCharacter "[Uu]'[^']*'" contains=cSpecial
|
||||
if exists("c_gnu")
|
||||
syn match cSpecialError "[Uu]'\\[^'\"?\\abefnrtv]'"
|
||||
syn match cSpecialCharacter "[Uu]'\\['\"?\\abefnrtv]'"
|
||||
else
|
||||
syn match cSpecialError "[Uu]'\\[^'\"?\\abfnrtv]'"
|
||||
syn match cSpecialCharacter "[Uu]'\\['\"?\\abfnrtv]'"
|
||||
endif
|
||||
syn match cSpecialCharacter display "[Uu]'\\\o\{1,3}'"
|
||||
syn match cSpecialCharacter display "[Uu]'\\x\x\+'"
|
||||
endif
|
||||
|
||||
"when wanted, highlight trailing white space
|
||||
if exists("c_space_errors")
|
||||
if !exists("c_no_trail_space_error")
|
||||
syn match cSpaceError display excludenl "\s\+$"
|
||||
endif
|
||||
if !exists("c_no_tab_space_error")
|
||||
syn match cSpaceError display " \+\t"me=e-1
|
||||
endif
|
||||
endif
|
||||
|
||||
" This should be before cErrInParen to avoid problems with #define ({ xxx })
|
||||
if exists("c_curly_error")
|
||||
syn match cCurlyError "}"
|
||||
syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell fold
|
||||
else
|
||||
syn region cBlock start="{" end="}" transparent fold
|
||||
endif
|
||||
|
||||
" Catch errors caused by wrong parenthesis and brackets.
|
||||
" Also accept <% for {, %> for }, <: for [ and :> for ] (C99)
|
||||
" But avoid matching <::.
|
||||
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
|
||||
if exists("c_no_curly_error")
|
||||
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
|
||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "^^<%\|^%>"
|
||||
else
|
||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
|
||||
endif
|
||||
elseif exists("c_no_bracket_error")
|
||||
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
|
||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "<%\|%>"
|
||||
else
|
||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "[{}]\|<%\|%>"
|
||||
endif
|
||||
else
|
||||
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
|
||||
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
|
||||
syn match cParenError display "[\])]"
|
||||
syn match cErrInParen display contained "<%\|%>"
|
||||
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
|
||||
else
|
||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
|
||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
|
||||
syn match cParenError display "[\])]"
|
||||
syn match cErrInParen display contained "[\]{}]\|<%\|%>"
|
||||
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
|
||||
endif
|
||||
" cCppBracket: same as cParen but ends at end-of-line; used in cDefine
|
||||
syn region cCppBracket transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell
|
||||
syn match cErrInBracket display contained "[);{}]\|<%\|%>"
|
||||
endif
|
||||
|
||||
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||
syn region cBadBlock keepend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold
|
||||
endif
|
||||
|
||||
"integer number, or floating point number without a dot and with "f".
|
||||
syn case ignore
|
||||
syn match cNumbers display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal
|
||||
" Same, but without octal error (for comments)
|
||||
syn match cNumbersCom display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal
|
||||
syn match cNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
"hex number
|
||||
syn match cNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
" Flag the first zero of an octal number as something special
|
||||
syn match cOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
|
||||
syn match cOctalZero display contained "\<0"
|
||||
syn match cFloat display contained "\d\+f"
|
||||
"floating point number, with dot, optional exponent
|
||||
syn match cFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
|
||||
"floating point number, starting with a dot, optional exponent
|
||||
syn match cFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"floating point number, without dot, with exponent
|
||||
syn match cFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
if !exists("c_no_c99")
|
||||
"hexadecimal floating point number, optional leading digits, with dot, with exponent
|
||||
syn match cFloat display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
|
||||
"hexadecimal floating point number, with leading digits, optional dot, with exponent
|
||||
syn match cFloat display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"
|
||||
endif
|
||||
|
||||
" flag an octal number with wrong digits
|
||||
syn match cOctalError display contained "0\o*[89]\d*"
|
||||
syn case match
|
||||
|
||||
if exists("c_comment_strings")
|
||||
" A comment can contain cString, cCharacter and cNumber.
|
||||
" But a "*/" inside a cString in a cComment DOES end the comment! So we
|
||||
" need to use a special type of cString: cCommentString, which also ends on
|
||||
" "*/", and sees a "*" at the start of the line as comment again.
|
||||
" Unfortunately this doesn't very well work for // type of comments :-(
|
||||
syn match cCommentSkip contained "^\s*\*\($\|\s\+\)"
|
||||
syn region cCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip
|
||||
syn region cComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial
|
||||
syn region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError,@Spell
|
||||
if exists("c_no_comment_fold")
|
||||
" Use "extend" here to have preprocessor lines not terminate halfway a
|
||||
" comment.
|
||||
syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell extend
|
||||
else
|
||||
syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell fold extend
|
||||
endif
|
||||
else
|
||||
syn region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cSpaceError,@Spell
|
||||
if exists("c_no_comment_fold")
|
||||
syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,@Spell extend
|
||||
else
|
||||
syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,@Spell fold extend
|
||||
endif
|
||||
endif
|
||||
" keep a // comment separately, it terminates a preproc. conditional
|
||||
syn match cCommentError display "\*/"
|
||||
syn match cCommentStartError display "/\*"me=e-1 contained
|
||||
|
||||
syn keyword cOperator sizeof
|
||||
if exists("c_gnu")
|
||||
syn keyword cStatement __asm__
|
||||
syn keyword cOperator typeof __real__ __imag__
|
||||
endif
|
||||
syn keyword cType int long short char void
|
||||
syn keyword cType signed unsigned float double
|
||||
if !exists("c_no_ansi") || exists("c_ansi_typedefs")
|
||||
syn keyword cType size_t ssize_t off_t wchar_t ptrdiff_t sig_atomic_t fpos_t
|
||||
syn keyword cType clock_t time_t va_list jmp_buf FILE DIR div_t ldiv_t
|
||||
syn keyword cType mbstate_t wctrans_t wint_t wctype_t
|
||||
endif
|
||||
if !exists("c_no_c99") " ISO C99
|
||||
syn keyword cType _Bool bool _Complex complex _Imaginary imaginary
|
||||
syn keyword cType int8_t int16_t int32_t int64_t
|
||||
syn keyword cType uint8_t uint16_t uint32_t uint64_t
|
||||
if !exists("c_no_bsd")
|
||||
" These are BSD specific.
|
||||
syn keyword cType u_int8_t u_int16_t u_int32_t u_int64_t
|
||||
endif
|
||||
syn keyword cType int_least8_t int_least16_t int_least32_t int_least64_t
|
||||
syn keyword cType uint_least8_t uint_least16_t uint_least32_t uint_least64_t
|
||||
syn keyword cType int_fast8_t int_fast16_t int_fast32_t int_fast64_t
|
||||
syn keyword cType uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t
|
||||
syn keyword cType intptr_t uintptr_t
|
||||
syn keyword cType intmax_t uintmax_t
|
||||
endif
|
||||
if exists("c_gnu")
|
||||
syn keyword cType __label__ __complex__ __volatile__
|
||||
endif
|
||||
|
||||
syn keyword cStructure struct union enum typedef
|
||||
syn keyword cStorageClass static register auto volatile extern const
|
||||
if exists("c_gnu")
|
||||
syn keyword cStorageClass inline __attribute__
|
||||
endif
|
||||
if !exists("c_no_c99") && s:ft !=# 'cpp'
|
||||
syn keyword cStorageClass inline restrict
|
||||
endif
|
||||
if !exists("c_no_c11")
|
||||
syn keyword cStorageClass _Alignas alignas
|
||||
syn keyword cOperator _Alignof alignof
|
||||
syn keyword cStorageClass _Atomic
|
||||
syn keyword cOperator _Generic
|
||||
syn keyword cStorageClass _Noreturn noreturn
|
||||
syn keyword cOperator _Static_assert static_assert
|
||||
syn keyword cStorageClass _Thread_local thread_local
|
||||
syn keyword cType char16_t char32_t
|
||||
endif
|
||||
|
||||
if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
|
||||
if exists("c_gnu")
|
||||
syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ __func__
|
||||
endif
|
||||
syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__
|
||||
syn keyword cConstant __STDC_VERSION__
|
||||
syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX
|
||||
syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
|
||||
syn keyword cConstant CHAR_MIN INT_MIN LONG_MIN SHRT_MIN
|
||||
syn keyword cConstant CHAR_MAX INT_MAX LONG_MAX SHRT_MAX
|
||||
syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN
|
||||
syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX
|
||||
if !exists("c_no_c99")
|
||||
syn keyword cConstant __func__ __VA_ARGS__
|
||||
syn keyword cConstant LLONG_MIN LLONG_MAX ULLONG_MAX
|
||||
syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN
|
||||
syn keyword cConstant INT8_MAX INT16_MAX INT32_MAX INT64_MAX
|
||||
syn keyword cConstant UINT8_MAX UINT16_MAX UINT32_MAX UINT64_MAX
|
||||
syn keyword cConstant INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN
|
||||
syn keyword cConstant INT_LEAST8_MAX INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX
|
||||
syn keyword cConstant UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX UINT_LEAST64_MAX
|
||||
syn keyword cConstant INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN
|
||||
syn keyword cConstant INT_FAST8_MAX INT_FAST16_MAX INT_FAST32_MAX INT_FAST64_MAX
|
||||
syn keyword cConstant UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX
|
||||
syn keyword cConstant INTPTR_MIN INTPTR_MAX UINTPTR_MAX
|
||||
syn keyword cConstant INTMAX_MIN INTMAX_MAX UINTMAX_MAX
|
||||
syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
|
||||
syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
|
||||
endif
|
||||
syn keyword cConstant FLT_RADIX FLT_ROUNDS
|
||||
syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON
|
||||
syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON
|
||||
syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON
|
||||
syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP
|
||||
syn keyword cConstant FLT_MIN_10_EXP FLT_MAX_10_EXP
|
||||
syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP
|
||||
syn keyword cConstant DBL_MIN_10_EXP DBL_MAX_10_EXP
|
||||
syn keyword cConstant LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
|
||||
syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP
|
||||
syn keyword cConstant HUGE_VAL CLOCKS_PER_SEC NULL
|
||||
syn keyword cConstant LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
|
||||
syn keyword cConstant LC_NUMERIC LC_TIME
|
||||
syn keyword cConstant SIG_DFL SIG_ERR SIG_IGN
|
||||
syn keyword cConstant SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
|
||||
" Add POSIX signals as well...
|
||||
syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP
|
||||
syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
|
||||
syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU
|
||||
syn keyword cConstant SIGUSR1 SIGUSR2
|
||||
syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF
|
||||
syn keyword cConstant FOPEN_MAX FILENAME_MAX L_tmpnam
|
||||
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET
|
||||
syn keyword cConstant TMP_MAX stderr stdin stdout
|
||||
syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX
|
||||
" POSIX 2001
|
||||
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
|
||||
syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
|
||||
" non-POSIX signals
|
||||
syn keyword cConstant SIGWINCH SIGINFO
|
||||
" Add POSIX errors as well
|
||||
syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
|
||||
syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
|
||||
syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR
|
||||
syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV
|
||||
syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS
|
||||
syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM
|
||||
syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV
|
||||
" math.h
|
||||
syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4
|
||||
syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
|
||||
endif
|
||||
if !exists("c_no_c99") " ISO C99
|
||||
syn keyword cConstant true false
|
||||
endif
|
||||
|
||||
" Accept %: for # (C99)
|
||||
syn region cPreCondit start="^\s*\zs\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
|
||||
syn match cPreConditMatch display "^\s*\zs\(%:\|#\)\s*\(else\|endif\)\>"
|
||||
if !exists("c_no_if0")
|
||||
syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
|
||||
syn region cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
|
||||
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
|
||||
else
|
||||
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
|
||||
endif
|
||||
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*\(else\|elif\)" end="^\s*\zs\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
|
||||
syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
|
||||
syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\zs\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region cCppInElse contained start="^\s*\zs\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
|
||||
else
|
||||
syn region cCppInElse contained start="^\s*\zs\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
|
||||
endif
|
||||
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\zs\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\zs\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
|
||||
syn region cCppOutSkip contained start="^\s*\zs\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
|
||||
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\zs\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
|
||||
endif
|
||||
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match cIncluded display contained "<[^>]*>"
|
||||
syn match cInclude display "^\s*\zs\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
|
||||
"syn match cLineSkip "\\$"
|
||||
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock
|
||||
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
|
||||
" Highlight User Labels
|
||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell,@cStringGroup
|
||||
endif
|
||||
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||
syn cluster cLabelGroup contains=cUserLabel
|
||||
syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
|
||||
syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
|
||||
if s:ft ==# 'cpp'
|
||||
syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
|
||||
syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
|
||||
else
|
||||
syn match cUserCont display "^\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
|
||||
syn match cUserCont display ";\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
|
||||
endif
|
||||
|
||||
syn match cUserLabel display "\I\i*" contained
|
||||
|
||||
" Avoid recognizing most bitfields as labels
|
||||
syn match cBitField display "^\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
|
||||
syn match cBitField display ";\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
|
||||
|
||||
if exists("c_minlines")
|
||||
let b:c_minlines = c_minlines
|
||||
else
|
||||
if !exists("c_no_if0")
|
||||
let b:c_minlines = 50 " #if 0 constructs can be long
|
||||
else
|
||||
let b:c_minlines = 15 " mostly for () constructs
|
||||
endif
|
||||
endif
|
||||
if exists("c_curly_error")
|
||||
syn sync fromstart
|
||||
else
|
||||
exec "syn sync ccomment cComment minlines=" . b:c_minlines
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link cFormat cSpecial
|
||||
hi def link cCppString cString
|
||||
hi def link cCommentL cComment
|
||||
hi def link cCommentStart cComment
|
||||
hi def link cLabel Label
|
||||
hi def link cUserLabel Label
|
||||
hi def link cConditional Conditional
|
||||
hi def link cRepeat Repeat
|
||||
hi def link cCharacter Character
|
||||
hi def link cSpecialCharacter cSpecial
|
||||
hi def link cNumber Number
|
||||
hi def link cOctal Number
|
||||
hi def link cOctalZero PreProc " link this to Error if you want
|
||||
hi def link cFloat Float
|
||||
hi def link cOctalError cError
|
||||
hi def link cParenError cError
|
||||
hi def link cErrInParen cError
|
||||
hi def link cErrInBracket cError
|
||||
hi def link cCommentError cError
|
||||
hi def link cCommentStartError cError
|
||||
hi def link cSpaceError cError
|
||||
hi def link cSpecialError cError
|
||||
hi def link cCurlyError cError
|
||||
hi def link cOperator Operator
|
||||
hi def link cStructure Structure
|
||||
hi def link cStorageClass StorageClass
|
||||
hi def link cInclude Include
|
||||
hi def link cPreProc PreProc
|
||||
hi def link cDefine Macro
|
||||
hi def link cIncluded cString
|
||||
hi def link cError Error
|
||||
hi def link cStatement Statement
|
||||
hi def link cCppInWrapper cCppOutWrapper
|
||||
hi def link cCppOutWrapper cPreCondit
|
||||
hi def link cPreConditMatch cPreCondit
|
||||
hi def link cPreCondit PreCondit
|
||||
hi def link cType Type
|
||||
hi def link cConstant Constant
|
||||
hi def link cCommentString cString
|
||||
hi def link cComment2String cString
|
||||
hi def link cCommentSkip cComment
|
||||
hi def link cString String
|
||||
hi def link cComment Comment
|
||||
hi def link cSpecial SpecialChar
|
||||
hi def link cTodo Todo
|
||||
hi def link cBadContinuation Error
|
||||
hi def link cCppOutSkip cCppOutIf2
|
||||
hi def link cCppInElse2 cCppOutIf2
|
||||
hi def link cCppOutIf2 cCppOut
|
||||
hi def link cCppOut Comment
|
||||
|
||||
let b:current_syntax = "c"
|
||||
|
||||
unlet s:ft
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
|
@ -1,76 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: C++
|
||||
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
|
||||
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read the C syntax to start with
|
||||
runtime! syntax/c.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
" C++ extensions
|
||||
syn keyword cppStatement new delete this friend using
|
||||
syn keyword cppAccess public protected private
|
||||
syn keyword cppModifier inline virtual explicit export
|
||||
syn keyword cppType bool wchar_t
|
||||
syn keyword cppExceptions throw try catch
|
||||
syn keyword cppOperator operator typeid
|
||||
syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq
|
||||
syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1
|
||||
syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$"
|
||||
syn keyword cppStorageClass mutable
|
||||
syn keyword cppStructure class typename template namespace
|
||||
syn keyword cppBoolean true false
|
||||
syn keyword cppConstant __cplusplus
|
||||
|
||||
" C++ 11 extensions
|
||||
if !exists("cpp_no_cpp11")
|
||||
syn keyword cppModifier override final
|
||||
syn keyword cppType nullptr_t auto
|
||||
syn keyword cppExceptions noexcept
|
||||
syn keyword cppStorageClass constexpr decltype thread_local
|
||||
syn keyword cppConstant nullptr
|
||||
syn keyword cppConstant ATOMIC_FLAG_INIT ATOMIC_VAR_INIT
|
||||
syn keyword cppConstant ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE
|
||||
syn keyword cppConstant ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE
|
||||
syn keyword cppConstant ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE
|
||||
syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE
|
||||
syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE
|
||||
syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
|
||||
endif
|
||||
|
||||
" C++ 14 extensions
|
||||
if !exists("cpp_no_cpp14")
|
||||
syn case ignore
|
||||
syn match cppNumber display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
syn match cppNumber display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>" contains=cFloat
|
||||
syn match cppNumber display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
syn case match
|
||||
endif
|
||||
|
||||
" The minimum and maximum operators in GNU C++
|
||||
syn match cppMinMax "[<>]?"
|
||||
|
||||
" Default highlighting
|
||||
hi def link cppAccess cppStatement
|
||||
hi def link cppCast cppStatement
|
||||
hi def link cppExceptions Exception
|
||||
hi def link cppOperator Operator
|
||||
hi def link cppStatement Statement
|
||||
hi def link cppModifier Type
|
||||
hi def link cppType Type
|
||||
hi def link cppStorageClass StorageClass
|
||||
hi def link cppStructure Structure
|
||||
hi def link cppBoolean Boolean
|
||||
hi def link cppConstant Constant
|
||||
hi def link cppRawStringDelimiter Delimiter
|
||||
hi def link cppRawString String
|
||||
hi def link cppNumber Number
|
||||
|
||||
let b:current_syntax = "cpp"
|
||||
|
||||
" vim: ts=8
|
|
@ -1,78 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 May 21
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn case match
|
||||
syn sync minlines=50
|
||||
|
||||
syn include @gitDiff syntax/diff.vim
|
||||
|
||||
syn region gitHead start=/\%^/ end=/^$/
|
||||
syn region gitHead start=/\%(^commit\%( \x\{40\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/
|
||||
|
||||
" For git reflog and git show ...^{tree}, avoid sync issues
|
||||
syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
|
||||
syn match gitHead /^\x\{40\} \x\{40}\t.*/
|
||||
|
||||
syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold
|
||||
syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff
|
||||
|
||||
syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
|
||||
syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
|
||||
syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge
|
||||
syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge
|
||||
|
||||
syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
|
||||
syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
|
||||
syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
|
||||
syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
|
||||
syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
|
||||
|
||||
syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
|
||||
syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
|
||||
syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity
|
||||
|
||||
syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
|
||||
syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained
|
||||
syn match gitDate /\<\d\+ \l\+ ago\>/ contained
|
||||
syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite
|
||||
syn match gitStage /\<\d\t\@=/ contained
|
||||
syn match gitReference /\S\+\S\@!/ contained
|
||||
syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage,gitHash skipwhite
|
||||
syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
|
||||
syn match gitHashAbbrev /\<\x\{4,40\}\>/ contained nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite
|
||||
|
||||
syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
|
||||
syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
|
||||
|
||||
syn match gitNotesHeader /^Notes:\ze\n /
|
||||
|
||||
hi def link gitDateHeader gitIdentityHeader
|
||||
hi def link gitIdentityHeader gitIdentityKeyword
|
||||
hi def link gitIdentityKeyword Label
|
||||
hi def link gitNotesHeader gitKeyword
|
||||
hi def link gitReflogHeader gitKeyword
|
||||
hi def link gitKeyword Keyword
|
||||
hi def link gitIdentity String
|
||||
hi def link gitEmailDelimiter Delimiter
|
||||
hi def link gitEmail Special
|
||||
hi def link gitDate Number
|
||||
hi def link gitMode Number
|
||||
hi def link gitHashAbbrev gitHash
|
||||
hi def link gitHash Identifier
|
||||
hi def link gitReflogMiddle gitReference
|
||||
hi def link gitReference Function
|
||||
hi def link gitStage gitType
|
||||
hi def link gitType Type
|
||||
hi def link gitDiffAdded diffAdded
|
||||
hi def link gitDiffRemoved diffRemoved
|
||||
|
||||
let b:current_syntax = "git"
|
|
@ -1,84 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: *.git/COMMIT_EDITMSG
|
||||
" Last Change: 2013 May 30
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn case match
|
||||
syn sync minlines=50
|
||||
|
||||
if has("spell")
|
||||
syn spell toplevel
|
||||
endif
|
||||
|
||||
syn include @gitcommitDiff syntax/diff.vim
|
||||
syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold contains=@gitcommitDiff
|
||||
|
||||
syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl
|
||||
syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
|
||||
syn match gitcommitOverflow ".*" contained contains=@Spell
|
||||
syn match gitcommitBlank "^[^#].*" contained contains=@Spell
|
||||
syn match gitcommitComment "^#.*"
|
||||
syn match gitcommitHead "^\%(# .*\n\)\+#$" contained transparent
|
||||
syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
|
||||
syn match gitcommitOnBranch "\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
|
||||
syn match gitcommitBranch "[^ ']\+" contained
|
||||
syn match gitcommitNoBranch "\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment
|
||||
syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment
|
||||
syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^# \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
|
||||
syn match gitcommitNoChanges "\%(^# \)\@<=No changes$" contained containedin=gitcommitComment
|
||||
|
||||
syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
|
||||
syn match gitcommitUntrackedFile "\t\@<=.*" contained
|
||||
|
||||
syn region gitcommitDiscarded start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
|
||||
syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
|
||||
syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
|
||||
|
||||
|
||||
syn match gitcommitDiscardedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
|
||||
syn match gitcommitSelectedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
|
||||
syn match gitcommitUnmergedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
|
||||
syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
|
||||
syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
|
||||
syn match gitcommitUnmergedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
|
||||
syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile
|
||||
syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile
|
||||
syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitSelectedFile
|
||||
|
||||
syn match gitcommitWarning "\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl
|
||||
syn match gitcommitWarning "^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
|
||||
syn match gitcommitWarning "^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"
|
||||
|
||||
hi def link gitcommitSummary Keyword
|
||||
hi def link gitcommitComment Comment
|
||||
hi def link gitcommitUntracked gitcommitComment
|
||||
hi def link gitcommitDiscarded gitcommitComment
|
||||
hi def link gitcommitSelected gitcommitComment
|
||||
hi def link gitcommitUnmerged gitcommitComment
|
||||
hi def link gitcommitOnBranch Comment
|
||||
hi def link gitcommitBranch Special
|
||||
hi def link gitcommitNoBranch gitCommitBranch
|
||||
hi def link gitcommitDiscardedType gitcommitType
|
||||
hi def link gitcommitSelectedType gitcommitType
|
||||
hi def link gitcommitUnmergedType gitcommitType
|
||||
hi def link gitcommitType Type
|
||||
hi def link gitcommitNoChanges gitcommitHeader
|
||||
hi def link gitcommitHeader PreProc
|
||||
hi def link gitcommitUntrackedFile gitcommitFile
|
||||
hi def link gitcommitDiscardedFile gitcommitFile
|
||||
hi def link gitcommitSelectedFile gitcommitFile
|
||||
hi def link gitcommitUnmergedFile gitcommitFile
|
||||
hi def link gitcommitFile Constant
|
||||
hi def link gitcommitDiscardedArrow gitcommitArrow
|
||||
hi def link gitcommitSelectedArrow gitcommitArrow
|
||||
hi def link gitcommitUnmergedArrow gitcommitArrow
|
||||
hi def link gitcommitArrow gitcommitComment
|
||||
"hi def link gitcommitOverflow Error
|
||||
hi def link gitcommitBlank Error
|
||||
|
||||
let b:current_syntax = "gitcommit"
|
|
@ -1,38 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: git config file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: gitconfig, .gitconfig, *.git/config
|
||||
" Last Change: 2010 May 21
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
setlocal iskeyword+=-
|
||||
setlocal iskeyword-=_
|
||||
syn case ignore
|
||||
syn sync minlines=10
|
||||
|
||||
syn match gitconfigComment "[#;].*"
|
||||
syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
|
||||
syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
|
||||
syn match gitconfigVariable "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
|
||||
syn region gitconfigAssignment matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend
|
||||
syn keyword gitconfigBoolean true false yes no contained
|
||||
syn match gitconfigNumber "\d\+" contained
|
||||
syn region gitconfigString matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError
|
||||
syn match gitconfigError +\\.+ contained
|
||||
syn match gitconfigEscape +\\[\\"ntb]+ contained
|
||||
syn match gitconfigEscape +\\$+ contained
|
||||
|
||||
hi def link gitconfigComment Comment
|
||||
hi def link gitconfigSection Keyword
|
||||
hi def link gitconfigVariable Identifier
|
||||
hi def link gitconfigBoolean Boolean
|
||||
hi def link gitconfigNumber Number
|
||||
hi def link gitconfigString String
|
||||
hi def link gitconfigDelim Delimiter
|
||||
hi def link gitconfigEscape Delimiter
|
||||
hi def link gitconfigError Error
|
||||
|
||||
let b:current_syntax = "gitconfig"
|
|
@ -1,483 +0,0 @@
|
|||
" For version 5.x: Clear all syntax items
|
||||
" For versions greater than 6.x: Quit when a syntax file was already loaded
|
||||
if v:version < 600
|
||||
syntax clear
|
||||
elseif exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
"
|
||||
" Commands
|
||||
"
|
||||
command! -buffer Python2Syntax let b:python_version_2 = 1 | let &syntax=&syntax
|
||||
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')
|
||||
call s:EnableByDefault('g:python_highlight_builtin_funcs_kwarg')
|
||||
|
||||
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')
|
||||
call s:EnableByDefault('g:python_highlight_class_vars')
|
||||
call s:EnableByDefault('g:python_highlight_operators')
|
||||
endif
|
||||
|
||||
"
|
||||
" Keywords
|
||||
"
|
||||
|
||||
syn keyword pythonStatement break continue del return pass yield global assert lambda with
|
||||
syn keyword pythonStatement raise nextgroup=pythonExClass skipwhite
|
||||
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
|
||||
if s:Enabled('g:python_highlight_class_vars')
|
||||
syn keyword pythonClassVar self cls
|
||||
endif
|
||||
syn keyword pythonRepeat for while
|
||||
syn keyword pythonConditional if elif else
|
||||
syn keyword pythonException try except finally
|
||||
" 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 match pythonRaiseFromStatement '\<from\>'
|
||||
syn match pythonImport '^\s*\zsfrom\>'
|
||||
|
||||
|
||||
if s:Python2Syntax()
|
||||
if !s:Enabled('g:python_print_as_function')
|
||||
syn keyword pythonStatement print
|
||||
endif
|
||||
syn keyword pythonStatement exec
|
||||
syn keyword pythonImport as
|
||||
syn match pythonFunction '[a-zA-Z_][a-zA-Z0-9_]*' display contained
|
||||
else
|
||||
syn keyword pythonStatement as nonlocal
|
||||
syn match pythonStatement '\v\.@<!<await>'
|
||||
syn match pythonFunction '\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*' display contained
|
||||
syn match pythonStatement '\<async\s\+def\>' nextgroup=pythonFunction skipwhite
|
||||
syn match pythonStatement '\<async\s\+with\>'
|
||||
syn match pythonStatement '\<async\s\+for\>'
|
||||
syn cluster pythonExpression contains=pythonStatement,pythonRepeat,pythonConditional,pythonOperator,pythonNumber,pythonHexNumber,pythonOctNumber,pythonBinNumber,pythonFloat,pythonString,pythonBytes,pythonBoolean,pythonBuiltinObj,pythonBuiltinFunc
|
||||
endif
|
||||
|
||||
|
||||
"
|
||||
" Operators
|
||||
"
|
||||
syn keyword pythonOperator and in is not or
|
||||
if s:Enabled('g:python_highlight_operators')
|
||||
syn match pythonOperator '\V=\|-\|+\|*\|@\|/\|%\|&\||\|^\|~\|<\|>\|!='
|
||||
endif
|
||||
syn match pythonError '[$?]\|\([-+@%&|^~]\)\1\{1,}\|\([=*/<>]\)\2\{2,}\|\([+@/%&|^~<>]\)\3\@![-+*@/%&|^~<>]\|\*\*[*@/%&|^<>]\|=[*@/%&|^<>]\|-[+*@/%&|^~<]\|[<!>]\+=\{2,}\|!\{2,}=\+' display
|
||||
|
||||
"
|
||||
" Decorators (new in Python 2.4)
|
||||
"
|
||||
|
||||
syn match pythonDecorator '^\s*\zs@' 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\+[^0-9[:space:]]\+\>' 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]\="""+ skip=+\\"+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||
syn region pythonString start=+[bB]\='''+ skip=+\\'+ 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]'''+ skip=+\\'+ end=+'''+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonBytes start=+[bB]"""+ skip=+\\"+ end=+"""+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest2,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]'''+ skip=+\\'+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonUniString start=+[uU]"""+ skip=+\\"+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,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=+'''+ skip=+\\'+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonString start=+"""+ skip=+\\"+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
|
||||
|
||||
syn region pythonFString start=+[fF]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonFString start=+[fF]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
|
||||
syn region pythonFString start=+[fF]'''+ skip=+\\'+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonFString start=+[fF]"""+ skip=+\\"+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,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]'''+ skip=+\\'+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonUniRawString start=+[uU][rR]"""+ skip=+\\"+ end=+"""+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,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]'''+ skip=+\\'+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonRawString start=+[bB]\=[rR]"""+ skip=+\\"+ end=+"""+ keepend contains=pythonDocTest2,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]'''+ skip=+\\'+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonRawString start=+[rR]"""+ skip=+\\"+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
|
||||
|
||||
syn region pythonRawFString start=+\%([fF][rR]\|[rR][fF]\)'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawFString start=+\%([fF][rR]\|[rR][fF]\)"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawFString start=+\%([fF][rR]\|[rR][fF]\)'''+ skip=+\\'+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonRawFString start=+\%([fF][rR]\|[rR][fF]\)"""+ skip=+\\"+ end=+"""+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
|
||||
syn region pythonRawBytes start=+\%([bB][rR]\|[rR][bB]\)'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawBytes start=+\%([bB][rR]\|[rR][bB]\)"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
|
||||
syn region pythonRawBytes start=+\%([bB][rR]\|[rR][bB]\)'''+ skip=+\\'+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
|
||||
syn region pythonRawBytes start=+\%([bB][rR]\|[rR][bB]\)"""+ skip=+\\"+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
|
||||
endif
|
||||
|
||||
syn match pythonRawEscape +\\['"]+ display 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,pythonBytesContent
|
||||
syn match pythonStrFormatting '%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]' contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString,pythonBytesContent
|
||||
else
|
||||
syn match pythonStrFormatting '%\%(([^)]\+)\)\=[-#0 +]*\d*\%(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]' contained containedin=pythonString,pythonRawString,pythonBytesContent
|
||||
syn match pythonStrFormatting '%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]' contained containedin=pythonString,pythonRawString,pythonBytesContent
|
||||
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 "{\%(\%([^[: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
|
||||
syn region pythonStrInterpRegion start="{"he=e+1,rs=e+1 end="\%(![rsa]\)\=\%(:\%({\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)}\|\%([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*,\=\%(\.\d\+\)\=[bcdeEfFgGnosxX%]\=\)\=\)\=}"hs=s-1,re=s-1 extend contained containedin=pythonFString,pythonRawFString contains=pythonStrInterpRegion,@pythonExpression
|
||||
syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonRawString,pythonFString,pythonRawFString
|
||||
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*>>>' skip=+\\'+ end=+'''+he=s-1 end='^\s*$' contained
|
||||
syn region pythonDocTest2 start='^\s*>>>' skip=+\\"+ 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
|
||||
|
||||
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
|
||||
else
|
||||
syn match pythonOctError '\<0[oO]\=\o*\D\+\d*\>' display
|
||||
" pythonHexError comes after pythonOctError so that 0xffffl is pythonHexError
|
||||
syn match pythonHexError '\<0[xX]\x*[g-zG-Z]\x*\>' display
|
||||
syn match pythonBinError '\<0[bB][01]*\D\+\d*\>' display
|
||||
|
||||
syn match pythonHexNumber '\<0[xX][_0-9a-fA-F]*\x\>' display
|
||||
syn match pythonOctNumber '\<0[oO][_0-7]*\o\>' display
|
||||
syn match pythonBinNumber '\<0[bB][_01]*[01]\>' display
|
||||
|
||||
syn match pythonNumberError '\<\d[_0-9]*\D\>' display
|
||||
syn match pythonNumberError '\<0[_0-9]\+\>' display
|
||||
syn match pythonNumberError '\<0_x\S*\>' display
|
||||
syn match pythonNumberError '\<0[bBxXoO][_0-9a-fA-F]*_\>' display
|
||||
syn match pythonNumberError '\<\d[_0-9]*_\>' display
|
||||
syn match pythonNumber '\<\d\>' display
|
||||
syn match pythonNumber '\<[1-9][_0-9]*\d\>' display
|
||||
syn match pythonNumber '\<\d[jJ]\>' display
|
||||
syn match pythonNumber '\<[1-9][_0-9]*\d[jJ]\>' display
|
||||
|
||||
syn match pythonOctError '\<0[oO]\=\o*[8-9]\d*\>' display
|
||||
syn match pythonBinError '\<0[bB][01]*[2-9]\d*\>' display
|
||||
|
||||
syn match pythonFloat '\.\d\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=\>' display
|
||||
syn match pythonFloat '\<\d\%([_0-9]*\d\)\=[eE][+-]\=\d\%([_0-9]*\d\)\=[jJ]\=\>' display
|
||||
syn match pythonFloat '\<\d\%([_0-9]*\d\)\=\.\d\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=' display
|
||||
endif
|
||||
|
||||
"
|
||||
" Builtin objects and types
|
||||
"
|
||||
|
||||
if s:Enabled('g:python_highlight_builtin_objs')
|
||||
syn keyword pythonNone None
|
||||
syn keyword pythonBoolean True False
|
||||
syn keyword pythonBuiltinObj Ellipsis NotImplemented
|
||||
syn match pythonBuiltinObj '\v\.@<!<%(object|bool|int|float|tuple|str|list|dict|set|frozenset|bytearray|bytes)>'
|
||||
syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__
|
||||
syn keyword pythonBuiltinObj __loader__ __spec__ __path__ __cached__
|
||||
endif
|
||||
|
||||
"
|
||||
" Builtin functions
|
||||
"
|
||||
|
||||
if s:Enabled('g:python_highlight_builtin_funcs')
|
||||
let s:funcs_re = '__import__|abs|all|any|bin|callable|chr|classmethod|compile|complex|delattr|dir|divmod|enumerate|eval|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|locals|map|max|memoryview|min|next|oct|open|ord|pow|property|range|repr|reversed|round|setattr|slice|sorted|staticmethod|sum|super|type|vars|zip'
|
||||
|
||||
if s:Python2Syntax()
|
||||
let s:funcs_re .= '|apply|basestring|buffer|cmp|coerce|execfile|file|intern|long|raw_input|reduce|reload|unichr|unicode|xrange'
|
||||
if s:Enabled('g:python_print_as_function')
|
||||
let s:funcs_re .= '|print'
|
||||
endif
|
||||
else
|
||||
let s:funcs_re .= '|ascii|exec|print'
|
||||
endif
|
||||
|
||||
let s:funcs_re = 'syn match pythonBuiltinFunc ''\v\.@<!\zs<%(' . s:funcs_re . ')>'
|
||||
|
||||
if !s:Enabled('g:python_highlight_builtin_funcs_kwarg')
|
||||
let s:funcs_re .= '\=@!'
|
||||
endif
|
||||
|
||||
execute s:funcs_re . ''''
|
||||
unlet s:funcs_re
|
||||
endif
|
||||
|
||||
"
|
||||
" Builtin exceptions and warnings
|
||||
"
|
||||
|
||||
if s:Enabled('g:python_highlight_exceptions')
|
||||
let s:exs_re = 'BaseException|Exception|ArithmeticError|LookupError|EnvironmentError|AssertionError|AttributeError|BufferError|EOFError|FloatingPointError|GeneratorExit|IOError|ImportError|IndexError|KeyError|KeyboardInterrupt|MemoryError|NameError|NotImplementedError|OSError|OverflowError|ReferenceError|RuntimeError|StopIteration|SyntaxError|IndentationError|TabError|SystemError|SystemExit|TypeError|UnboundLocalError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ValueError|VMSError|WindowsError|ZeroDivisionError|Warning|UserWarning|BytesWarning|DeprecationWarning|PendingDepricationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning'
|
||||
|
||||
if s:Python2Syntax()
|
||||
let s:exs_re .= '|StandardError'
|
||||
else
|
||||
let s:exs_re .= '|BlockingIOError|ChildProcessError|ConnectionError|BrokenPipeError|ConnectionAbortedError|ConnectionRefusedError|ConnectionResetError|FileExistsError|FileNotFoundError|InterruptedError|IsADirectoryError|NotADirectoryError|PermissionError|ProcessLookupError|TimeoutError|StopAsyncIteration|ResourceWarning'
|
||||
endif
|
||||
|
||||
execute 'syn match pythonExClass ''\v\.@<!\zs<%(' . s:exs_re . ')>'''
|
||||
unlet s:exs_re
|
||||
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 v:version >= 508 || !exists('did_python_syn_inits')
|
||||
if v: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 pythonRaiseFromStatement 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 pythonRawEscape Special
|
||||
|
||||
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
|
||||
HiLink pythonFString String
|
||||
HiLink pythonRawFString String
|
||||
HiLink pythonStrInterpRegion Special
|
||||
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 pythonNone Constant
|
||||
|
||||
HiLink pythonBuiltinObj Structure
|
||||
HiLink pythonBuiltinFunc Function
|
||||
|
||||
HiLink pythonExClass Structure
|
||||
HiLink pythonClassVar Identifier
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = 'python'
|
|
@ -1,26 +0,0 @@
|
|||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax include @Shell syntax/sh.vim
|
||||
|
||||
syn match sxComment "^#.*$"
|
||||
syn match sxHotkey "[^ #].*" contains=sxKeysym,sxModifier,sxHotkeySep,sxSequence
|
||||
syn match sxCommand "^\s.*$" containedin=ALL contains=@Shell,sxSequenceShell
|
||||
syn keyword sxModifier super hyper meta alt control ctrl shift mode_switch lock mod1 mod2 mod3 mod4 mod5 any contained
|
||||
syn match sxKeysym "[^ :;{,}+-]\+" contained contains=sxAction
|
||||
syn match sxAction "[@~/]" contained
|
||||
syn match sxHotkeySep "[;:+]" contained
|
||||
syn match sxSequenceSep "[,-]" contained
|
||||
syn region sxSequence matchgroup=sxBrace start=/{/ end=/}/ contained keepend oneline contains=sxKeysym,sxModifier,sxHotkeySep,sxSequenceSep
|
||||
syn region sxSequenceShell matchgroup=sxBrace start=/{/ end=/}/ contained keepend oneline contains=sxKeysym,sxSequenceSep
|
||||
|
||||
hi def link sxComment Comment
|
||||
hi def link sxModifier Keyword
|
||||
hi def link sxKeysym Identifier
|
||||
hi def link sxAction Special
|
||||
hi def link sxBrace Special
|
||||
hi def link sxHotkeySep Delimiter
|
||||
hi def link sxSequenceSep Delimiter
|
||||
|
||||
let b:current_syntax = "sxhkdrc"
|
|
@ -1,329 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: tmux(1) configuration file
|
||||
" Maintainer: Tiago Cunha <tcunha@users.sourceforge.net>
|
||||
" License: This file is placed in the public domain.
|
||||
"
|
||||
" To install this file:
|
||||
"
|
||||
" - Drop the file in the syntax directory into runtimepath (such as
|
||||
" ~/.vim/syntax/tmux.vim).
|
||||
" - Make the filetype recognisable by adding the following to filetype.vim
|
||||
" (~/.vim/filetype.vim):
|
||||
"
|
||||
" augroup filetypedetect
|
||||
" au BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
|
||||
" augroup END
|
||||
"
|
||||
" - Switch on syntax highlighting by adding "syntax enable" to .vimrc.
|
||||
"
|
||||
|
||||
if v:version < 600
|
||||
syntax clear
|
||||
elseif exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
setlocal iskeyword+=-
|
||||
syntax case match
|
||||
|
||||
syn keyword tmuxAction any current default none
|
||||
syn keyword tmuxBoolean off on
|
||||
|
||||
syn keyword tmuxCmds
|
||||
\ attach
|
||||
\ attach-session
|
||||
\ bind
|
||||
\ bind-key
|
||||
\ break-pane
|
||||
\ breakp
|
||||
\ capture-pane
|
||||
\ capturep
|
||||
\ choose-buffer
|
||||
\ choose-client
|
||||
\ choose-session
|
||||
\ choose-tree
|
||||
\ choose-window
|
||||
\ clear-history
|
||||
\ clearhist
|
||||
\ clock-mode
|
||||
\ command-prompt
|
||||
\ confirm
|
||||
\ confirm-before
|
||||
\ copy-mode
|
||||
\ copy-mode-vi
|
||||
\ delete-buffer
|
||||
\ deleteb
|
||||
\ detach
|
||||
\ detach-client
|
||||
\ display
|
||||
\ display-message
|
||||
\ display-panes
|
||||
\ displayp
|
||||
\ find-window
|
||||
\ findw
|
||||
\ has
|
||||
\ has-session
|
||||
\ if
|
||||
\ if-shell
|
||||
\ info
|
||||
\ join-pane
|
||||
\ joinp
|
||||
\ kill-pane
|
||||
\ kill-server
|
||||
\ kill-session
|
||||
\ kill-window
|
||||
\ killp
|
||||
\ killw
|
||||
\ last
|
||||
\ last-pane
|
||||
\ last-window
|
||||
\ lastp
|
||||
\ link-window
|
||||
\ linkw
|
||||
\ list-buffers
|
||||
\ list-clients
|
||||
\ list-commands
|
||||
\ list-keys
|
||||
\ list-panes
|
||||
\ list-sessions
|
||||
\ list-windows
|
||||
\ load-buffer
|
||||
\ loadb
|
||||
\ lock
|
||||
\ lock-client
|
||||
\ lock-server
|
||||
\ lock-session
|
||||
\ lockc
|
||||
\ locks
|
||||
\ ls
|
||||
\ lsb
|
||||
\ lsc
|
||||
\ lscm
|
||||
\ lsk
|
||||
\ lsp
|
||||
\ lsw
|
||||
\ move-pane
|
||||
\ move-window
|
||||
\ movep
|
||||
\ movew
|
||||
\ new
|
||||
\ new-session
|
||||
\ new-window
|
||||
\ neww
|
||||
\ next
|
||||
\ next-layout
|
||||
\ next-window
|
||||
\ nextl
|
||||
\ paste-buffer
|
||||
\ pasteb
|
||||
\ path
|
||||
\ pipe-pane
|
||||
\ pipep
|
||||
\ prev
|
||||
\ previous-layout
|
||||
\ previous-window
|
||||
\ prevl
|
||||
\ refresh
|
||||
\ refresh-client
|
||||
\ rename
|
||||
\ rename-session
|
||||
\ rename-window
|
||||
\ renamew
|
||||
\ resize-pane
|
||||
\ resizep
|
||||
\ respawn-pane
|
||||
\ respawn-window
|
||||
\ respawnp
|
||||
\ respawnw
|
||||
\ rotate-window
|
||||
\ rotatew
|
||||
\ run
|
||||
\ run-shell
|
||||
\ save-buffer
|
||||
\ saveb
|
||||
\ select-layout
|
||||
\ select-pane
|
||||
\ select-window
|
||||
\ selectl
|
||||
\ selectp
|
||||
\ selectw
|
||||
\ send
|
||||
\ send-keys
|
||||
\ send-prefix
|
||||
\ server-info
|
||||
\ set
|
||||
\ set-buffer
|
||||
\ set-environment
|
||||
\ set-hook
|
||||
\ set-option
|
||||
\ set-window-option
|
||||
\ setb
|
||||
\ setenv
|
||||
\ setw
|
||||
\ show
|
||||
\ show-buffer
|
||||
\ show-environment
|
||||
\ show-hooks
|
||||
\ show-messages
|
||||
\ show-options
|
||||
\ show-window-options
|
||||
\ showb
|
||||
\ showenv
|
||||
\ showmsgs
|
||||
\ showw
|
||||
\ source
|
||||
\ source-file
|
||||
\ split-window
|
||||
\ splitw
|
||||
\ start
|
||||
\ start-server
|
||||
\ suspend-client
|
||||
\ suspendc
|
||||
\ swap-pane
|
||||
\ swap-window
|
||||
\ swapp
|
||||
\ swapw
|
||||
\ switch-client
|
||||
\ switchc
|
||||
\ unbind
|
||||
\ unbind-key
|
||||
\ unlink-window
|
||||
\ unlinkw
|
||||
\ wait
|
||||
\ wait-for
|
||||
|
||||
syn keyword tmuxOptsSet
|
||||
\ assume-paste-time
|
||||
\ base-index
|
||||
\ bell-action
|
||||
\ bell-on-alert
|
||||
\ buffer-limit
|
||||
\ default-command
|
||||
\ default-shell
|
||||
\ default-terminal
|
||||
\ destroy-unattached
|
||||
\ detach-on-destroy
|
||||
\ display-panes-active-colour
|
||||
\ display-panes-colour
|
||||
\ display-panes-time
|
||||
\ display-time
|
||||
\ escape-time
|
||||
\ exit-unattached
|
||||
\ focus-events
|
||||
\ history-file
|
||||
\ history-limit
|
||||
\ lock-after-time
|
||||
\ lock-command
|
||||
\ message-command-style
|
||||
\ message-limit
|
||||
\ message-style
|
||||
\ mouse
|
||||
\ prefix
|
||||
\ prefix2
|
||||
\ quiet
|
||||
\ renumber-windows
|
||||
\ repeat-time
|
||||
\ set-clipboard
|
||||
\ set-remain-on-exit
|
||||
\ set-titles
|
||||
\ set-titles-string
|
||||
\ status
|
||||
\ status-bg
|
||||
\ status-fg
|
||||
\ status-interval
|
||||
\ status-justify
|
||||
\ status-keys
|
||||
\ status-left
|
||||
\ status-left-length
|
||||
\ status-left-style
|
||||
\ status-position
|
||||
\ status-right
|
||||
\ status-right-length
|
||||
\ status-right-style
|
||||
\ status-style
|
||||
\ terminal-overrides
|
||||
\ update-environment
|
||||
\ visual-activity
|
||||
\ visual-bell
|
||||
\ visual-silence
|
||||
\ word-separators
|
||||
|
||||
syn keyword tmuxOptsSetw
|
||||
\ aggressive-resize
|
||||
\ allow-rename
|
||||
\ alternate-screen
|
||||
\ automatic-rename
|
||||
\ automatic-rename-format
|
||||
\ clock-mode-colour
|
||||
\ clock-mode-style
|
||||
\ force-height
|
||||
\ force-width
|
||||
\ main-pane-height
|
||||
\ main-pane-width
|
||||
\ message-attr
|
||||
\ message-bg
|
||||
\ message-fg
|
||||
\ mode-keys
|
||||
\ mode-style
|
||||
\ monitor-activity
|
||||
\ monitor-silence
|
||||
\ other-pane-height
|
||||
\ other-pane-width
|
||||
\ pane-active-border-bg
|
||||
\ pane-active-border-fg
|
||||
\ pane-active-border-style
|
||||
\ pane-base-index
|
||||
\ pane-border-fg
|
||||
\ pane-border-style
|
||||
\ remain-on-exit
|
||||
\ synchronize-panes
|
||||
\ window-active-style
|
||||
\ window-status-activity-attr
|
||||
\ window-status-activity-bg
|
||||
\ window-status-activity-fg
|
||||
\ window-status-activity-style
|
||||
\ window-status-bell-style
|
||||
\ window-status-bg
|
||||
\ window-status-current-attr
|
||||
\ window-status-current-bg
|
||||
\ window-status-current-fg
|
||||
\ window-status-current-format
|
||||
\ window-status-current-style
|
||||
\ window-status-fg
|
||||
\ window-status-format
|
||||
\ window-status-last-style
|
||||
\ window-status-separator
|
||||
\ window-status-style
|
||||
\ window-style
|
||||
\ wrap-search
|
||||
\ xterm-keys
|
||||
|
||||
syn keyword tmuxTodo FIXME NOTE TODO XXX contained
|
||||
|
||||
syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display
|
||||
syn match tmuxNumber /\<\d\+\>/ display
|
||||
syn match tmuxOptions /\s-\a\+/ display
|
||||
syn match tmuxVariable /\w\+=/ display
|
||||
syn match tmuxVariableExpansion /\${\=\w\+}\=/ display
|
||||
|
||||
" Comments can span multiple lines, when the newline is escaped
|
||||
" (with a single) backslash at the end.
|
||||
syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo
|
||||
syn region tmuxString start=/"/ end=/"/ display oneline
|
||||
syn region tmuxString start=/'/ end=/'/ display oneline
|
||||
|
||||
hi def link tmuxAction Boolean
|
||||
hi def link tmuxBoolean Boolean
|
||||
hi def link tmuxCmds Keyword
|
||||
hi def link tmuxComment Comment
|
||||
hi def link tmuxKey Special
|
||||
hi def link tmuxNumber Number
|
||||
hi def link tmuxOptions Identifier
|
||||
hi def link tmuxOptsSet Function
|
||||
hi def link tmuxOptsSetw Function
|
||||
hi def link tmuxString String
|
||||
hi def link tmuxTodo Todo
|
||||
hi def link tmuxVariable Constant
|
||||
hi def link tmuxVariableExpansion Constant
|
||||
|
||||
let b:current_syntax = 'tmux'
|
|
@ -1,87 +0,0 @@
|
|||
; vim:ft=dosini
|
||||
; syntax:ssSemi
|
||||
|
||||
[colors]
|
||||
background = ${xrdb:background}
|
||||
foreground = ${xrdb:foreground}
|
||||
primary = ${xrdb:color11}
|
||||
secondary= ${xrdb:color12}
|
||||
|
||||
[global/wm]
|
||||
margin-top = 0
|
||||
margin-bottom = 0
|
||||
|
||||
[settings]
|
||||
screenchange-reload = false
|
||||
throttle-output = 5
|
||||
throttle-output-for = 10
|
||||
throttle-input-for = 30
|
||||
|
||||
[bar/bar1]
|
||||
width = 100%
|
||||
height = 22
|
||||
radius = 0
|
||||
border-size = 0
|
||||
padding = 0
|
||||
module-margin = 2
|
||||
monitor = LVDS1
|
||||
monitor-strict = false
|
||||
fixed-center = true
|
||||
enable-ipc = true
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
font-0 = InterUIMedium:size=10;2
|
||||
font-1 = SourceHanSansJPMedium:size=10;2
|
||||
|
||||
modules-left = title
|
||||
modules-center =
|
||||
modules-right = updates bspwm date
|
||||
|
||||
tray-position = left
|
||||
tray-detached = false
|
||||
tray-transparent = false
|
||||
tray-padding = 2
|
||||
tray-background = ${colors.background}
|
||||
|
||||
wm-restack = bspwm
|
||||
override-redirect = true
|
||||
|
||||
cursor-click = pointer
|
||||
|
||||
[module/title]
|
||||
type = internal/xwindow
|
||||
format = <label>
|
||||
format-padding = 2
|
||||
label = %title%
|
||||
label-maxlen = 120
|
||||
|
||||
[module/date]
|
||||
type = custom/script
|
||||
exec = echo "$(date +'%H:%M')"
|
||||
format = %{A:gsimplecal:} <label> %{A}
|
||||
label = %output%
|
||||
interval = 1
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
enable-click = false
|
||||
enable-scroll = false
|
||||
label-focused = %index%
|
||||
label-focused-foreground = ${colors.primary}
|
||||
label-focused-padding = 0
|
||||
label-occupied =
|
||||
label-empty =
|
||||
label-urgent =
|
||||
label-occupied-padding = 0
|
||||
label-empty-padding = 0
|
||||
label-urgent-padding = 0
|
||||
|
||||
[module/updates]
|
||||
type = custom/script
|
||||
exec = ~/bin/update-notifier
|
||||
exec-if = ping -q -w 1 -c 1 "$(ip r | grep default | cut -d ' ' -f 3)" >/dev/null
|
||||
interval = 7200
|
||||
format = <label>
|
||||
label = %output%
|
||||
format-foreground = ${colors.secondary}
|
|
@ -1,10 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch bars
|
||||
polybar bar1 &
|
|
@ -1,148 +0,0 @@
|
|||
; vim:ft=dosini
|
||||
;=====================================================
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/jaagr/polybar
|
||||
;
|
||||
; The README contains alot of information
|
||||
;
|
||||
;=====================================================
|
||||
|
||||
[global/wm]
|
||||
margin-bottom = 6
|
||||
|
||||
[colors]
|
||||
background = #00121212
|
||||
background-alt = #3d3d3d
|
||||
foreground = #e8d0c3
|
||||
foreground-alt = #fefefe
|
||||
primary = #ffb300
|
||||
secondary = #7cb342
|
||||
alert = #ef5350
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
throttle-output = 5
|
||||
throttle-output-for = 10
|
||||
throttle-input-for = 30
|
||||
|
||||
[bar/bar1]
|
||||
width = 100%
|
||||
height = 2
|
||||
radius = 0
|
||||
offset-x = 0
|
||||
offset-y = 0
|
||||
border-bottom-size = 6
|
||||
border-top-size = 1
|
||||
padding-top = 8
|
||||
padding-bottom = 8
|
||||
padding-left = 0
|
||||
padding-right = 0
|
||||
module-margin-left = 0
|
||||
module-margin-right = 0
|
||||
|
||||
fixed-center = true
|
||||
enable-ipc = true
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
border-color = ${colors.background}
|
||||
|
||||
font-0 = fixed:pixelsize=40;0
|
||||
|
||||
modules-left = network
|
||||
modules-center = bspwm
|
||||
modules-right = battery
|
||||
|
||||
tray-position =
|
||||
tray-padding = 0
|
||||
tray-transparent = true
|
||||
|
||||
wm-restack = bspwm
|
||||
override-redirect = true
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
enable-click = false
|
||||
|
||||
ws-icon-default = ▬
|
||||
|
||||
label-focused = "%icon%"
|
||||
label-focused-foreground = ${colors.primary}
|
||||
label-focused-padding = .5
|
||||
|
||||
label-occupied ="%icon%"
|
||||
label-occupied-padding = .5
|
||||
label-occupied-foreground = ${colors.secondary}
|
||||
|
||||
label-urgent = "%icon%"
|
||||
label-urgent-foreground = ${colors.alert}
|
||||
label-urgent-padding = .5
|
||||
|
||||
label-empty = "%icon%"
|
||||
label-empty-foreground = ${colors.background-alt}
|
||||
label-empty-padding = .5
|
||||
|
||||
[module/network]
|
||||
type = internal/network
|
||||
interface = wlo1
|
||||
interval = 3.0
|
||||
format-connected = <label-connected>
|
||||
format-disconnected = <label-disconnected>
|
||||
label-connected = ▬
|
||||
label-connected-foreground = #f06292
|
||||
label-disconnected = M
|
||||
label-disconnected-foreground = #e53935
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
adapter = AC
|
||||
full-at = 100
|
||||
|
||||
label-charging =
|
||||
format-charging = <animation-charging>
|
||||
|
||||
label-discharging =
|
||||
format-discharging = <ramp-capacity>
|
||||
|
||||
label-full =
|
||||
format-full = ▬
|
||||
label-full-foreground = ${colors.foreground-alt}
|
||||
|
||||
aramp-capacity-0 = ▏
|
||||
ramp-capacity-1 = ▎
|
||||
ramp-capacity-2 = ▍
|
||||
ramp-capacity-3 = ▌
|
||||
ramp-capacity-4 = ▋
|
||||
ramp-capacity-5 = ▊
|
||||
ramp-capacity-6 = ▉
|
||||
ramp-capacity-7 = █
|
||||
ramp-capacity-0-foreground = #fb4245
|
||||
ramp-capacity-1-foreground = #fb4245
|
||||
ramp-capacity-2-foreground = #49b9fe
|
||||
ramp-capacity-3-foreground = #49b9fe
|
||||
ramp-capacity-4-foreground = #49b9fe
|
||||
ramp-capacity-5-foreground = #49b9fe
|
||||
ramp-capacity-6-foreground = ${colors.f2oreground-alt}
|
||||
ramp-capacity-7-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 = ▏
|
||||
animation-charging-1 = ▎
|
||||
animation-charging-2 = ▍
|
||||
animation-charging-3 = ▌
|
||||
animation-charging-4 = ▋
|
||||
animation-charging-5 = ▊
|
||||
animation-charging-6 = ▉
|
||||
animation-charging-7 = █
|
||||
animation-charging-0-foreground = #fb4245
|
||||
animation-charging-1-foreground = #fb4245
|
||||
animation-charging-2-foreground = #49b9fe
|
||||
animation-charging-3-foreground = #49b9fe
|
||||
animation-charging-4-foreground = #49b9fe
|
||||
animation-charging-5-foreground = #49b9fe
|
||||
animation-charging-6-foreground = ${colors.foreground-alt}
|
||||
animation-charging-7-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 500
|
||||
|
||||
; vim:ft=dosini
|
|
@ -1,49 +0,0 @@
|
|||
[redshift]
|
||||
; Set the day and night screen temperatures
|
||||
temp-day=5800
|
||||
temp-night=4000
|
||||
|
||||
; Enable/Disable a smooth transition between day and night
|
||||
; 0 will cause a direct change from day to night screen temperature.
|
||||
; 1 will gradually increase or decrease the screen temperature
|
||||
transition=1
|
||||
|
||||
; Set the screen brightness. Default is 1.0
|
||||
;brightness=0.9
|
||||
; It is also possible to use different settings for day and night since version 1.8.
|
||||
;brightness-day=0.7
|
||||
;brightness-night=0.4
|
||||
; Set the screen gamma (for all colors, or each color channel individually)
|
||||
gamma=0.9
|
||||
;gamma=0.8:0.7:0.8
|
||||
; This can also be set individually for day and night since
|
||||
; version 1.10.
|
||||
;gamma-day=0.8:0.7:0.8
|
||||
;gamma-night=0.6
|
||||
|
||||
; Set the location-provider: 'geoclue', 'gnome-clock', 'manual'
|
||||
; type 'redshift -l list' to see possible values
|
||||
; The location provider settings are in a different section.
|
||||
location-provider=manual
|
||||
|
||||
; Set the adjustment-method: 'randr', 'vidmode'
|
||||
; type 'redshift -m list' to see all possible values
|
||||
; 'randr' is the preferred method, 'vidmode' is an older API
|
||||
; but works in some cases when 'randr' does not.
|
||||
; The adjustment method settings are in a different section.
|
||||
adjustment-method=randr
|
||||
|
||||
; Configuration of the location-provider:
|
||||
; type 'redshift -l PROVIDER:help' to see the settings
|
||||
; e.g. 'redshift -l manual:help'
|
||||
[manual]
|
||||
lat=-34.575824
|
||||
lon=-58.475367
|
||||
|
||||
; Configuration of the adjustment-method
|
||||
; type 'redshift -m METHOD:help' to see the settings
|
||||
; ex: 'redshift -m randr:help'
|
||||
; In this example, randr is configured to adjust screen 1.
|
||||
; Note that the numbering starts from 0, so this is actually the second screen.
|
||||
[randr]
|
||||
screen=0
|
|
@ -47,12 +47,18 @@ super + {_,shift,ctrl} + u
|
|||
super + alt + u
|
||||
euclid_balancer
|
||||
|
||||
super + o
|
||||
bspc node @parent -B
|
||||
|
||||
super + y
|
||||
bspc node -s biggest.local
|
||||
|
||||
super + {_,shift} + i
|
||||
{bspc node -i,for win in `bspc query -N -d -n .leaf.!window`; do bspc node $win -k; done}
|
||||
|
||||
# Run Applications
|
||||
super + {t,b,v,q,x,c}
|
||||
{subl,firefox,pavucontrol,oblogout,termite,gsimplecal}
|
||||
{subl,$BROWSER,pavucontrol,oblogout,$TERMINAL,gsimplecal}
|
||||
|
||||
super + z
|
||||
termite --name=multi -e termux
|
||||
|
@ -60,12 +66,6 @@ super + z
|
|||
super + {n,m}
|
||||
termite --name=flota -e {nmtui,brandr}
|
||||
|
||||
super + e
|
||||
termite -e neomutt
|
||||
|
||||
super + r
|
||||
termite --name=archi -e ranger
|
||||
|
||||
super + {space,s}
|
||||
rofi -theme sbarr -show {drun,window}
|
||||
|
||||
|
|
|
@ -6,25 +6,21 @@ mouse_autohide = true
|
|||
allow_bold = false
|
||||
bold_is_bright = true
|
||||
dynamic_title = true
|
||||
icon_name = terminal
|
||||
urgent_on_bell = true
|
||||
clickable_url = true
|
||||
scrollback_lines = -10000
|
||||
search_wrap = true
|
||||
scrollbar = off
|
||||
font = NotoSansMono Nerd Font Regular 9.5
|
||||
cursor_blink = off
|
||||
cursor_shape = underline
|
||||
browser = firefox
|
||||
size_hints = false
|
||||
filter_unmatched_urls = true
|
||||
cursor_shape = underline
|
||||
|
||||
[colors]
|
||||
|
||||
# special
|
||||
foreground = #d3d7cf
|
||||
foreground_bold = #d3d7cf
|
||||
cursor = #d3d7cf
|
||||
background = #080808
|
||||
|
||||
# black
|
||||
|
@ -60,6 +56,7 @@ color7 = #a89984
|
|||
color15 = #c9c9c9
|
||||
|
||||
[hints]
|
||||
padding = 4
|
||||
padding = 8
|
||||
font = NotoSansMono Nerd Font Regular 9.5
|
||||
|
||||
# vim: ft=dosini cms=#%s
|
|
@ -16,12 +16,11 @@ alias ytv='youtube-viewer'
|
|||
alias git='lab'
|
||||
alias help='run-help'
|
||||
alias p='pacui'
|
||||
alias sr='sr -browser=$CLIBROWSER'
|
||||
alias surfraw='surfraw -browser=$BROWSER'
|
||||
alias bm='bashmount'
|
||||
alias kat='cat'
|
||||
alias nb='newsboat --quiet'
|
||||
alias foxy='FoxDot & disown'
|
||||
alias gal='sxiv -p -b -a -q'
|
||||
|
||||
# MAXIMUM VERBOSITY YIELDS MAXIMUM RESULTS
|
||||
alias chmod='chmod -v'
|
||||
|
@ -37,20 +36,21 @@ alias mount='mount -v | column -t'
|
|||
alias umount='umount -v'
|
||||
|
||||
# Con opciones por defecto
|
||||
alias cat='bat --style=numbers,changes,header --color=always'
|
||||
alias buscar="rg --color='always' --heading --line-number --no-messages --no-ignore --hidden --follow --smart-case --glob '!.git/' --glob '!node_modules/' --regexp"
|
||||
alias ncdu='ncdu --color dark -rr -x --exclude .git'
|
||||
alias cat='bat --color=always'
|
||||
alias buscar="rg --files --color='always' --heading --line-number --no-messages --no-ignore --hidden --follow --smart-case --glob '!.git/' --glob '!node_modules/' --regexp"
|
||||
alias ncdu='ncdu --color dark -rr -x --exclude .git --exclude node_modules'
|
||||
alias ls='ls -Ft --color=always --group-directories-first'
|
||||
alias lst='ls -FAghoBtH --group-directories-first --dereference-command-line-symlink-to-dir --time-style=+"%d-%m-%Y %H:%M"'
|
||||
alias grep='grep --color=tty -d skip'
|
||||
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} '
|
||||
alias dmesg='dmesg --color=always'
|
||||
alias tree='tree -CAFa -I "CVS|*.*.package|.svn|.git|.hg|node_modules|bower_components" --dirsfirst'
|
||||
alias tree='tree -CAFa -I "CVS|*.*.package|.svn|.git|.hg|node_modules" --dirsfirst'
|
||||
alias lsblk='lsblk -o "KNAME,HOTPLUG,SIZE,FSTYPE,TYPE,LABEL,MOUNTPOINT,UUID,MODEL,SERIAL"'
|
||||
alias dir='dir --color=always'
|
||||
alias df='df -hT --total'
|
||||
alias free='free -ht'
|
||||
alias du='du -d1 -h | sort -rh'
|
||||
alias doo='du -d1 -h | sort -rh'
|
||||
alias du='du -sh'
|
||||
alias info='info --vi-keys'
|
||||
alias inxi='inxi -Fz'
|
||||
alias ping='ping -c 5 '
|
||||
|
@ -65,6 +65,7 @@ alias chau="bspc quit 1"
|
|||
alias path='echo -e ${PATH//:/\\n}'
|
||||
alias pwn='chmod +x'
|
||||
alias ta='tmux attach -t'
|
||||
alias tn='tmux new-session -s'
|
||||
alias tk='tmux kill-session -t'
|
||||
alias tsq='killall transmission-daemon 2> /dev/null'
|
||||
alias tsl='transmission-remote --list'
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# Dotfiles on GitHub
|
||||
# Dotfiles on Git
|
||||
# Instructions here https://news.ycombinator.com/item?id=11070797
|
||||
# https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/
|
||||
|
||||
alias hexa='/usr/bin/git --git-dir=$HOME/hexagons/ --work-tree=$HOME'
|
||||
alias hx-add='hexa add -v'
|
||||
alias hx-up='hexa add -vu'
|
||||
alias hx-ls='hexa ls-files -m'
|
||||
alias hx-diff='hexa diff'
|
||||
alias hx-push='hexa push'
|
||||
alias hx-stat='hexa status'
|
||||
alias hx-rm='hexa rm --cached'
|
||||
alias hx-cmsg='hexa commit -m'
|
||||
alias hxa='hexa add -v'
|
||||
alias hxu='hexa add -vu'
|
||||
alias hxls='hexa ls-files -m'
|
||||
alias hxd='hexa diff'
|
||||
alias hxp='hexa push'
|
||||
alias hxs='hexa status'
|
||||
alias hxr='hexa rm --cached'
|
||||
alias hxc='hexa commit -m'
|
43
.dhexrc
43
.dhexrc
|
@ -1,43 +0,0 @@
|
|||
#DHEXCOLORSCHEME
|
||||
#VERSION 0
|
||||
#possible colors are: BLACK,RED,GREEN,YELLOW,BLUE,MAGENTA,CYAN,WHITE
|
||||
#possible extra flags are: UNDERLINE,REVERSE,BLINK,DIM,BOLD
|
||||
|
||||
BRACKETS: FG=LIGHTBLUE,BG=BLACK,BOLD
|
||||
HEXFIELD: FG=WHITE,BG=BLACK,DIM
|
||||
INPUT: FG=BLACK,BG=WHITE
|
||||
CURSOR: FG=WHITE,BG=BLACK
|
||||
TEXT: FG=LIGHTCYAN,BG=BLACK,BOLD
|
||||
MENU_NORMAL: FG=BLUE,BG=BLACK
|
||||
MENU_HIGHLIGHT: FG=BLACK,BG=LIGHTBLUE
|
||||
MENU_HOTKEY: FG=CYAN,BG=BLACK
|
||||
MENU_HOTKEY_HI: FG=BLACK,BG=LIGHTCYAN
|
||||
FRAME: FG=BLUE,BG=BLACK
|
||||
NORMAL_DIFF: FG=YELLOW,BG=BLACK,BOLD
|
||||
CURSOR_DIFF: FG=YELLOW,BG=WHITE,BOLD
|
||||
HEADLINE: FG=BLUE,BG=BLACK
|
||||
HEADER: FG=LIGHTGREEN,BG=BLACK
|
||||
|
||||
KEYESC:1b
|
||||
KEYF1:1b 4f 50
|
||||
KEYF2:1b 4f 51
|
||||
KEYF3:1b 4f 52
|
||||
KEYF4:1b 4f 53
|
||||
KEYF5:1b 5b 31 35 7e
|
||||
KEYF6:1b 5b 31 37 7e
|
||||
KEYF7:1b 5b 31 38 7e
|
||||
KEYF8:1b 5b 31 39 7e
|
||||
KEYF9:1b 5b 32 30 7e
|
||||
KEYF10:1b 5b 32 31 7e
|
||||
KEYBACKSPACE:7f
|
||||
KEYDEL:1b 5b 33 7e
|
||||
KEYENTER:0a
|
||||
KEYTAB:09
|
||||
KEYUP:1b 5b 41
|
||||
KEYDOWN:1b 5b 42
|
||||
KEYRIGHT:1b 5b 43
|
||||
KEYLEFT:1b 5b 44
|
||||
KEYPGUP:1b 5b 35 7e
|
||||
KEYPGDOWN:1b 5b 36 7e
|
||||
KEYHOME:1b 5b 31 7e
|
||||
KEYEND:1b 5b 34 7e
|
|
@ -12,14 +12,7 @@ servers = (
|
|||
port = "6667";
|
||||
use_ssl = "no";
|
||||
ssl_verify = "no";
|
||||
},
|
||||
{
|
||||
address = "irc.rizon.net";
|
||||
chatnet = "Rizon";
|
||||
port = "6697";
|
||||
use_tls = "yes";
|
||||
tls_cert = "~/.irssi/Rizon.pem";
|
||||
tls_verify = "yes";
|
||||
autosendcmd = "wait 6000";
|
||||
},
|
||||
{
|
||||
address = "unix.chat";
|
||||
|
@ -38,7 +31,6 @@ servers = (
|
|||
|
||||
chatnets = {
|
||||
freenode = { type = "IRC"; };
|
||||
Rizon = { type = "IRC"; };
|
||||
nixers = { type = "IRC"; };
|
||||
EFNet = { type = "IRC"; };
|
||||
Undernet = { type = "IRC"; };
|
||||
|
@ -50,28 +42,11 @@ channels = (
|
|||
chatnet = "freenode";
|
||||
autojoin = "yes";
|
||||
},
|
||||
{
|
||||
name = "#archlinux-newbie";
|
||||
chatnet = "freenode";
|
||||
autojoin = "yes";
|
||||
},
|
||||
{ name = "#distrotube"; chatnet = "freenode"; autojoin = "yes"; },
|
||||
{ name = "#pvm"; chatnet = "EFNet"; autojoin = "yes"; },
|
||||
{ name = "#impure"; chatnet = "EFNet"; autojoin = "yes"; },
|
||||
{ name = "#unix"; chatnet = "nixers"; autojoin = "Yes"; },
|
||||
{ name = "#rice"; chatnet = "rizon"; autojoin = "yes"; },
|
||||
{ name = "#unixporn"; chatnet = "nixers"; autojoin = "Yes"; },
|
||||
{
|
||||
name = "#idleRPG";
|
||||
chatnet = "freenode";
|
||||
autojoin = "yes";
|
||||
autosendcmd = "/^msg IdleBot LOGIN deadguy mierdor";
|
||||
},
|
||||
{
|
||||
name = "#rizonirpg";
|
||||
chatnet = "Rizon";
|
||||
autojoin = "yes";
|
||||
autosendcmd = "/^msg RizonIRPG LOGIN deadguy panocha";
|
||||
}
|
||||
{ name = "#unixporn"; chatnet = "nixers"; autojoin = "Yes"; }
|
||||
);
|
||||
|
||||
aliases = {
|
||||
|
@ -116,7 +91,6 @@ settings = {
|
|||
use_status_window = "yes";
|
||||
reuse_unused_windows = "no";
|
||||
window_auto_change = "no";
|
||||
activity_hide_targets = "#RizonIRPG =RizonIRPG, #IdleRPG =IdleBot";
|
||||
beep_msg_level = "MSGS HILIGHT";
|
||||
beep_when_window_active = "no";
|
||||
emphasis = "yes";
|
||||
|
@ -138,23 +112,10 @@ settings = {
|
|||
nickcolor_prefix_text = " ";
|
||||
nickcolor_truncate_value = "-12";
|
||||
nicklist_color = "yes";
|
||||
awl_shared_sbar = "50<5";
|
||||
awl_viewer = "no";
|
||||
awl_hide_empty = "0";
|
||||
awl_hide_data = "0";
|
||||
awl_maxlines = "1";
|
||||
awl_block = "25";
|
||||
awl_sbar_maxlength = "yes";
|
||||
awl_placement = "bottom";
|
||||
awl_viewer_tmux_position = "right";
|
||||
fancy_abbrev = "head";
|
||||
awl_all_disable = "off";
|
||||
awl_height_adjust = "1";
|
||||
awl_position = "0";
|
||||
awl_sort = "refnum+-last_line";
|
||||
awl_last_line_shade = "30";
|
||||
awl_mouse = "yes";
|
||||
awl_mouse_offset = "0";
|
||||
awl_shared_sbar = "OFF";
|
||||
awl_viewer_tmux_position = "right";
|
||||
mouse_escape = "0";
|
||||
mouse_scroll = "3";
|
||||
};
|
||||
|
@ -208,11 +169,8 @@ statusbar = {
|
|||
|
||||
items = {
|
||||
barstart = { priority = "100"; };
|
||||
user = { };
|
||||
window_empty = { };
|
||||
lag = { priority = "-1"; };
|
||||
awl_shared = { priority = "10"; alignment = "left"; };
|
||||
awl_0 = { alignment = "left"; };
|
||||
more = { priority = "-1"; alignment = "right"; };
|
||||
barend = { priority = "100"; alignment = "right"; };
|
||||
};
|
||||
|
@ -242,6 +200,7 @@ statusbar = {
|
|||
visible = "always";
|
||||
|
||||
items = {
|
||||
user = { };
|
||||
prompt = { priority = "-1"; };
|
||||
prompt_empty = { priority = "-1"; };
|
||||
input = { priority = "10"; };
|
||||
|
|
|
@ -197,18 +197,18 @@ abstracts = {
|
|||
|
||||
# text at the beginning of statusbars. sb-item already puts
|
||||
# space there,so we don't use anything by default.
|
||||
sbstart = "%K-(";
|
||||
sbstart = "";
|
||||
# text at the end of statusbars. Use space so that it's never
|
||||
# used for anything.
|
||||
sbend = "%K)-";
|
||||
sbend = "";
|
||||
|
||||
topicsbstart = "%C :: {sbstart $*}";
|
||||
topicsbend = "{sbend $*} %C:: %n";
|
||||
|
||||
prompt = "%m×%n ";
|
||||
prompt = " ";
|
||||
|
||||
sb = " %m-=%K[%w$*%K]%m=-%n";
|
||||
sbmode = "%K(%n+%C$M%K)%n";
|
||||
sb = "$*";
|
||||
sbmode = "(%n+%C$M%K)";
|
||||
#sbaway = " %K(%MzZzZ%K)";
|
||||
sbservertag = "%n:$0 (change with ^X)";
|
||||
sbaway = " %g/* zZzZ */%n";
|
||||
|
@ -235,10 +235,10 @@ formats = {
|
|||
line_start_irssi = "{line_start}";
|
||||
timestamp = "{timestamp $Z} ";
|
||||
|
||||
join = "%G>>%Z5F5F5F----%Z7F7F7Fjoin%Z5F5F5F----%G>%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
part = "%B<<%Z5F5F5F----part----%B<%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
kick = "%R<<%Z5F5F5F----%rkick%Z5F5F5F----%R<%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
quit = "%M<<%Z5F5F5F----quit----%M<%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
join = "%G>>%Z5F5F5F-%Z7F7F7Fjoin%Z5F5F5F-%G>%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
part = "%B<<%Z5F5F5F-part-%B<%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
kick = "%R<<%Z5F5F5F-%rkick%Z5F5F5F-%R<%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
quit = "%M<<%Z5F5F5F-quit-%M<%n {channick $0} %Z303030({nickhost %Z5F5F5F$1}%Z303030)%n";
|
||||
quit_once = "{channel $3} {channick $0} {chanhost $1} %nquit {reason %C$2}";
|
||||
|
||||
new_topic = "%y ┌─┄┄─────┘%n\012%y │ %wtopic %W'$2' %wset by $0\012%y └─┄┄─┄┄──┐ ";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Torrent
|
||||
Exec=/usr/bin/env tsa %U
|
||||
Exec=tsa %U
|
||||
|
|
57
.tmux.conf
57
.tmux.conf
|
@ -9,6 +9,7 @@ set -g mouse on
|
|||
set -gq status-utf8 on
|
||||
setw -gq utf8 on
|
||||
set -g escape-time 0
|
||||
set-option -g history-limit 102400
|
||||
|
||||
# Ventanas
|
||||
set -g base-index 1
|
||||
|
@ -31,16 +32,17 @@ set -g mode-keys vi
|
|||
set -g status-keys vi
|
||||
|
||||
# Statusbar
|
||||
setw -g automatic-rename-format "#{s/zsh//:pane_current_command}"
|
||||
setw -g pane-border-style fg=colour8
|
||||
setw -g pane-active-border-style fg=colour8
|
||||
setw -g pane-border-status bottom
|
||||
setw -g pane-border-format '─'
|
||||
setw -g automatic-rename-format "#{s/zsh//:pane_current_command}"
|
||||
setw -g pane-border-style 'fg=#080808'
|
||||
setw -g pane-active-border-style 'fg=#080808'
|
||||
set -g mode-style fg=black,bg=white
|
||||
set -g message-command-style bg=colour0,fg=colour13
|
||||
set -g message-style bg=default,fg=default
|
||||
set -g status-style bg=default,fg=colour7
|
||||
set -g set-titles on
|
||||
set -g set-titles-string "#T"
|
||||
set -g message-command-style bg=colour0,fg=colour13
|
||||
set -g message-style bg=colour3,fg=colour0
|
||||
set -g status-style bg=default,fg=colour7
|
||||
set -g status-interval 1
|
||||
set -g status-left ''
|
||||
set -g status-right '#(txbar)#[fg=colour4] %R #[fg=colour10]#S'
|
||||
|
@ -59,8 +61,8 @@ unbind-key %
|
|||
unbind-key q
|
||||
|
||||
# Prefijo
|
||||
set -g prefix C-a
|
||||
bind-key C-a send-prefix
|
||||
set -g prefix M-a
|
||||
bind-key M-a send-prefix
|
||||
|
||||
# Varios
|
||||
bind-key ? list-keys
|
||||
|
@ -71,17 +73,17 @@ bind-key T command-prompt 'rename-window %%'
|
|||
bind-key S command-prompt 'rename-session %%'
|
||||
bind-key r source-file $HOME/.tmux.conf \; display "Config Reloaded!"
|
||||
|
||||
# Cambiar de pane usando flecha con prefijo
|
||||
bind-key -n M-Left select-pane -L
|
||||
bind-key -n M-Right select-pane -R
|
||||
bind-key -n M-Up select-pane -U
|
||||
bind-key -n M-Down select-pane -D
|
||||
# Cambiar de pane usando alt-flecha sin prefijo
|
||||
bind-key -n M-Left select-pane -L
|
||||
bind-key -n M-Right select-pane -R
|
||||
bind-key -n M-Up select-pane -U
|
||||
bind-key -n M-Down select-pane -D
|
||||
|
||||
# Trocar panes usando alt-flecha con prefijo
|
||||
bind-key M-Left swap-pane -s {left-of}
|
||||
bind-key M-Right swap-pane -s {right-of}
|
||||
bind-key M-Up swap-pane -U
|
||||
bind-key M-Down swap-pane -D
|
||||
# Trocar panes usando alt-shift-flecha sin prefijo
|
||||
bind-key M-S-Left swap-pane -s {left-of}
|
||||
bind-key M-S-Right swap-pane -s {right-of}
|
||||
bind-key M-S-Up swap-pane -U
|
||||
bind-key M-S-Down swap-pane -D
|
||||
|
||||
# Redimensionar
|
||||
bind -r J resize-pane -D 2
|
||||
|
@ -103,6 +105,7 @@ bind-key -n M-z resize-pane -Z
|
|||
bind-key q kill-window
|
||||
bind-key x kill-pane
|
||||
bind-key Z kill-session
|
||||
bind-key Q kill-server
|
||||
|
||||
# Ir a ventana
|
||||
bind-key 1 select-window -t :1
|
||||
|
@ -119,11 +122,11 @@ bind-key 0 select-window -t :0
|
|||
# Movimiento de ventanas
|
||||
bind-key Enter new-window
|
||||
bind-key Tab choose-window
|
||||
bind-key S-left prev
|
||||
bind-key S-right next
|
||||
bind-key C-left swap-window -t -1
|
||||
bind-key C-right swap-window -t +1
|
||||
bind-key C-d display-panes
|
||||
bind-key -n S-left prev
|
||||
bind-key -n S-right next
|
||||
bind-key -n M-< swap-window -t -1
|
||||
bind-key -n M-> swap-window -t +1
|
||||
bind-key M-d display-panes
|
||||
|
||||
# Urlview
|
||||
bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; new-window -n "urlscan" '$SHELL -c "urlscan < /tmp/tmux-buffer"'
|
||||
|
@ -135,11 +138,11 @@ bind-key ] paste-buffer
|
|||
# Copy/paste. Seleccionar texto con el mouse lo copia automaticamente al clipboard
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xsel -i -p -b"
|
||||
bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind -n C-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind-key C-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind -n M-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
bind-key M-S-v run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
|
||||
# FZF Locate
|
||||
bind-key -n 'M-/' new-window -n locate \; send-keys "fl && tmux kill-window\n"
|
||||
bind-key -n 'M-/' new-window -n locate \; send-keys "fl && tmux kill-window\n"
|
||||
|
||||
# Prender y apagar statusbar
|
||||
bind-key & set-option -g status
|
||||
|
@ -149,4 +152,4 @@ set -g @prevent-scroll-for-fullscreen-alternate-buffer 'on'
|
|||
set -g @scroll-speed-num-lines-per-scroll '3'
|
||||
run-shell ~/bin/tmux-better-mouse-mode/scroll_copy_mode.tmux
|
||||
|
||||
# vim: set ft=tmux:
|
||||
# vim: set ft=tmux:
|
||||
|
|
49
.zshenv
49
.zshenv
|
@ -1,10 +1,9 @@
|
|||
# Programas y Opciones del Sistema {{{
|
||||
export TERMINAL="termite"
|
||||
export EDITOR="nvim"
|
||||
export GIT_EDITOR=$EDITOR
|
||||
export BROWSER="firefox"
|
||||
export CLIBROWSER="elinks"
|
||||
export READER="zathura"
|
||||
export FILE="ranger"
|
||||
export GREP_COLOR="0;32"
|
||||
export PULSEMIXER_BAR_STYLE="┌╶┐╴└┘▮ ◆┆"
|
||||
export RANGER_LOAD_DEFAULT_RC="FALSE"
|
||||
|
@ -15,49 +14,38 @@ export QT_QPA_PLATFORMTHEME=qt5ct
|
|||
export SSH_ASKPASS="/usr/lib/seahorse/ssh-askpass"
|
||||
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
|
||||
export NOTMUCH_CONFIG="$HOME/.config/notmuch-config"
|
||||
export RTV_BROWSER="$HOME/bin/linkhandler"
|
||||
export RTV_BROWSER="$BROWSER"
|
||||
export RTV_URLVIEWER="urlscan"
|
||||
export RTV_EDITOR="$EDITOR"
|
||||
export MAILCAPS="$HOME/.config/mutt/mailcap"
|
||||
export MANPAGER="nvim +'set filetype=man' -"
|
||||
|
||||
# fff
|
||||
export FFF_TRASH_CMD="rm"
|
||||
export FFF_MARK_FORMAT="> %f"
|
||||
export FFF_COL2=3
|
||||
|
||||
# highlight
|
||||
export HIGHLIGHT_OPTIONS='--out-format="ansi" --style="pablo"'
|
||||
|
||||
# fzf
|
||||
export BAT_STYLE="numbers,changes,header"
|
||||
export BAT_THEME="TwoDark"
|
||||
# }}}
|
||||
# FZF {{{
|
||||
export FZF_DEFAULT_COLORS='--color=dark,fg:-1,fg+:254,bg:-1,bg+:235,hl:33,hl+:33,info:8,border:1,prompt:4,pointer:3,marker:3,spinner:8,header:6'
|
||||
|
||||
export FZF_DEFAULT_OPTS="$FZF_DEFAULT_COLORS \
|
||||
--extended \
|
||||
--reverse \
|
||||
--ansi \
|
||||
--inline-info \
|
||||
--no-bold \
|
||||
--ansi \
|
||||
--bind ctrl-f:page-down,ctrl-b:page-up \
|
||||
--preview 'bat --color=always {}' \
|
||||
--preview-window wrap"
|
||||
|
||||
export FZF_DEFAULT_COMMAND="rg \
|
||||
--files \
|
||||
--no-messages \
|
||||
--no-ignore \
|
||||
--hidden \
|
||||
--follow \
|
||||
--ignore-case \
|
||||
--glob '!{.git,node_modules}/*'"
|
||||
export FZF_DEFAULT_COMMAND="fd --type file --color=always --follow --hidden --exclude .git"
|
||||
|
||||
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
||||
export FZF_ALT_C_COMMAND="bfs -type d -nohidden"
|
||||
export FZF_COMPLETION_OPTS='+c -x'
|
||||
export FZF_CTRL_T_OPTS="--select-1 --exit-0 --preview '(highlight -O ansi -l {} || bat --color \"always\" {} || tree -C {}) 2> /dev/null | head -200'"
|
||||
export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'"
|
||||
export FZF_ALT_C_OPTS="--select-1 --exit-0 --preview 'tree -C {} | head -200'"
|
||||
export FZF_CTRL_T_OPTS="--select-1 --exit-0"
|
||||
export FZF_ALT_C_OPTS="--select-1 --exit-0"
|
||||
export FZF_VIM_LOG=$(git config --get alias.l | awk '{$1=""; print $0;}' | tr -d '\r')
|
||||
|
||||
# less
|
||||
# }}}
|
||||
# Less {{{
|
||||
export LESS=" \
|
||||
--ignore-case \
|
||||
--tilde \
|
||||
|
@ -71,7 +59,7 @@ export LESS=" \
|
|||
--shift=5"
|
||||
|
||||
export LESSOPEN="| highlight $HIGHLIGHT_OPTIONS -- %s 2>/dev/null" # Use `highlight` program to try to highlight opened file according to its extension.
|
||||
export LESSHISTFILE="$HOME/.config/less/lesshistory" # Command and search history file.
|
||||
export LESSHISTFILE="-" # Command and search history file.
|
||||
export LESSKEYRC="$HOME/.config/less/lesskey" # Path of the uncompiled lesskey file.
|
||||
export LESSKEY="$LESSKEYRC.lwc" # Path of the compiled lesskey file.
|
||||
export LESS_TERMCAP_md=$(tput bold; tput setaf 4) # Turn on bold mode.
|
||||
|
@ -86,6 +74,9 @@ export LESS_TERMCAP_ZN=$(tput ssubm) # Enter subscript mode.
|
|||
export LESS_TERMCAP_ZV=$(tput rsubm) # End subscript mode.
|
||||
export LESS_TERMCAP_ZO=$(tput ssupm) # Enter superscript mode.
|
||||
export LESS_TERMCAP_ZW=$(tput rsupm) # End superscript mode.
|
||||
|
||||
# }}}
|
||||
# Path {{{
|
||||
typeset -U path
|
||||
path=(~/bin ~/.local/bin /usr/lib/surfraw $path[@])
|
||||
path=(~/bin ~/.local/bin ~/.yarn/bin ~/.config/yarn/global/node_modules/.bin /usr/lib/surfraw $path[@])
|
||||
# }}}
|
||||
# vim:foldmethod=marker:foldlevel=0
|
||||
|
|
17
.zshrc
17
.zshrc
|
@ -114,20 +114,11 @@ setopt INC_APPEND_HISTORY
|
|||
setopt SHARE_HISTORY
|
||||
# }}}
|
||||
# Plugins y extras {{{
|
||||
foreach programa (
|
||||
LS_COLORS/dircolors.sh
|
||||
fzf/key-bindings.zsh
|
||||
fzf/completion.zsh
|
||||
) {
|
||||
source /usr/share/$programa
|
||||
}
|
||||
|
||||
foreach extra (
|
||||
agkozak-zsh-prompt/agkozak-zsh-prompt.plugin.zsh
|
||||
zsh-completions/zsh-completions.plugin.zsh
|
||||
up.plugin.zsh
|
||||
k.sh
|
||||
widgets.zsh
|
||||
teclas.zsh
|
||||
extras.zsh
|
||||
aliases.plugin.zsh
|
||||
|
@ -137,6 +128,14 @@ foreach extra (
|
|||
source $MODULES_DIR/$extra
|
||||
}
|
||||
|
||||
foreach programa (
|
||||
LS_COLORS/dircolors.sh
|
||||
fzf/key-bindings.zsh
|
||||
fzf/completion.zsh
|
||||
) {
|
||||
source /usr/share/$programa
|
||||
}
|
||||
|
||||
typeset -g ZSH_SYSTEM_CLIPBOARD_TMUX_SUPPORT='true'
|
||||
|
||||
AGKOZAK_BLANK_LINES=1
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
sleep 5
|
||||
xdotool search --class polybar windowunmap
|
||||
xdotool search --name "Polybar tray window" windowunmap
|
||||
bspc config top_padding $((0-8))
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
xdotool search --class polybar windowmap
|
||||
xdotool search --onlyvisible --name "Polybar tray window" windowmap
|
||||
bspc config top_padding $((20-8))
|
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
notify-send -u urgent -i ~/Pictures/.icn/control.png "Tres meses han pasado..." "Es hora de limpiar el cache"
|
||||
sleep 10s
|
||||
termite --name=flota -e paccache -rk1 && yay -Sca
|
|
@ -1,3 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
ffmpeg -i "$1" -r 29.97 -vf scale=1280:-1 -vf format=yuv420p -vf crop=710:720:0:0 -c:v libx264 -c:a aac -b:a 128k "$1_cropped.mp4"
|
|
@ -29,7 +29,7 @@ case "$file" in
|
|||
*\.tex) textype "$file" ;;
|
||||
*\.md) pandoc "$file" --pdf-engine=xelatex -o "$base".pdf ;;
|
||||
*config.h) sudo make install ;;
|
||||
*\.c) cc "$file" -o "$base" && "$base" ;;
|
||||
*\.c) cc "$file" -o "$base" && "$base" ;;
|
||||
*\.py) python "$file" ;;
|
||||
*\.go) go run "$file" ;;
|
||||
*\.sent) setsid sent "$file" 2>/dev/null & ;;
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#!/usr/bin/env sh
|
||||
# Sync mail and give notification if there is new mail.
|
||||
|
||||
pgrep -u "$USER" >/dev/null || exit
|
||||
|
||||
ping -q -c 1 1.1.1.1 > /dev/null || exit
|
||||
|
||||
export DISPLAY=:0.0
|
||||
|
@ -8,7 +10,11 @@ export DISPLAY=:0.0
|
|||
notify() { notify-send -i ~/Pictures/.icn/correo.png "You've got mail" "$2 new message(s) in \`$1\` " ;}
|
||||
|
||||
# Run mbsync. You can feed this script different settings.
|
||||
mbsync -a "$@"
|
||||
if [ $# -eq 0 ]; then
|
||||
mbsync -a
|
||||
else
|
||||
mbsync "$@"
|
||||
fi
|
||||
|
||||
# Check all accounts/mailboxes for new mail. Notify if there is new content.
|
||||
for account in "$HOME/.local/share/mail/"*
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euf -o pipefail
|
||||
|
||||
FOLDER="$HOME/bin"
|
||||
FILE="$FOLDER/$1"
|
||||
|
||||
if [[ -f $FILE ]]; then
|
||||
echo -e "There's a file called that already..."
|
||||
echo -e "Already exists. Press ENTER to edit or CTRL+C to cancel"
|
||||
read -r
|
||||
$EDITOR "$FILE"
|
||||
else
|
||||
echo -e "#!/usr/bin/env bash\\nset -euf -o pipefail\\n" > "$FILE"
|
||||
chmod +x "$FILE"
|
||||
|
|
2
bin/fgit
2
bin/fgit
|
@ -3,7 +3,7 @@ set -euf -o pipefail
|
|||
|
||||
git log --graph --color=always \
|
||||
--format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" |
|
||||
fzf --ansi --preview "echo {} | grep -o '[a-f0-9]\{7\}' | head -1 | xargs -I % sh -c 'git show --color=always %'" \
|
||||
fzf --ansi --exit-0 --preview "echo {} | grep -o '[a-f0-9]\{7\}' | head -1 | xargs -I % sh -c 'git show --color=always %'" \
|
||||
--bind "enter:execute:
|
||||
(grep -o '[a-f0-9]\{7\}' | head -1 |
|
||||
xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF'
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
pid=$(ps -ef | sed 1d | fzf-tmux -m | awk '{print $2}')
|
||||
|
||||
if [ "x$pid" != "x" ]
|
||||
then
|
||||
echo "$pid" | xargs kill -"${1:-9}"
|
||||
fi
|
2
bin/gsvn
2
bin/gsvn
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
git-download(){
|
||||
folder=${@/tree\/master/trunk}
|
||||
folder=${*/tree\/master/trunk}
|
||||
folder=${folder/blob\/master/trunk}
|
||||
svn export "$folder"
|
||||
}
|
||||
|
|
26
bin/pila
26
bin/pila
|
@ -1,20 +1,22 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
if [ -d /sys/class/power_supply/BAT0 ]; then
|
||||
bat_lvl=$(head -n 1 /sys/class/power_supply/BAT0/capacity)
|
||||
current_charge=$(echo "$bat_lvl" | grep -o '[0-9]\+%' | awk '{sub (/%/, "", $1); print $1}')
|
||||
battery_info="$(head -n 1 /sys/class/power_supply/BAT0/capacity)%"
|
||||
current_charge=$(echo "$battery_info" | grep -o '[0-9]\+%' | awk '{sub (/%/, "", $1); print $1}')
|
||||
|
||||
if [[ $current_charge -lt 11 ]]; then
|
||||
icon="/home/deadguy/Pictures/.icn/battery-empty.png"
|
||||
ICON="/home/deadguy/Pictures/.icn/battery-empty.png"
|
||||
elif [[ $current_charge -lt 31 ]]; then
|
||||
icon="/home/deadguy/Pictures/.icn/battery-caution.png"
|
||||
ICON="/home/deadguy/Pictures/.icn/battery-caution.png"
|
||||
elif [[ $current_charge -lt 51 ]]; then
|
||||
icon="/home/deadguy/Pictures/.icn/battery-low.png"
|
||||
ICON="/home/deadguy/Pictures/.icn/battery-low.png"
|
||||
elif [[ $current_charge -lt 71 ]]; then
|
||||
icon="/home/deadguy/Pictures/.icn/battery-good.png"
|
||||
elif [[ $current_charge -lt 98 ]]; then
|
||||
icon="/home/deadguy/Pictures/.icn/battery-full.png"
|
||||
ICON="/home/deadguy/Pictures/.icn/battery-good.png"
|
||||
elif [[ $current_charge -lt 90 ]]; then
|
||||
ICON="/home/deadguy/Pictures/.icn/battery-full.png"
|
||||
else
|
||||
ICON="/home/deadguy/Pictures/.icn/battery-full.png"
|
||||
fi
|
||||
bat="$bat_lvl%"
|
||||
notify-send -t 5000 -i "$ICON" "$current_charge%"
|
||||
fi
|
||||
|
||||
notify-send -t 5000 -i "$icon" "${bat}"
|
||||
|
|
29
bin/skyterm
29
bin/skyterm
|
@ -1,29 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
terminal="st"
|
||||
|
||||
if [ -z "$(xdotool search --classname "dropdown")" ]; then
|
||||
bspc rule -a $terminal:dropdown state=floating,hidden=on,border=off,sticky=on layer=above,focus=on,rectangle=1364x250+1+527
|
||||
|
||||
# Use of xtoolwait is recommended instead of the until-loop.
|
||||
# One or the other is needed to wait for the terminal to be
|
||||
# mapped to a window before continuing the script.
|
||||
# xtoolwait, as the name implies, does not work with wayland.
|
||||
#xtoolwait "$terminal" -c "$terminal" -n dropdown
|
||||
($terminal -c $terminal -n dropdown &); until [ "$(bspc query -N -n .hidden | tail -n1)" ]; do :; done
|
||||
|
||||
# find the newest hidden terminal
|
||||
wid=$(bspc query -N -n .hidden | tail -n1)
|
||||
|
||||
#compton-trans -w $wid -o 80
|
||||
|
||||
# Reveal the terminal once all the geometric changes are complete
|
||||
bspc node "$wid" -g hidden=off -f
|
||||
|
||||
bspc rule -r $terminal:dropdown
|
||||
else
|
||||
wid=$(printf "0x%x" "$(xdotool search --classname "dropdown")")
|
||||
|
||||
# toggle visibility of dropdown menu
|
||||
bspc node "$wid" -g hidden -f
|
||||
fi
|
5
bin/tapa
5
bin/tapa
|
@ -6,7 +6,7 @@ set -euf -o pipefail
|
|||
music_dir="$HOME/Music/Albums"
|
||||
|
||||
# What should the covers be resized to in pixels
|
||||
cover_resize="100"
|
||||
cover_resize="150"
|
||||
|
||||
# What is the cover file called?
|
||||
img_reg=".*/(cover|front|folder|art).(jpg|jpeg|png|gif)$"
|
||||
|
@ -15,9 +15,8 @@ img_reg=".*/(cover|front|folder|art).(jpg|jpeg|png|gif)$"
|
|||
artist_color="##a1b56c"
|
||||
song_color="##34e2e2"
|
||||
|
||||
#title="%album%"
|
||||
form="<span color='$artist_color'>%artist%</span> - <span color='$song_color'>%title%</span>"
|
||||
# END CONFIG ----------------------------------------------------
|
||||
# END CONFIG ------------------------------------------------
|
||||
|
||||
# These are some variables we need for things to work
|
||||
song="$(mpc --format %file% current)"
|
||||
|
|
4
bin/tls
4
bin/tls
|
@ -2,7 +2,7 @@
|
|||
set -euf -o pipefail
|
||||
|
||||
[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
|
||||
if [ "$1" ]; then
|
||||
tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s "$1" && tmux $change -t "$1"); return
|
||||
if [ "$@" ]; then
|
||||
tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s "$@" && tmux $change -t "$@"); return
|
||||
fi
|
||||
session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux $change -t "$session" || echo "No sessions found."
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
PANEL_PID=$(pidof polybar)
|
||||
|
||||
if [[ $PANEL_PID ]]; then
|
||||
kill -9 $PANEL_PID
|
||||
bspc config top_padding $((0-8))
|
||||
else
|
||||
~/.config/polybar/launch.sh
|
||||
#bspc config top_padding $((5-8))
|
||||
fi
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
sleep 5
|
||||
xdotool search --class stalonetray windowunmap
|
||||
bspc config top_padding 6
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
xdotool search --class stalonetray windowmap
|
||||
#bspc config top_padding 6
|
4
bin/tsd
4
bin/tsd
|
@ -7,9 +7,9 @@ echo "$line" |
|
|||
grep -v "Saved.*variant.c:" |
|
||||
while read -r line; do
|
||||
echo "$line" | grep -q "Queued for verification (verify.c:" &&
|
||||
notify-send --app-name="Transmission Started" "${line#* * }"
|
||||
notify-send -i /home/deadguy/Pictures/.icn/trans1.png "Transmission Started" "${line#* * }"
|
||||
echo "$line" | grep -q "changed from .Incomplete. to .Complete." &&
|
||||
notify-send --app-name="Transmission Complete" "${line#* * }"
|
||||
notify-send -i /home/deadguy/Pictures/.icn/trans2.png "Transmission Complete" "${line#* * }"
|
||||
echo "$line" | systemd-cat --identifier="TransWrap" --priority=5
|
||||
done > /dev/null 2>&1
|
||||
done & disown
|
||||
|
|
4
bin/upd
4
bin/upd
|
@ -1,5 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euf -o pipefail
|
||||
|
||||
sudo pacman-mirrors -f5
|
||||
sudo pacman-mirrors -c Canada,United_States
|
||||
yay -Syu
|
||||
sudo updatedb
|
||||
locate -e --regex "\.pac(new|save)$" > ~/pacnew.log
|
||||
|
|
33
paketes.txt
33
paketes.txt
|
@ -1,6 +1,7 @@
|
|||
abook
|
||||
acpi
|
||||
advcp
|
||||
alsa-plugins
|
||||
alsa-utils
|
||||
android-file-transfer
|
||||
artyfx
|
||||
|
@ -9,47 +10,44 @@ audacity
|
|||
autoconf
|
||||
automake
|
||||
autopep8
|
||||
b43-fwcutter
|
||||
bat
|
||||
bison
|
||||
blueman
|
||||
bpython
|
||||
brandr
|
||||
bspwm
|
||||
cadence
|
||||
calf
|
||||
carla
|
||||
catdoc
|
||||
compton
|
||||
cpupower
|
||||
crda
|
||||
cronie
|
||||
ctags
|
||||
dash
|
||||
dfc
|
||||
dhclient
|
||||
dhcpcd
|
||||
dhex
|
||||
dialog
|
||||
diff-so-fancy
|
||||
discount
|
||||
dnsmasq
|
||||
docx2txt
|
||||
downgrade
|
||||
dunst
|
||||
ecryptfs-utils
|
||||
efibootmgr
|
||||
eslint
|
||||
ethtool
|
||||
exfat-utils
|
||||
f2fs-tools
|
||||
fakeroot
|
||||
fasd
|
||||
fd
|
||||
fff
|
||||
ffmpegthumbnailer
|
||||
file-roller
|
||||
filezilla
|
||||
firefox
|
||||
flex
|
||||
gcc
|
||||
ghostscript
|
||||
gimp-nufraw
|
||||
gimp-plugin-gmic
|
||||
gimp-plugin-lqr
|
||||
|
@ -71,25 +69,18 @@ hub
|
|||
hunspell-en_US
|
||||
hunspell-es_any
|
||||
hunspell-es_ar
|
||||
hwinfo
|
||||
infamousplugins
|
||||
iniparser
|
||||
inkscape
|
||||
intel-ucode
|
||||
inxi
|
||||
iputils
|
||||
ipw2100-fw
|
||||
ipw2200-fw
|
||||
ipython
|
||||
isync
|
||||
jfsutils
|
||||
jp2a
|
||||
jq
|
||||
lib32-alsa-plugins
|
||||
lib32-freeglut
|
||||
lib32-glu
|
||||
lib32-jack2
|
||||
lib32-libpulse
|
||||
libzip
|
||||
licenses
|
||||
linux-rt-manjaro
|
||||
logrotate
|
||||
|
@ -109,7 +100,6 @@ manjaro-system
|
|||
mda.lv2
|
||||
mediainfo
|
||||
memtest86+
|
||||
mhwd-db
|
||||
mkinitcpio-openswap
|
||||
mlocate
|
||||
mpc
|
||||
|
@ -124,9 +114,9 @@ nfs-utils
|
|||
nilfs-utils
|
||||
notmuch
|
||||
noto-fonts-cjk
|
||||
npm
|
||||
ntfs-3g
|
||||
oblogout
|
||||
odt2txt
|
||||
offlineimap
|
||||
openbsd-netcat
|
||||
os-prober
|
||||
|
@ -145,6 +135,7 @@ perl-term-readline-gnu
|
|||
perl-text-charwidth
|
||||
pkgbrowser
|
||||
pkgconf
|
||||
prettier
|
||||
processing
|
||||
pulseaudio-bluetooth
|
||||
pulseaudio-jack
|
||||
|
@ -165,7 +156,6 @@ python-setproctitle
|
|||
python-virtualenv
|
||||
python2-pygame-sdl2
|
||||
qt5ct
|
||||
qutebrowser
|
||||
realtime-privileges
|
||||
reiserfsprogs
|
||||
ripgrep
|
||||
|
@ -179,7 +169,6 @@ sc3-plugins
|
|||
seahorse
|
||||
shellcheck
|
||||
smartmontools
|
||||
sonic-visualiser
|
||||
source-highlight
|
||||
spectre-meltdown-checker
|
||||
sublime-text
|
||||
|
@ -192,22 +181,23 @@ texlive-formatsextra
|
|||
texlive-latexextra
|
||||
texlive-pictures
|
||||
texlive-science
|
||||
tidy
|
||||
tlp-rdw
|
||||
tlpui
|
||||
tmux
|
||||
transmission-cli
|
||||
ttf-ibm-plex
|
||||
typescript
|
||||
unace
|
||||
unarj
|
||||
uncrustify
|
||||
unrar
|
||||
urlscan
|
||||
urxvt-perls
|
||||
v86d
|
||||
vbam-sdl
|
||||
vice
|
||||
vint
|
||||
w3m
|
||||
weechat
|
||||
which
|
||||
wireless_tools
|
||||
wmctrl
|
||||
|
@ -235,6 +225,7 @@ xorg-xkill
|
|||
xorg-xprop
|
||||
xorg-xsetroot
|
||||
xorg-xwininfo
|
||||
xsel
|
||||
yapf
|
||||
yay
|
||||
youtube-dl
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
adwaita-qt5
|
||||
bashmount
|
||||
bfs
|
||||
cherry-font-git
|
||||
colort-git
|
||||
curseradio-git
|
||||
deflemask
|
||||
|
@ -14,23 +12,18 @@ gimp-plugin-export-layers
|
|||
gimp-plugin-layer-via-copy-cut
|
||||
gimp-plugin-saveforweb
|
||||
gimp-plugin-scale-layer-to-image-size
|
||||
goattracker
|
||||
godot
|
||||
gprof2dot
|
||||
gtk-theme-minwaita
|
||||
i3lock-color
|
||||
irssi-git
|
||||
lab
|
||||
lscolors-git
|
||||
modprobed-db
|
||||
ncpamixer
|
||||
neovim-drop-in
|
||||
otf-san-francisco
|
||||
pavolume-git
|
||||
perl-extract-url
|
||||
perl-uri-find
|
||||
pmount
|
||||
proggyfonts
|
||||
pymdown-extensions
|
||||
python-lolcat
|
||||
python-proc
|
||||
|
@ -38,14 +31,13 @@ python-pysdl2
|
|||
ranger-git
|
||||
realtimeconfigquickscan-git
|
||||
soulseekqt
|
||||
stylelint
|
||||
sws
|
||||
tamzen-font
|
||||
task-spooler
|
||||
terminus-font-ll2-td1
|
||||
thermald
|
||||
toilet-fonts
|
||||
transmission-remote-cli-git
|
||||
ttf-migu
|
||||
unclutter-xfixes-git
|
||||
wpa_actiond
|
||||
xcursor-alkano-default
|
||||
|
|
Reference in New Issue