,写代码时是不是总是把标点写成中文的而引起报错呢?今天看到有想在Vim下把中文标点替换成英文标点的.遂研究了一下,其实很简单,无外乎查找替换.把线面的代码复制到.vimrc里就可以了,按Ctrl-s就会自动替换你当前buffer里的中文标点为英文标点.减少你代码出错的几率.
- """"""""""""""""""""""""""""""
- "Chinese Punctuation
- """"""""""""""""""""""""""""""
- function! CheckChineseMark()
- "依次检查
- if search('。')
- let s:line=search('。')
- execute s:line . "s/。/\./g"
- endif
- if search(',')
- let s:line=search(',')
- execute s:line . "s/,/,/g"
- endif
- if search(';')
- let s:line=search(';')
- execute s:line . "s/;/,/g"
- endif
- if search('?')
- let s:line=search('?')
- execute s:line . "s/?/?/g"
- endif
- if search(':')
- let s:line=search(':')
- execute s:line . "s/:/\:/g"
- endif
- if search('‘')
- let s:line=search('‘')
- execute s:line . "s/‘/\'/g"
- endif
- if search('’')
- let s:line=search('’')
- execute s:line . "s/’/\'/g"
- endif
- if search('”')
- let s:line=search('”')
- execute s:line . "s/”/\"/g"
- endif
- if search('“')
- let s:line=search('“')
- execute s:line . "s/“/\"/g"
- endif
- if search('《')
- let s:line=search('《')
- execute s:line . "s/《/\</g"
- endif
- if search('》')
- let s:linie=search('》')
- execute s:line . "s/》/\>/g"
- endif
- if search('——')
- let s:line=search('——')
- execute s:line . "s/——/-/g"
- endif
- if search(')')
- let s:line=search(')')
- execute s:line . "s/)/\)/g"
- endif
- if search('(')
- let s:line=search('(')
- execute s:line . "s/(/\(/g"
- endif
- if search('……')
- let s:line=search('……')
- execute s:line . "s/……/^/g"
- endif
- if search('¥')
- let s:line=search('¥')
- execute s:line . "s/¥/$/g"
- endif
- if search('!')
- let s:line=search('!')
- execute s:line . "s/!/!/g"
- endif
- if search('·')
- let s:line=search('·')
- execute s:line . "s/·/`/g"
- endif
- endfunction
- unmap <C-S>
- map! <C-S> <ESC>:call CheckChineseMark()<ESC>:w<ESC>a