" 9 using the mouse
-set mouse=ar " Use mouse in all modes, plus hit-return
+if has('mouse')
+ set mouse=ar " Use mouse in all modes, plus hit-return
+endif
" 12 messages and info
" ' - number of files for which the marks are remembered;
" " and < - maximum number of lines saved for a register;
" s - maximum size of an item in Kbytes.
+set viminfo=!,h,'50
if version < 603
- set viminfo=!,h,'50,\"1000
+ set viminfo+=\"1000
else
- set viminfo=!,h,'50,<1000,s10
+ set viminfo+=<1000,s10
endif
" c - convert viminfo to the current encoding;
if has("iconv")
- set viminfo^=c
+ set viminfo+=c
endif
" Removable media paths
" ----------
else
- if (&term =~ "linux") || ($BACKGROUND == 'DARK') || ($BACKGROUND == 'dark')
+ if (&term =~ "linux") || (&term =~ "cygwin") || (&term =~ "putty")
+ \ || ($BACKGROUND == 'DARK') || ($BACKGROUND == 'dark')
\ || has("win32")
" Background of the terminal is black or dark grey
set background=dark
endif
endif
- " Automatically set paste mode in Vim when pasting in bracketed paste mode
- " https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode
- function! WrapForTmux(s)
- if !exists('$TMUX')
- return a:s
- endif
-
- let tmux_start = "\<Esc>Ptmux;"
- let tmux_end = "\<Esc>\\"
+ " Bracketed paste mode
+ " https://github.com/ConradIrwin/vim-bracketed-paste/blob/master/plugin/bracketed-paste.vim
+ let &t_ti .= "\<Esc>[?2004h"
+ let &t_te = "\e[?2004l" . &t_te
- return tmux_start . substitute(a:s, "\<Esc>", "\<Esc>\<Esc>", 'g') . tmux_end
+ function! XTermPasteBegin(ret)
+ set pastetoggle=<f29>
+ set paste
+ return a:ret
endfunction
- let &t_SI .= WrapForTmux("\<Esc>[?2004h")
- let &t_EI .= WrapForTmux("\<Esc>[?2004l")
+ execute "set <f28>=\<Esc>[200~"
+ execute "set <f29>=\<Esc>[201~"
+ map <expr> <f28> XTermPasteBegin("i")
+ imap <expr> <f28> XTermPasteBegin("")
+ vmap <expr> <f28> XTermPasteBegin("c")
+ cmap <f28> <nop>
+ cmap <f29> <nop>
+
+ "https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode
+ " https://ttssh2.osdn.jp/manual/en/usage/tips/vim.html
+ function! WrapForScreenTmux(s)
+ if (&term =~ "screen")
+ let scr_start = "\<Esc>P"
+ let scr_end = "\<Esc>\\"
+
+ return scr_start . a:s . scr_end
+ endif
- function! XTermPasteBegin()
- set pastetoggle=<Esc>[201~
- set paste
- return ""
+ if exists('$TMUX')
+ let tmux_start = "\<Esc>Ptmux;"
+ let tmux_end = "\<Esc>\\"
+
+ return tmux_start . substitute(a:s, "\<Esc>", "\<Esc>\<Esc>", 'g') . tmux_end
+ endif
+
+ return a:s
endfunction
- inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
+ " https://vim.fandom.com/wiki/Change_cursor_shape_in_different_modes
+ let &t_EI.=WrapForScreenTmux("\e[2 q") "EI = NORMAL mode (ELSE)
+ let &t_SI.=WrapForScreenTmux("\e[6 q") "SI = INSERT mode
+ if v:version >= 800
+ let &t_SR.=WrapForScreenTmux("\e[4 q") "SR = REPLACE mode
+ endif
+
+ "Cursor settings:
+ " 1 -> blinking block
+ " 2 -> solid block
+ " 3 -> blinking underscore
+ " 4 -> solid underscore
+ " 5 -> blinking vertical bar
+ " 6 -> solid vertical bar
endif
" Multiline comments often confuse vim syntax highlighting - these maps
set nowildmenu
set wildmode=list:longest
set viminfo=!,h,'10,<100,s5
+ if has("iconv")
+ set viminfo+=c
+ endif
syntax off
highlight NonText cterm=NONE ctermfg=NONE
endfunction
" From Tip 212:
-" http://vim.wikia.com/wiki/Setting_file_attributes_without_reloading_a_buffer
+" http://vim.fandom.com/wiki/Setting_file_attributes_without_reloading_a_buffer
if executable('chmod')
function! SetExecutableBit(x)
echoerr 'Error running chmod: ' . v:shell_error
endif
checktime
+ autocmd! FileChangedShell <buffer>
endfunction
function! _BufChangedCB()
autocmd! FileChangedShell <buffer>
command! ToggleXbit if executable(expand("%:p")) | call SetExecutableBit(0) | else | call SetExecutableBit(1) | endif
endif
+function! Code()
+ setlocal expandtab tabstop=8 softtabstop=4 shiftwidth=4
+endfunction
+command! Code call Code()
+
+function! Text()
+ setlocal expandtab tabstop=8 softtabstop=3 shiftwidth=3
+endfunction
+command! Text call Text()
" ----------
" From http://slobin.pp.ru/vim/_vimrc.html
" Called automagically after every buffer read, enables fileencoding
" setting from modeline (see Tip #911:
-" http://vim.wikia.com/wiki/How_to_make_fileencoding_work_in_the_modeline)
+" http://vim.fandom.com/wiki/How_to_make_fileencoding_work_in_the_modeline)
function! AutoEncoding()
if &modified && &fileencoding != ""
call SetupEncoding(&fileencoding)
endif
endfunction
autocmd BufReadPost * call SetupSpell()
+
+ function! SaveSpell()
+ if expand('%') == expand('~/.vim/spell/en.ascii.add')
+ mkspell! -ascii %
+ else
+ mkspell! %
+ endif
+ endfunction
+ autocmd BufWritePost ~/.vim/spell/*.add call SaveSpell()
endif