Stefan Pranger
2 years ago
1 changed files with 303 additions and 0 deletions
-
303pres.vim
@ -0,0 +1,303 @@ |
|||
" presentation .vimrc from Sebastian Daschner https://www.youtube.com/watch?v=GDa7hrbcCB8 |
|||
|
|||
set encoding=utf-8 |
|||
set tabstop=2 |
|||
set shiftwidth=2 |
|||
set expandtab |
|||
set smarttab |
|||
set autoindent |
|||
set nowrap |
|||
set smartcase |
|||
set showmatch |
|||
set title |
|||
set ruler |
|||
set et |
|||
set number relativenumber |
|||
set incsearch |
|||
set hlsearch |
|||
set autoread |
|||
set autowrite |
|||
set nobackup |
|||
set nowritebackup |
|||
set noswapfile |
|||
set nocompatible |
|||
set backspace=indent,eol,start |
|||
" title required for i3 status checking, modified indicator at end |
|||
"set titlestring=%t%(\ \(%F\)%)%a\ -\ VIM%(\ %M%) |
|||
set titlestring=%(%F%)%a\ -\ VIM%(\ %M%) |
|||
set t_Co=16 |
|||
" undo cursorlinenr underline (was introduced Aug '19) |
|||
hi CursorLineNr cterm=bold |
|||
|
|||
|
|||
|
|||
" allows buffers to be hidden if you modified a buffer |
|||
set hidden |
|||
filetype off |
|||
syntax on |
|||
|
|||
set norelativenumber |
|||
set nonumber |
|||
set noshowmode |
|||
set noshowcmd |
|||
set nohidden |
|||
set noruler |
|||
|
|||
" removes possibility to define function keys that start with <Esc> |
|||
" see if has implications |
|||
"set noesckeys |
|||
|
|||
|
|||
" Vundle |
|||
"<<<<<<<<<<<<<<<<<<<< |
|||
"set rtp+=~/.vim/bundle/Vundle.vim |
|||
"call vundle#begin() |
|||
" |
|||
"" let Vundle manage Vundle, required |
|||
"Plugin 'VundleVim/Vundle.vim' |
|||
" |
|||
"Plugin 'tpope/vim-surround' |
|||
"Plugin 'tpope/vim-repeat' |
|||
" |
|||
"" UltiSnips for completion / templating |
|||
"Plugin 'SirVer/ultisnips' |
|||
" |
|||
"" Snippets are separated from the engine. Add this if you want them: |
|||
"Plugin 'sdaschner/vim-snippets' |
|||
"Plugin 'ervandew/supertab' |
|||
|
|||
let g:SuperTabDefaultCompletionType = '<C-n>' |
|||
let g:SuperTabCrMapping = 0 |
|||
let g:UltiSnipsExpandTrigger = '<tab>' |
|||
let g:UltiSnipsJumpForwardTrigger = '<tab>' |
|||
let g:UltiSnipsJumpBackwardTrigger = '<s-tab>' |
|||
|
|||
|
|||
" All of your Plugins must be added before the following line |
|||
" call vundle#end() |
|||
filetype plugin indent on |
|||
|
|||
" something messes up this setting in the plugins |
|||
set expandtab |
|||
|
|||
|
|||
|
|||
let mapleader = "," |
|||
|
|||
nmap <S-Enter> O<Esc> |
|||
nmap <CR> o<Esc> |
|||
|
|||
inoremap <Up> <NOP> |
|||
inoremap <Down> <NOP> |
|||
inoremap <Left> <NOP> |
|||
inoremap <Right> <NOP> |
|||
noremap <Up> <NOP> |
|||
noremap <Down> <NOP> |
|||
|
|||
" presentation mode |
|||
noremap <Left> :silent bp<CR> :redraw!<CR> |
|||
noremap <Right> :silent bn<CR> :redraw!<CR> |
|||
nmap <F5> :set relativenumber! number! showmode! showcmd! hidden! ruler!<CR> |
|||
nmap <F2> :call DisplayPresentationBoundaries()<CR> |
|||
nmap <F3> :call FindExecuteCommand()<CR> |
|||
|
|||
" jump to slides |
|||
nmap <F9> :call JumpFirstBuffer()<CR> :redraw!<CR> |
|||
nmap <F10> :call JumpSecondToLastBuffer()<CR> :redraw!<CR> |
|||
nmap <F11> :call JumpLastBuffer()<CR> :redraw!<CR> |
|||
|
|||
|
|||
" move lines with Ctrl + (Shift) +J/K |
|||
nnoremap <C-j> :m +1<CR> |
|||
nnoremap <C-k> :m -2<CR> |
|||
inoremap <C-j> <Esc>:m +1<CR>gi |
|||
inoremap <C-k> <Esc>:m -2<CR>gi |
|||
vnoremap <C-j> :m '>+1<CR>gvgv |
|||
vnoremap <C-k> :m '<-2<CR>gvgv |
|||
|
|||
" opens a new empty buffer |
|||
nmap <leader>t :enew<CR> |
|||
" moves to the next buffer |
|||
nmap <leader>l :bnext<CR> |
|||
" moves to the previous buffer |
|||
nmap <leader>h :bprevious<CR> |
|||
" closes the current buffer, moves to the previous one |
|||
nmap <leader>bd :bd<CR> |
|||
" forces buffer close |
|||
nmap <leader>BD :bd!<CR> |
|||
" shows all open buffers and their status |
|||
nmap <leader>bl :ls<CR> |
|||
" toggles the paste mode |
|||
nmap <C-p> :set paste!<CR> |
|||
" toggles word wrap |
|||
nmap <C-w> :set wrap! linebreak<CR> |
|||
" toggles spell checking |
|||
nmap <C-]> :set spell! spelllang=en_us<CR> |
|||
" opens the last buffer |
|||
nnoremap <leader><leader> <C-^> |
|||
" adds a line of < |
|||
nmap <leader>a :normal 20i<<CR> |
|||
" makes Ascii art font |
|||
nmap <leader>F :.!toilet --directory /usr/share/figlet -w 200 -f pagga<CR> |
|||
nmap <leader>f :.!toilet --directory /usr/share/figlet -w 200 -f future<CR>i<CR><CR><CR><ESC><C-v>jjI<tab><tab><tab><tab><tab><tab><tab><ESC> |
|||
" makes Ascii border |
|||
nmap <leader>1 :.!toilet -w 200 -f term -F border<CR> |
|||
|
|||
" system clipboard |
|||
vmap <leader>y "+y |
|||
vmap <leader>d "+d |
|||
nmap <leader>y "+yy |
|||
nmap <leader>p "+p |
|||
nmap <leader>P "+P |
|||
vmap <leader>p "+p |
|||
vmap <leader>P "+P |
|||
|
|||
nmap <leader>d <C-d> |
|||
nmap <leader>u <C-u> |
|||
vmap <leader>d <C-d> |
|||
vmap <leader>u <C-u> |
|||
|
|||
" file operations |
|||
nmap <C-s> :w<CR> |
|||
nmap <C-q> :q<CR> |
|||
|
|||
let &t_ti.="\e[1 q" |
|||
let &t_SI.="\e[5 q" |
|||
let &t_EI.="\e[1 q" |
|||
let &t_te.="\e[0 q" |
|||
|
|||
" search highlighting color |
|||
highlight Search ctermfg=grey ctermbg=red |
|||
|
|||
" removes search highlighting |
|||
nnoremap <silent> <C-l> :nohl<CR><C-l> |
|||
|
|||
" execute command |
|||
nmap <leader><Enter> !!zsh<CR> |
|||
|
|||
" AsciiDoc preview |
|||
nmap <leader>v :!asciidoc-view %<CR><CR> |
|||
|
|||
" Transparent editing of gpg encrypted files. |
|||
" By Wouter Hanegraaff |
|||
augroup encrypted |
|||
au! |
|||
|
|||
" First make sure nothing is written to ~/.viminfo while editing |
|||
" an encrypted file. |
|||
autocmd BufReadPre,FileReadPre *.gpg set viminfo= |
|||
" We don't want a swap file, as it writes unencrypted data to disk |
|||
autocmd BufReadPre,FileReadPre *.gpg set noswapfile |
|||
|
|||
" Switch to binary mode to read the encrypted file |
|||
autocmd BufReadPre,FileReadPre *.gpg set bin |
|||
autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 |
|||
" (If you use tcsh, you may need to alter this line.) |
|||
autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg --decrypt 2> /dev/null |
|||
|
|||
" Switch to normal mode for editing |
|||
autocmd BufReadPost,FileReadPost *.gpg set nobin |
|||
autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save |
|||
autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r") |
|||
|
|||
" Convert all text to encrypted text before writing |
|||
" (If you use tcsh, you may need to alter this line.) |
|||
autocmd BufWritePre,FileWritePre *.gpg '[,']!gpg --default-recipient-self -ae 2>/dev/null |
|||
" Undo the encryption so we are back in the normal text, directly |
|||
" after the file has been written. |
|||
autocmd BufWritePost,FileWritePost *.gpg u |
|||
augroup END |
|||
|
|||
function! JumpFirstBuffer() |
|||
execute "buffer 1" |
|||
endfunction |
|||
|
|||
function! JumpSecondToLastBuffer() |
|||
execute "buffer " . (len(Buffers()) - 1) |
|||
endfunction |
|||
|
|||
function! JumpLastBuffer() |
|||
execute "buffer " . len(Buffers()) |
|||
endfunction |
|||
|
|||
function! Buffers() |
|||
let l:buffers = filter(range(1, bufnr('$')), 'bufexists(v:val)') |
|||
return l:buffers |
|||
endfunction |
|||
|
|||
" Automatically source an eponymous <file>.vim or <file>.<ext>.vim if it exists, as a bulked-up |
|||
" modeline and to provide file-specific customizations. |
|||
function! s:AutoSource() |
|||
let l:testedScripts = ['syntax.vim'] |
|||
if expand('<afile>:e') !=# 'vim' |
|||
" Don't source the edited Vimscript file itself. |
|||
call add(l:testedScripts, 'syntax.vim') |
|||
endif |
|||
|
|||
for l:filespec in l:testedScripts |
|||
if filereadable(l:filespec) |
|||
execute 'source' fnameescape(l:filespec) |
|||
endif |
|||
endfor |
|||
|
|||
call FindExecuteCommand() |
|||
endfunction |
|||
augroup AutoSource |
|||
autocmd! BufNewFile,BufRead * call <SID>AutoSource() |
|||
augroup END |
|||
|
|||
|
|||
set foldtext=SimpleFoldText() |
|||
set fillchars=fold:\ |
|||
function SimpleFoldText() |
|||
let line = getline(v:foldstart) |
|||
let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g') |
|||
return sub . ' >>>>>>' |
|||
endfunction |
|||
|
|||
set foldlevelstart=20 |
|||
set foldmethod=expr |
|||
set foldexpr=ListFolds() |
|||
|
|||
function! ListFolds() |
|||
let thisline = getline(v:lnum) |
|||
if match(thisline, '^- ') >= 0 |
|||
return ">1" |
|||
elseif match(thisline, '^ - ') >= 0 |
|||
return ">2" |
|||
elseif match(thisline, '^ - ') >= 0 |
|||
return ">3" |
|||
elseif match(thisline, '^ - ') >= 0 |
|||
return ">4" |
|||
elseif match(thisline, '^ - ') >= 0 |
|||
return ">5" |
|||
endif |
|||
return "0" |
|||
endfunction |
|||
|
|||
|
|||
let g:presentationBoundsDisplayed = 0 |
|||
function! DisplayPresentationBoundaries() |
|||
if g:presentationBoundsDisplayed |
|||
match |
|||
set colorcolumn=0 |
|||
let g:presentationBoundsDisplayed = 0 |
|||
else |
|||
highlight lastoflines ctermbg=darkred |
|||
highlight topicborder ctermbg=darkblue |
|||
match lastoflines /\%23l/ |
|||
match topicborder /\%9l/ |
|||
set colorcolumn=13,80 |
|||
let g:presentationBoundsDisplayed = 1 |
|||
endif |
|||
endfunction |
|||
|
|||
function! FindExecuteCommand() |
|||
let line = search('\S*!'.'!:.*') |
|||
if line > 0 |
|||
let command = substitute(getline(line), "\S*!"."!:*", "", "") |
|||
execute "silent !". command |
|||
execute "normal gg0" |
|||
redraw |
|||
endif |
|||
endfunction |
Write
Preview
Loading…
Cancel
Save
Reference in new issue