Compare commits

..

4 Commits

2 changed files with 133 additions and 11 deletions

View File

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# This is for reencoding an mkv video to mp4 using an mpeg4 encoder.
# Can optionally compress the video.
if which tput >/dev/null 2>&1; then
ncolors=$(tput colors)
fi
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
RED="$(tput setaf 1)"
GREEN="$(tput setaf 2)"
YELLOW="$(tput setaf 3)"
BLUE="$(tput setaf 4)"
MAGENTA="$(tput setaf 5)"
CYAN="$(tput setaf 6)"
BOLD="$(tput bold)"
NORMAL="$(tput sgr0)"
else
RED=""
GREEN=""
YELLOW=""
BLUE=""
MAGENTA=""
CYAN=""
BOLD=""
NORMAL=""
fi
if [[ $1 == "" || $2 == "" ]]; then
printf "${BOLD}${RED}Format: $0 <compress 1|0> <filename> <optional output name>${NORMAL}\n"
exit 1
fi
compress="$1"
filename=$(basename -- "$2")
extension="${filename##*.}"
filename="${filename%.*}"
output="$3"
if [[ $output == "" ]]; then
output="${filename}_CONVERTED"
fi
printf "\n${YELLOW}${BOLD}Encoding '$filename.$extension' | compress: $compress | output: $output.mp4${NORMAL}\n"
if [[ $compress -eq 1 ]]; then
temp_output="temp_$output.mp4"
else
temp_output="$output.mp4"
fi
# convert first.
# we convert then compress instead of compressing on first pass because this results in a slightly higher bitrate.
ffmpeg -y -stats -loglevel level+error -i "$filename.$extension" -vcodec copy -acodec copy "$temp_output"
if [[ $compress -eq 1 ]]; then
compress-video 1 "$temp_output" "$output"
rm "$temp_output"
else
printf "\n"
fi
printf "${GREEN}${BOLD}Done encoding '$filename.$extension' to '$output.mp4'${NORMAL}\n\n"

80
vimrc
View File

@ -121,6 +121,8 @@ let g:campo_custom_search_args = ""
" CTAGS " CTAGS
"""""""""""""" """"""""""""""
" I use the ctags executable from https://github.com/universal-ctags/ctags-win32/releases
" If != 0 then ctag generation will always happen on a file save, otherwise " If != 0 then ctag generation will always happen on a file save, otherwise
" it'll only be triggered if the file being saved has an extension in the " it'll only be triggered if the file being saved has an extension in the
" g:campo_extensions_that_run_ctags list. " g:campo_extensions_that_run_ctags list.
@ -1064,7 +1066,7 @@ augroup END
hi def link MyNotes Notes hi def link MyNotes Notes
augroup vimrc_notices augroup vimrc_notices
au! autocmd!
autocmd Syntax * syn match MyNotices /\v<(WARNING|IMPORTANT):/ autocmd Syntax * syn match MyNotices /\v<(WARNING|IMPORTANT):/
\ containedin=.*Comment,vimCommentTitle \ containedin=.*Comment,vimCommentTitle
augroup END augroup END
@ -1099,23 +1101,65 @@ augroup END
" AsyncRun status line " AsyncRun status line
let g:airline_section_error = airline#section#create_right(['%{g:asyncrun_status}']) let g:airline_section_error = airline#section#create_right(['%{g:asyncrun_status}'])
" Display error highlighting in source after running GCC with AsyncRun " "make" value is needed for asyncrun to work with the errormarker plugin
" NOTE: error results can be cleared with <leader>cr or by hiding the build " https://github.com/skywind3000/asyncrun.vim/wiki/FAQ#can-asyncrunvim-trigger-an-autocommand-quickfixcmdpost-to-get-some-plugin-like-errormaker-processing-the-content-in-quickfix-
" result window.
let g:asyncrun_auto = "make" let g:asyncrun_auto = "make"
" Error and warning gutter characters.
let errormarker_errortext = "E" let errormarker_errortext = "E"
let errormarker_warningtext = "W" let errormarker_warningtext = "W"
" Thanks to https://forums.handmadehero.org/index.php/forum?view=topic&catid=4&id=704#3982 " Error and warning gutter character colors. See color file for the group definition.
" for the error message formats let errormarker_errortextgroup = "ErrorMsg"
let errormarker_warningtextgroup = "Notices"
"""""""""""""""""""""""""
" Custom error formats
"""""""""""""""""""""""""
" @note: You can debug the error parsing by running :ShowErrorEntries
" This will print the valid entries. You'll know parsing is correct when the
" entries have a type, line num, error message, etc.
function! s:ShowErrorEntries()
" Prints out valid quickfix errors.
redraw!
for l:d in getqflist()
if l:d.valid == 1
echomsg l:d
endif
endfor
endfunction
command -nargs=0 ShowErrorEntries call s:ShowErrorEntries()
" Jai
" "
" Microsoft MSBuild errors " Z:\path\main.jai:100,10: Error: Undeclared identifier 's1'.
set errorformat+=\\\ %#%f(%l\\\,%c):\ %m set errorformat=\\\ %#%f:%l\\,%c:\ %t%[A-z]%#:\ %m
" Microsoft compiler: cl.exe " Microsoft compiler: cl.exe
set errorformat+=\\\ %#%f(%l)\ :\ %#%t%[A-z]%#\ %m "
" Z:\path\main.cpp(2808): error C2220: the following warning is treated as an error
set errorformat+=\\\ %#%f(%l):\ %#%t%[A-z]%#\ %[A-z]%#%n:\ %m
" Microsoft MSBuild errors
"
" @note I got this off the Internet and haven't tested it yet.
"
" Z:\path\main.cpp(2808): error C2220: the following warning is treated as an error
set errorformat+=\\\ %#%f(%l\\,%c):\ %m
" Microsoft HLSL compiler: fxc.exe " Microsoft HLSL compiler: fxc.exe
"
" @note I got this off the Internet and haven't tested it yet.
" @todo Add an example
set errorformat+=\\\ %#%f(%l\\\,%c-%*[0-9]):\ %#%t%[A-z]%#\ %m set errorformat+=\\\ %#%f(%l\\\,%c-%*[0-9]):\ %#%t%[A-z]%#\ %m
"""""""""""""""""""""""""
" Build functions
"""""""""""""""""""""""""
function! HideBuildResultsAndClearErrors() function! HideBuildResultsAndClearErrors()
RemoveErrorMarkers RemoveErrorMarkers
call asyncrun#quickfix_toggle(g:quickfix_pane_height, 0) call asyncrun#quickfix_toggle(g:quickfix_pane_height, 0)
@ -1138,9 +1182,23 @@ function! ExecuteRunScript()
exec "AsyncRun! -post=call\\ StopRunTask() ./run %" exec "AsyncRun! -post=call\\ StopRunTask() ./run %"
endfunction endfunction
function! Build()
let l:extension = tolower(expand('%:e'))
if l:extension == "jai"
exec "AsyncRun! -save=2 jai %"
else
exec "AsyncRun! -save=2 ./build* %"
endif
endfunction
function! SilentBuild() function! SilentBuild()
AsyncStop AsyncStop
exec "AsyncRun! -save=2 -post=call\\ HideAsyncResults() ./build* %" let l:extension = tolower(expand('%:e'))
if l:extension == "jai"
exec "AsyncRun! -save=2 -post=call\\ HideAsyncResults() jai %"
else
exec "AsyncRun! -save=2 -post=call\\ HideAsyncResults() ./build* %"
endif
endfunction endfunction
" Show results window the moment the async job starts " Show results window the moment the async job starts
@ -1157,7 +1215,7 @@ nnoremap <leader>bc :call ToggleBuildResults()<cr>
noremap <F10> :call HideBuildResultsAndClearErrors()<cr> noremap <F10> :call HideBuildResultsAndClearErrors()<cr>
" Execute build script " Execute build script
nnoremap <leader>b :AsyncRun! -save=2 ./build* %<cr> nnoremap <leader>b :call Build()<cr>
nnoremap <F8> :call SilentBuild()<cr> nnoremap <F8> :call SilentBuild()<cr>
" Execute run script " Execute run script