" ----------
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
+ " 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
- let tmux_start = "\<Esc>Ptmux;"
- let tmux_end = "\<Esc>\\"
-
- 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
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