• 欢迎光临~

迷你完整实例__vimrc

开发技术 开发技术 2022-11-15 次浏览

自用vimrc


set nocompatible
color gruvbox
color gruvbox
    set guifont=Hack:h14
    set guifontwide=楷体:h16
else
    color desert
    set guifont=DejaVu Sans Mono 14
endif
map <leader>sw :set wrap<cr>
map <leader>sn :set nowrap<cr>
noremap gj j
noremap gk k
noremap j gj
noremap k gk
noremap Q q
autocmd! bufwritepost $MYVIMRC source % 
map <leader>vi :tabedit ~/.vimrc<cr>
 au BufReadPost *
              endif
set synmaxcol=1000
set noswapfile
set textwidth=0
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1   
set fileformats=unix,dos,mac
set fenc=utf-8
set termencoding=utf-8
set encoding=utf-8   
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
endif
source $VIMRUNTIME/macros/matchit.vim
if v:lang =~? '^(zh)|(ja)|(ko)'
endif   
set magic    
set nobomb
set autochdir 
set history=1000
set undolevels=1000
let g:gruvbox_italic=0
syntax on	    
set cursorline                  
set cursorcolumn                
set number    
set relativenumber
autocmd InsertEnter * :set norelativenumber number
autocmd InsertLeave * :set relativenumber
set smartindent
set autoindent
filetype on 
filetype plugin on
set tabstop=2 
set softtabstop=2
set shiftwidth=2
autocmd FileType xml setlocal shiftwidth=2 tabstop=2
autocmd FileType html setlocal shiftwidth=2 tabstop=2
autocmd FileType javascript setlocal shiftwidth=2 tabstop=2
autocmd FileType css setlocal shiftwidth=2 tabstop=2
autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4
set list
set listchars=tab:>>,trail:.
set so=3 
set backspace=indent,eol,start
set display=lastline 
set vb t_vb=
set wildmenu
set wildmode=longest,list,full
set mat=2
set virtualedit=all
set formatoptions=nMBj 
set selectmode=mouse,key
set selection=exclusive
set mouse=a 
set autoread 
set hlsearch
set incsearch
set ignorecase smartcase
set showmatch
set visualbell
set showmode
set showcmd 
set ruler 
set laststatus=2 
set tgc  
au bufwritepost  * hi statusline guibg=lightgreen
au InsertLeave   * hi statusline guibg=orange
au InsertEnter   * hi statusline guibg=red
au  TextChanged  * hi statusline guibg=red
au  TextChangedI * hi statusline guibg=red
au  TextChangedP * hi statusline guibg=red
hi statusline guibg=gray
let s_String=s_Ascii.s_Encoding.s_FileFormat.s_FileType.s_Ruler2
set statusline=%!s_String
map <leader>2 @q
map <leader>ct o#include<stdio.h><cr>int main()<cr>{<cr>}<c-c>O
map <leader>gacp :!git acp<cr><cr> 
map <leader>tex :Texplore<cr>
map <leader>db  :g/^$/d
map <leader>vs       :vsplit 
nmap <leader>== =it
map <leader>[[ i[!]<c-c>
map <leader>]] i[?]<c-c>
map <leader>[] <c-c>ebi[<c-c>lea]<c-c>
map <leader>() <c-c>ebi(<c-c>lea)<c-c>
map <leader>{} <c-c>ebi{<c-c>lea}<c-c>
map <leader><> <c-c>ebi<<c-c>lea><c-c>
map <leader>[1 ^i[<c-c>A]<c-c>
vmap <leader>[1 xi[<c-c>pa]<c-c>
map <leader>[! i[!]<c-c>
map <leader>[? i[?]<c-c>
             
map <leader>[x i[✘]<c-c>
map <leader>[/ i[✔]<c-c>
map <leader>[7 i[x]<c-c>
map <leader>[* i[/]<c-c>
 
map <leader>[- i[-_-]<c-c>
map <leader>[6 i[^_^]<c-c>
map <leader>[8 i[*_*]<c-c>
map <leader>[4 i[$_$]<c-c>
map <leader>00 a);<CR><c-c>
map  <leader>{ o#{<c-c>
map  <leader>} o#}<c-c>
map <leader>----      <c-c>o------------------------<c-c>
map <leader>---       <c-c>o------------<c-c>
map <leader>--        <c-c>o------<c-c>
map <leader>-         <c-c>o---<c-c>
map <leader>____      <c-c>o________________________<c-c>
map <leader>___       <c-c>o____________<c-c>
map <leader>__        <c-c>o______<c-c>
map <leader>_         <c-c>o___<c-c>
noremap <leader>zf zfat
map <leader>zz $l?{<CR>zf%
au BufRead * set fmr=<z>,</z>
au BufRead *.vim set fmr={{{,}}}
au BufRead * set fdm=marker
au BufRead * call timer_start(1000, { tid -> execute('set fdm=manual')})
au BufRead * call timer_start(1500, { tid -> execute('set fmr={{{,}}}')})
nnoremap <silent> <leader>sy
            	 syntax off <BAR>
             else <BAR>  
            	 syntax enable <BAR>
             endif<CR>h 
map <leader>; :
map <leader>q :quit<CR>
map <leader>w :w<CR>:set fdm=manual<cr><c-c>
map <leader>ta :tabedit 
map  <leader>no :nohlsearch<CR>
map <leader>gv ggVG
imap <leader>gv <c-c>ggVG
map <leader>jj <C-W>j
map <leader>kk <C-W>k
map <leader>hh <C-W>h
map <leader>ll <C-W>l
map <leader>bn :bnext<CR>
map <leader>bp :bprevious<CR>
map <leader>tn :tabnext<CR>
map <leader>tp :tabprev<CR>
vnoremap <tab> >gv
vnoremap <s-tab> <gv
map <leader><UP> <C-W>+
map <leader><DOWN> <C-W>-
map <leader><Left> <C-W><
map <leader><Right> <C-W>>
func! Double_single()
     if (&filetype == 'vim')
     else
         normal mz
        silent! :s/%V~/~/g
        silent! :s/%V`/`/g
        silent! :s/%V!/!/g
        silent! :s/%V@/@/g
        silent! :s/%V#/#/g
        silent! :s/%V¥/$/g
        silent! :s/%V%/%/g
        silent! :s/%V^/^/g
        silent! :s/%V&/&/g
        silent! :s/%V*/*/g
        silent! :s/%V(/(/g 
        silent! :s/%V)/)/g
        silent! :s/%V-/-/g
        silent! :s/%V_/_/g
        silent! :s/%V+/+/g
        silent! :s/%V=/=/g
        silent! :s/%V{/{/g
        silent! :s/%V}/}/g
        silent! :s/%V[/[/g
        silent! :s/%V]/]/g
        silent! :s/%V:/:/g
        silent! :s/%V;/;/g
        silent! :s/%V'/'/g	 
        silent! :s/%V|/|/g
        silent! :s/%V\//g
        silent! :s/%V</</g
        silent! :s/%V,/,/g
        silent! :s/%V>/>/g
        silent! :s/%V././g
        silent! :s/%V?/?/g
        silent! :s/%V////g
        silent! :s/%V / /g
        silent! :s/%V0/0/g
        silent! :s/%V1/1/g
        silent! :s/%V2/2/g
        silent! :s/%V3/3/g
        silent! :s/%V4/4/g
        silent! :s/%V5/5/g
        silent! :s/%V6/6/g
        silent! :s/%V7/7/g
        silent! :s/%V8/8/g
        silent! :s/%V9/9/g
        silent! :s/%Va/a/g
        silent! :s/%Vb/b/g
        silent! :s/%Vc/c/g
        silent! :s/%Vd/d/g
        silent! :s/%Ve/e/g
        silent! :s/%Vf/f/g
        silent! :s/%Vg/g/g
        silent! :s/%Vh/h/g
        silent! :s/%Vi/i/g
        silent! :s/%Vj/j/g
        silent! :s/%Vk/k/g
        silent! :s/%Vl/l/g
        silent! :s/%Vm/m/g
        silent! :s/%Vn/n/g
        silent! :s/%Vo/o/g
        silent! :s/%Vp/p/g
        silent! :s/%Vq/q/g
        silent! :s/%Vr/r/g
        silent! :s/%Vs/s/g
        silent! :s/%Vt/t/g
        silent! :s/%Vu/u/g
        silent! :s/%Vv/v/g
        silent! :s/%Vw/w/g
        silent! :s/%Vx/x/g
        silent! :s/%Vy/y/g
        silent! :s/%Vz/z/g
        silent! :s/%VA/A/g
        silent! :s/%VB/B/g
        silent! :s/%VC/C/g
        silent! :s/%VD/D/g
        silent! :s/%VE/E/g
        silent! :s/%VF/F/g
        silent! :s/%VG/G/g
        silent! :s/%VH/H/g
        silent! :s/%VI/I/g
        silent! :s/%VJ/J/g
        silent! :s/%VK/K/g
        silent! :s/%VL/L/g
        silent! :s/%VM/M/g
        silent! :s/%VN/N/g
        silent! :s/%VO/O/g
        silent! :s/%VP/P/g
        silent! :s/%VQ/Q/g
        silent! :s/%VR/R/g
        silent! :s/%VS/S/g
        silent! :s/%VT/T/g
        silent! :s/%VU/U/g
        silent! :s/%VV/V/g
        silent! :s/%VW/W/g
        silent! :s/%VX/X/g
        silent! :s/%VY/Y/g
        silent! :s/%VZ/Z/g
        silent! :s/%V。/./g
        silent! :s/%V—/_/g
        silent! :s/%V【/[/g
        silent! :s/%V】/]/g
        silent! :s/%V‘/'/g  
        silent! :s/%V’/'/g  
        silent! :s/%V、/\/g 
        silent! :s/%V《/</g
        silent! :s/%V》/>/g    
         normal 'z
     endif
endfunc
map  <F3> 0v$:call Double_single()<CR>
vmap  <F3>:call Double_single()<CR>
func! Addnums()    
    :g/^/ s//=line('.').' '/
endfunc
func! DeleAllDupLine()
    if (&filetype != 'vim')
        :sort
        :%s/^(.+)$n1//
    endif
endfunc
map <leader>tb :Tabularize /
map <leader>zt :Tabularize /^^.<cr>
let g:interestingWordsGUIColors = ['#8CCBEA', '#A4E57E', '#FFDB72', '#FF7272', '#FFB3FF', '#9999FF']
let g:interestingWordsTermColors = ['154', '121', '211', '137', '214', '222']
map <leader>bf :ter ++close ++hidden firefox % <cr>
map <leader>bc :ter ++close ++hidden ++norestore chrome.exe % <cr>
let g:vim_markdown_folding_disabled = 1
let g:vim_markdown_conceal = 0
let g:vim_markdown_math = 1
let g:vim_markdown_conceal_code_blocks = 0
let g:apc_enable_ft = {'*':1}
set cpt=.,k,w,b
set completeopt=menu,menuone,noselect
set shortmess+=c
let g:vim_dict_config = {'html':'html,javascript,css', 'markdown':'text'}
func! CompileRun()
        if &filetype == 'c' 
            exec '!gcc % -o %<'
            exec '!%<'
        elseif &filetype == 'cpp'
            exec '!g++ % -o %<'
            exec '!%<'
        elseif &filetype == 'python'
            exec '!python %'
        elseif &filetype == 'html'
            :AsyncRun % 
        elseif &filetype == 'java'
            exec '!javac % :!java %:r'
        elseif &filetype == 'javascript'
            exec '!node %'
        endif
    else
        if &filetype == 'c' 
            exec '!g++ % -o %<'
            exec '!time ./%<'
        elseif &filetype == 'cpp'
            exec '!g++ % -o %<'
            exec '!time ./%<'
        elseif &filetype == 'python'
            exec '!time python %'
        elseif &filetype == 'html'
            :AsyncRun chromium % 
        elseif &filetype == 'java'
            exec '!javac %'
            exec '!java %<'
        elseif &filetype == 'sh'
            :!time bash %
        endif
    endif
endfunc 
map <leader>co :call CompileRun()<cr>
autocmd BufNewFile,BufReadPre *.java nmap <leader>rn :!javac %:!java %:r
map <leader>nn vit<c-c>k$ll
map <leader>mm zfatzo$ll
nmap <leader>zj :tabedit src/zsnote.js<cr>
nmap <leader>log /^ *console.log<CR>
nmap <leader>vt     vitk$oj0
map <leader>sh /<h>.*
map <leader>sf /function.*
noremap <leader>dn      o<dnote><cr></dnote><c-c>k
noremap <leader>dr      o<droast><cr></droast><c-c>k
noremap <leader>z      o<z><cr></z><c-c>k
noremap <leader>d      o<d><cr></d><c-c>k
noremap <leader>c      o<c><cr></c><c-c>k
noremap <leader>cz      o<cc><cr></cc><c-c>k
noremap <leader>zd      o<z><cr></z><c-c>ddk
noremap <leader>cd      o<c><cr></c><c-c>ddk
noremap <leader>or      o<or><cr></or><c-c>ddk
noremap <leader>ur      o<ur><cr></ur><c-c>ddk
noremap <leader>e      o<textarea><cr></textarea><c-c>2k
noremap <leader>pr      o<pre><cr></pre><c-c>2k
map <leader>te      ;e<cr>;sc2dd
noremap <leader>r      o<r><cr></r><c-c>2k
noremap <leader>l      o<l><cr></l><c-c>2k
noremap <leader>t      o<t><cr></t><c-c>2k
noremap <leader>m      o<m><cr></m><c-c>2k
noremap <leader>md      o<md><cr></md><c-c>2k
noremap <leader>mer      o<mer><cr></mer><c-c>2k
noremap <leader>v      o<v><cr></v><c-c>2k
noremap <leader>u      o<u><cr></u><c-c>2k
noremap <leader>ul      o<ul><cr></ul><c-c>2k
noremap <leader>hl      o<hl><cr></hl><c-c>2k
noremap <leader>md      o<md><cr></md><c-c>2k
noremap <leader>mi      o<mi><cr></mi><c-c>2k
noremap <leader>z0     o<z0><cr></z0><c-c>2k
noremap <leader>d0     o<d0><cr></d0><c-c>2k
noremap <leader>c0     o<c0><cr></c0><c-c>2k
noremap <leader>e0     o<e0><cr></e0><c-c>2k
noremap <leader>r0     o<r0><cr></r0><c-c>2k
noremap <leader>l0     o<l0><cr></l0><c-c>2k
noremap <leader>t0     o<t0><cr></t0><c-c>2k
noremap <leader>m0     o<m0><cr></m0><c-c>2k
noremap <leader>u0     o<u0><cr></u0><c-c>2k
noremap <leader>v0     o<v0><cr></v0><c-c>2k
vmap <leader>z xk;z<cr>p
vmap <leader>d xk;d<cr>p
vmap <leader>c xk;c<cr>p
vmap <leader>e xk;e<cr>p
vmap <leader>r xk;r<cr>p
vmap <leader>l xk;l<cr>p
vmap <leader>t xk;t<cr>p
vmap <leader>m xk;m<cr>p
vmap <leader>v xk;v<cr>p
vmap <leader>u xk;u<cr>p
vmap <leader>z0 xk;z0<cr>p
vmap <leader>d0 xk;d0<cr>p
vmap <leader>c0 xk;c0<cr>p
vmap <leader>e0 xk;e0<cr>p
vmap <leader>r0 xk;r0<cr>p
vmap <leader>l0 xk;l0<cr>p
vmap <leader>t0 xk;t0<cr>p
vmap <leader>m0 xk;m0<cr>p
vmap <leader>v0 xk;v0<cr>p
vmap <leader>u0 xk;u0<cr>p
noremap <leader>zp      o<zp><cr></zp><c-c>
noremap <leader>dp      o<dp><cr></dp><c-c>
map <leader>z1 ^i<z1><c-c>A</z1><c-c>
vmap <leader>z1 xi<z1><c-c>pa</z1><c-c>
map <leader>d1 ^i<d1><c-c>A</d1><c-c>
vmap <leader>d1 xi<d1><c-c>pa</d1><c-c>
map <leader>c1 ^i<c1><c-c>A</c1><c-c>
vmap <leader>c1 xi<c1><c-c>pa</c1><c-c>
map <leader>e1 ^i<e1><c-c>A</e1><c-c>
vmap <leader>e1 xi<e1><c-c>pa</e1><c-c>
map <leader>r1 ^i<r1><c-c>A</r1><c-c>
vmap <leader>r1 xi<r1><c-c>pa</r1><c-c>
map <leader>l1 ^i<l1><c-c>A</l1><c-c>
vmap <leader>l1 xi<l1><c-c>pa</l1><c-c>
map <leader>m1 ^i<m1><c-c>A</m1><c-c>
vmap <leader>m1 xi<m1><c-c>pa</m1><c-c>
map <leader>v1 ^i<v1><c-c>A</v1><c-c>
vmap <leader>v1 xi<v1><c-c>pa</v1><c-c>
map <leader>u1 ^i<u1><c-c>A</u1><c-c>
vmap <leader>u1 xi<u1><c-c>pa</u1><c-c>
map <leader>z2 ^i<z2><c-c>A</z2><c-c>
vmap <leader>z2 xi<z2><c-c>pa</z2><c-c>
map <leader>d2 ^i<d2><c-c>A</d2><c-c>
vmap <leader>d2 xi<d2><c-c>pa</d2><c-c>
map <leader>c2 ^i<c2><c-c>A</c2><c-c>
vmap <leader>c2 xi<c2><c-c>pa</c2><c-c>
map <leader>e2 ^i<e2><c-c>A</e2><c-c>
vmap <leader>e2 xi<e2><c-c>pa</e2><c-c>
map <leader>r2 ^i<r2><c-c>A</r2><c-c>
vmap <leader>r2 xi<r2><c-c>pa</r2><c-c>
map <leader>l2 ^i<l2><c-c>A</l2><c-c>
vmap <leader>l2 xi<l2><c-c>pa</l2><c-c>
map <leader>m2 ^i<m2><c-c>A</m2><c-c>
vmap <leader>m2 xi<m2><c-c>pa</m2><c-c>
map <leader>u2 ^i<u2><c-c>A</u2><c-c>
vmap <leader>u2 xi<u2><c-c>pa</u2><c-c>
map <leader>cc0 ^i<cc><c-c>A</cc><c-c>
vmap <leader>cc0 xi<cc><c-c>pa</cc><c-c>
map <leader>cc1 ^i<cc1><c-c>A</cc1><c-c>
vmap <leader>cc1 xi<cc1><c-c>pa</cc1><c-c>
map <leader>cc2 ^i<cc2><c-c>A</cc2><c-c>
vmap <leader>cc2 xi<cc2><c-c>pa</cc2><c-c>
map <leader>k ^i<k><c-c>A</k><c-c>
map <leader>z1x :s/<z1>//<cr><c-c>:s/</z1> ?$//g<cr><c-c>
map <leader>d1x :s/<d1>//<cr><c-c>:s/</d1> ?$//g<cr><c-c>
map <leader>c1x :s/<c1>//<cr><c-c>:s/</c1> ?$//g<cr><c-c>
map <leader>e1x :s/<e1>//<cr><c-c>:s/</e1> ?$//g<cr><c-c>
map <leader>r1x :s/<r1>//<cr><c-c>:s/</r1> ?$//g<cr><c-c>
map <leader>l1x :s/<l1>//<cr><c-c>:s/</l1> ?$//g<cr><c-c>
map <leader>m1x :s/<m1>//<cr><c-c>:s/</m1> ?$//g<cr><c-c>
map <leader>z2x :s/<z2>//<cr><c-c>:s/</z2> ?$//g<cr><c-c>
map <leader>d2x :s/<d2>//<cr><c-c>:s/</d2> ?$//g<cr><c-c>
map <leader>c2x :s/<c2>//<cr><c-c>:s/</c2> ?$//g<cr><c-c>
map <leader>e2x :s/<e2>//<cr><c-c>:s/</e2> ?$//g<cr><c-c>
map <leader>r2x :s/<r2>//<cr><c-c>:s/</r2> ?$//g<cr><c-c>
map <leader>l2x :s/<l2>//<cr><c-c>:s/</l2> ?$//g<cr><c-c>
map <leader>m2x :s/<m2>//<cr><c-c>:s/</m2> ?$//g<cr><c-c>
map <leader>mg o<m>../gw_zsnote_m0/.jpg</m><c-c>
map <leader>h  I<h><c-c>A</h><c-c>
map <leader>hx :s/<h>//<cr><c-c>:s/</h> ?$//g<cr><c-c>
noremap <leader>di      o<div><cr></div><c-c>
noremap <leader>sc      o<script><cr></script><c-c>k<c-c>==j==
noremap <leader>st      o<style><cr></style><c-c>
noremap <leader>lin      o<link href='' rel='stylesheet'></link><c-c>
noremap <leader>b <c-c>^i<b><c-c>A</b><c-c>
vmap <leader>b xi<b><c-c>pa</b><c-c>
map <leader>bw ebi<b><c-c>lea</b><c-c>
map <leader>bx :s/<b>//<cr><c-c>:s/</b> ?$//g<cr><c-c>
noremap <leader>li <c-c>^i<li><c-c>A</li><c-c>
vmap <leader>li xi<li><c-c>pa</li><c-c>
map <leader>liw ebi<li><c-c>lea</li><c-c>
map <leader>lix :s/<li>//<cr><c-c>:s/</li> ?$//g<cr><c-c>
noremap <leader>mli <c-c>^i<mli><c-c>A</mli><c-c>
vmap <leader>mli xi<mli><c-c>pa</mli><c-c>
map <leader>mliw ebi<mli><c-c>lea</mli><c-c>
map <leader>mlix :s/<mli>//<cr><c-c>:s/</mli> ?$//g<cr><c-c>
noremap <leader>mlc <c-c>^i<mlc><c-c>o</mlc><c-c>
map <leader>ti  I<title><c-c>A</title><c-c>
map <leader>h0  I<h0><c-c>A</h0><c-c>
map <leader>h1  I<h1><c-c>A</h1><c-c>
map <leader>h2  I<h0><c-c>A</h2><c-c>
map <leader>h3  I<h3><c-c>A</h3><c-c>
map <leader>tix :s/<titile>//<cr><c-c>:s/</titile> ?$//g<cr><c-c>
map <leader>h0x :s/<h0>//<cr><c-c>:s/</h0> ?$//g<cr><c-c>
map <leader>h1x :s/<h1>//<cr><c-c>:s/</h1> ?$//g<cr><c-c>
map <leader>h2x :s/<h2>//<cr><c-c>:s/</h2> ?$//g<cr><c-c>
map <leader>h3x :s/<h3>//<cr><c-c>:s/</h3> ?$//g<cr><c-c>
map <leader>< <c-c>^i<<c-c>A><c-c>
vmap <leader>< xi<<c-c>pa><c-c>
map <leader><w <c-c>ebi<<c-c>lea><c-c>
noremap <leader>' <c-c>^i'<c-c>A'<c-c>
vmap <leader>' xi'<c-c>pa'<c-c>
map <leader>'w <c-c>ebi'<c-c>lea'<c-c>
noremap <leader>[ <c-c>^i[<c-c>A]<c-c>
vmap <leader>[ xi[<c-c>pa]<c-c>
map <leader>[w <c-c>ebi[<c-c>lea]<c-c>
noremap <leader>{ <c-c>^i{<c-c>A}<c-c>
vmap <leader>{ xi{<c-c>pa}<c-c>
map <leader>{w <c-c>ebi{<c-c>lea}<c-c>
noremap <leader>( <c-c>^i(<c-c>A)<c-c>
vmap <leader>( xi(<c-c>pa)<c-c>
map <leader>(w <c-c>ebi(<c-c>lea)<c-c>
noremap <leader>< <c-c>^i<<c-c>A><c-c>
vmap <leader>< xi<<c-c>pa><c-c>
map <leader><w <c-c>ebi<<c-c>lea><c-c>
nmap <leader>go mz:g/<goto>/d<cr>'zo<goto></goto><c-c>;no
map <leader>beg obegin{aligned}<CR>end{aligned}<c-c>
noremap <leader>o o<esc>
map <leader>vl ;vt<c-v>^o^<s-i>|<c-c>;vt;hz;no
map <leader>es ;scl;vt;hzgv=<c-c>
fun! F_html_t()
    silent! :s/%V</&lt;/g
    silent! :s/%V>/&gt;/g
endfunc
fun! F_t_html()
    silent! :s/%V&lt;/</g
    silent! :s/%V&gt;/>/g
endfunc 
fun! F_html_d()
    silent! :s/</</g 
    silent! :s/>/>/g 
endfunc
fun! F_html_d_v()
    silent! :s/%V[<>]/={'<':'<','>':'>'}[submatch(0)]/g 
endfunc
fun! F_d_html()
    silent! :s/[<>]/={'<':'<','>':'>'}[submatch(0)]/g 
endfunc     
fun! F_d_html_v()
    silent! :s/%V[<>]/={'<':'<','>':'>'}[submatch(0)]/g 
endfunc     
fun! F_html_dd()
    silent! :s/[<>]/={'<':'‹','>':'›'}[submatch(0)]/g 
endfunc
fun! F_html_dd_v()
    silent! :s/%V[<>]/={'<':'‹','>':'›'}[submatch(0)]/g 
endfunc
fun! F_dd_html()
    silent! :s/[‹›]/={'‹':'<','›':'>'}[submatch(0)]/g 
endfunc     
fun! F_dd_html_v()
    silent! :s/%V[‹›]/={'‹':'<','›':'>'}[submatch(0)]/g 
endfunc     
fun! F_html_ddd()
    silent! :s/[<>]/={'<':'〈','>':'〉'}[submatch(0)]/g 
endfunc
fun! F_html_ddd_v()
    silent! :s/%V[<>]/={'<':'〈','>':'〉'}[submatch(0)]/g 
endfunc
fun! F_ddd_html()
    silent! :s/[〈〉]/={'〈':'<','〉':'>'}[submatch(0)]/g 
endfunc     
fun! F_ddd_html_v()
    silent! :s/%V[〈〉]/={'〈':'<','〉':'>'}[submatch(0)]/g 
endfunc     
map <leader>ht :call F_html_t()<CR>
map <leader>th :call F_t_html()<CR>
map <leader>hd :call F_html_dd()<CR>
vmap <leader>hd :call F_html_dd_v()<CR>
map <leader>dh :call F_dd_html()<CR>
vmap <leader>dh :call F_dd_html_v()<CR>
map <leader>hz :call F_html_ddd()<CR>
vmap <leader>hz :call F_html_ddd_v()<CR>
map <leader>zh :call F_ddd_html()<CR>
vmap <leader>zh :call F_ddd_html_v()<CR>
map <leader>hzz :call F_html_d()<CR>
vmap <leader>hzz :call F_html_d_v()<CR>
map <leader>zzh :call F_d_html()<CR>
vmap <leader>zzh :call F_d_html_v()<CR>
fun! F_comment()
    if &filetype == 'c' 
      silent! :s/(^s*)tempcct/1/// 
    elseif &filetype == 'cpp'
      silent! :s/(^s*)tempcct/1/// 
    elseif &filetype == 'python'
      silent! :s/(^s*)tempcct/1#/ 
   elseif &filetype == 'vim'
   elseif &filetype == 'javascript'
     silent! :s/(^s*)tempcct/1/// 
   elseif &filetype == 'html'
    silent! :s/<!--//g
    silent! :s/--> *$//g
    silent! :s/(^s*)tempcct(.*)/1<!--2-->/
   elseif &filetype == 'css'
      silent! :s//*//g
      silent! :s/*/ *$//g
      silent! :s/(^s*)tempcct(.*)/1/*2*//
    elseif &filetype == 'sh'
     silent! :s/(^s*)tempcct/1#/ 
    elseif &filetype == 'perl'
     silent! :s/(^s*)tempcct/1#/ 
 else
     silent! :s/(^s*)tempcct/1/// 
    endif
endfunc
fun! F_ucomment()
    if &filetype == 'c' 
      silent! :s///// 
    elseif &filetype == 'cpp'
      silent! :s/////
    elseif &filetype == 'sh'
      silent! :s/#//
    elseif &filetype == 'python'
      silent! :s/#//
    elseif &filetype == 'vim'
    elseif &filetype == 'javascript'
      silent! :s///// 
    elseif &filetype == 'html'
      silent! :s/<!--//g
      silent! :s/-->([^-->]*)$/1/g
    elseif &filetype == 'css'
      silent! :s//*//g
      silent! :s/*/([^*/]*)*$/1/g
  else
      silent! :s/tempcct// 
    endif                                                                              
endfunc
map <leader>cu :call F_ucomment()<CR>
map <leader>cc ^itempcct<c-c>:call F_comment()<cr> 
vmap <leader>cc o^<c-v><c-v>gv<s-i>tempcct<c-c>gv:call F_comment()<cr>
fun! F_commentjs()
    silent! :s/(^ *)tempcct/1/// 
endfunc
fun! F_ucommentjs()
    silent! :s///// 
endfunc
map <leader>cj ^itempcct<c-c>:call F_commentjs()<cr> 
vmap <leader>cj o^<c-v><c-v>gv<s-i>tempcct<c-c>gv:call F_commentjs()<cr>
map <leader>cju :call F_ucommentjs()<CR>
fun! F_commentcss()
      silent! :s//*//g
      silent! :s/*/ *$//g
      silent! :s/(^ *)tempcct(.*)/1/*2*//
endfunc
fun! F_ucommentcss()
      silent! :s//*//g
      silent! :s/*/([^*/]*)*$/1/g
endfunc
map <leader>cs ^itempcct<c-c>:call F_commentcss()<cr> 
vmap <leader>cs o^<c-v><c-v>gv<s-i>tempcct<c-c>gv:call F_commentcss()<cr>
map <leader>csu :call F_ucommentcss()<CR>
fun! F_dd_tb()
    silent! :s/|/<tr> <td>
    silent! :s/|/</td> <td>/g
    silent! :s/<td>s*n/</tr>r
endfunc     
fun! F_tb_dd()
    silent! :s/<tr>s*<td>/|
    silent! :s/</td>s*<td>/|/g
    silent! :s/</td>s*</tr>/|
endfunc     
map <leader>dtb :call F_dd_tb()<CR>
map <leader>tbd :call F_tb_dd()<CR>
func! F_tag()
    silent! :s/<div(.*)>/<z1>/g
    silent! :s/</zs*>/</z>/g
endfunc
func! F_tag2()
    silent! :s/<h3(.*)>/<h31>/g
    silent! :s/</h3s*>/</h3>/g
endfunc
map <leader>rt :call F_tag()<CR>
map <leader>rt2 :call F_tag2()<CR>
fun! F_tab()
    if &filetype == 'python'
      silent! :s/t/    /g
    else 
      silent! :s/t/  /g
    endif
endfunc
map <leader>tab  :call F_tab()<cr>
 
function! Fcitx2en()
   if s:input_status == 2
   endif
endfunction
autocmd InsertLeave * call Fcitx2en()
function! Fcitx2cn()
   if s:input_status == 1
   endif
endfunction
autocmd InsertEnter * call Fcitx2cn()

程序员灯塔
转载请注明原文链接:迷你完整实例__vimrc
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com