170 lines
4.7 KiB
VimL
170 lines
4.7 KiB
VimL
function! FixLastSpellingError()
|
|
normal! mm[s1z=`m
|
|
endfunction
|
|
|
|
function! MakeHeading(level)
|
|
if a:level == 1
|
|
normal! yypVr=
|
|
elseif a:level == 2
|
|
normal! yypVr~
|
|
endif
|
|
endfunction
|
|
|
|
function! Spelling(lang)
|
|
if a:lang == "en"
|
|
setlocal spell spelllang=en_us
|
|
setlocal spellfile=~/.vim/spell/en.utf-8.add
|
|
elseif a:lang == "sv"
|
|
setlocal spell spelllang=sv
|
|
setlocal spellfile=~/.vim/spell/sv.utf-8.add
|
|
elseif a:lang == "off"
|
|
setlocal nospell
|
|
endif
|
|
endfunction
|
|
|
|
|
|
nnoremap <Left> :echo "No left for you!"<CR>
|
|
vnoremap <Left> :<C-u>echo "No left for you!"<CR>
|
|
inoremap <Left> <C-o>:echo "No left for you!"<CR>
|
|
nnoremap <Right> :echo "No right for you!"<CR>
|
|
vnoremap <Right> :<C-u>echo "No right for you!"<CR>
|
|
inoremap <Right> <C-o>:echo "No right for you!"<CR>
|
|
nnoremap <Up> :echo "No left up you!"<CR>
|
|
vnoremap <Up> :<C-u>echo "No up for you!"<CR>
|
|
inoremap <Up> <C-o>:echo "No up for you!"<CR>
|
|
nnoremap <Down> :echo "No Down for you!"<CR>
|
|
vnoremap <Down> :<C-u>echo "No Down for you!"<CR>
|
|
inoremap <Down> <C-o>:echo "No Down for you!"<CR>
|
|
|
|
|
|
" Basic vim settings
|
|
set title
|
|
set laststatus=2
|
|
set encoding=utf-8
|
|
set autoindent
|
|
set nocompatible
|
|
set complete=.,w,b,u,t,i,kspell
|
|
syntax on
|
|
nnoremap <SPACE> <Nop>
|
|
let mapleader=" "
|
|
|
|
map <Leader>ss :call FixLastSpellingError()<CR>
|
|
map <Leader>u1 :call MakeHeading(1)<CR>
|
|
map <Leader>u2 :call MakeHeading(2)<CR>
|
|
map <Leader>ls :call Spelling("sv")<CR>
|
|
map <Leader>le :call Spelling("en")<CR>
|
|
map <Leader>lo :call Spelling("off")<CR>
|
|
|
|
|
|
filetype indent plugin on
|
|
|
|
" Global tab settings
|
|
set tabstop=4
|
|
set shiftwidth=4
|
|
set softtabstop=4
|
|
set expandtab
|
|
set relativenumber
|
|
|
|
" Pathogen
|
|
execute pathogen#infect()
|
|
|
|
" Spellcheck
|
|
|
|
" vimwiki
|
|
let wiki_1 = {}
|
|
let wiki_1.path = '~/Nextcloud/vimwiki'
|
|
let wiki_1.syntax = 'markdown'
|
|
let wiki_1.ext = '.md'
|
|
let wiki_2 = {}
|
|
let wiki_2.path = '~/Nextcloud/vimwiki/suse'
|
|
let wiki_2.syntax = 'markdown'
|
|
let wiki_2.ext = '.md'
|
|
let wiki_3 = {}
|
|
let wiki_3.path = '~/Nextcloud/vimwiki/private'
|
|
let wiki_3.syntax = 'markdown'
|
|
let wiki_3.ext = '.md'
|
|
let g:vimwiki_list = [wiki_1, wiki_2, wiki_3]
|
|
|
|
" Set to show invisibles (tabs & trailing spaces) & their highlight color
|
|
set list listchars=tab:»\ ,trail:·
|
|
|
|
" Mark characters 80+ on each line with red color
|
|
function! Highlight()
|
|
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
|
|
match OverLength /\%81v.\+/
|
|
endfunction
|
|
|
|
" remaps
|
|
noremap <Leader>_h :call Highlight()<CR>
|
|
nmap <F2> i**<C-R>=strftime("%Y-%m-%d")<CR>**<Esc>
|
|
imap <F2> **<C-R>=strftime("%Y-%m-%d")<CR>**<CR>
|
|
|
|
""""""""""""""""""""
|
|
" GnuPG Extensions "
|
|
""""""""""""""""""""
|
|
" sudo zypper install vim-plugin-gnupg
|
|
|
|
let g:GPGDefaultRecipients=[
|
|
\"Jonas Forsberg <jonas@forsberg.co>",
|
|
\"Jonas Forsberg <jonas.forsberg@suse.com>"
|
|
\]
|
|
|
|
" Tell the GnuPG plugin to armor new files.
|
|
let g:GPGPreferArmor=1
|
|
|
|
" Tell the GnuPG plugin to sign new files.
|
|
let g:GPGPreferSign=1
|
|
|
|
augroup GnuPGExtra
|
|
" Set extra file options.
|
|
autocmd BufReadCmd,FileReadCmd *.\(gpg\|asc\|pgp\) call SetGPGOptions()
|
|
" Automatically close unmodified files after inactivity.
|
|
autocmd CursorHold *.\(gpg\|asc\|pgp\) quit
|
|
augroup END
|
|
|
|
function SetGPGOptions()
|
|
" Set updatetime to 1 minute.
|
|
set updatetime=60000
|
|
" Fold at markers.
|
|
set foldmethod=marker
|
|
" Automatically close all folds.
|
|
set foldclose=all
|
|
" Only open folds with insert commands.
|
|
set foldopen=insert
|
|
endfunction
|
|
|
|
if has("autocmd")
|
|
" To spell check all git commit messages
|
|
au BufNewFile,BufRead COMMIT_EDITMSG set spelllang=en_us spell nonumber nolist wrap linebreak
|
|
|
|
" To spell check all Markdown files
|
|
autocmd FileType markdown setlocal spell
|
|
autocmd BufRead,BufNewFile *.rst setlocal spell
|
|
autocmd BufRead,BufNewFile *.txt setlocal spell
|
|
|
|
" Set filetype tab settings
|
|
autocmd FileType python,doctest set ai ts=4 sw=4 sts=4 et
|
|
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
|
|
|
|
" ShellCheck settings
|
|
autocmd FileType sh set makeprg=shellcheck\ -f\ gcc\ %
|
|
autocmd FileType sh au BufWritePost * :silent make | redraw!
|
|
autocmd FileType sh au QuickFixCmdPost [^l]* nested cwindow
|
|
autocmd FileType sh au QuickFixCmdPost l* nested lwindow
|
|
endif
|
|
|
|
|
|
" vim-instant-markdown settings
|
|
"Uncomment to override defaults:
|
|
let g:instant_markdown_slow = 0
|
|
let g:instant_markdown_autostart = 0
|
|
let g:instant_markdown_open_to_the_world = 0
|
|
let g:instant_markdown_allow_unsafe_content = 0
|
|
let g:instant_markdown_allow_external_content = 1
|
|
"let g:instant_markdown_mathjax = 1
|
|
"let g:instant_markdown_browser = "firefox --new-window"
|
|
"let g:instant_markdown_logfile = '/tmp/instant_markdown.log'
|
|
"let g:instant_markdown_autoscroll = 0
|
|
"let g:instant_markdown_port = 8888
|
|
"let g:instant_markdown_python = 1
|