vim 用法

set nu              " 显示行号

syntax on           " 语法高亮

"set background=dark "背景使用黑色

" 显示中文帮助
  if version >= 603
      set helplang=cn
      set encoding=utf-8
  endif

“字体

set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8

" 自动缩进
set autoindent
set cindent

" Tab键的宽度
set tabstop=4

" 统一缩进为4
set softtabstop=4
set shiftwidth=4

"禁止生成临时文件
set nobackup
set noswapfile

"搜索忽略大小写
set ignorecase

"搜索逐字符高亮
set hlsearch
set incsearch

"语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn

" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on

"无用空格高亮

highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"自动补全

:inoremap ( ()<ESC>i

:inoremap ) <c-r>=ClosePair(‘)‘)<CR>

:inoremap { {<CR>}<ESC>O

:inoremap } <c-r>=ClosePair(‘}‘)<CR>

:inoremap [ []<ESC>i

:inoremap ] <c-r>=ClosePair(‘]‘)<CR>

"":inoremap " ""<ESC>i

"":inoremap ‘ ‘‘<ESC>i

function! ClosePair(char)

    if getline(‘.‘)[col(‘.‘) - 1] == a:char

        return "\<Right>"

    else

        return a:char

    endif

endfunction

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"键盘命令

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



nmap <leader>w :w!<cr>

nmap <leader>f :find<cr>



" 映射全选+复制 ctrl+a

map <C-A> ggVGY

map! <C-A> <Esc>ggVGY

map <F12> gg=G

" 选中状态下 Ctrl+c 复制

vmap <C-c> "+y

"去空行  

nnoremap <F2> :g/^\s*$/d<CR>

"比较文件  

nnoremap <C-F2> :vert diffsplit

"新建标签  

map <M-F2> :tabnew<CR>  

"列出当前目录文件  

map <F3> :tabnew .<CR>  

"打开树状文件目录  

map <C-F3> \be  

"C,C++ 按F5编译运行

map <F5> :call CompileRunGcc()<CR>

func! CompileRunGcc()

    exec "w"

    if &filetype == ‘c‘

        exec "!g++ % -o %<"

        exec "! ./%<"

    elseif &filetype == ‘cpp‘

        exec "!g++ % -o %<"

        exec "! ./%<"

    elseif &filetype == ‘java‘

        exec "!javac %"

        exec "!java %<"

    elseif &filetype == ‘sh‘

        :!./%

    endif

endfunc

"C,C++的调试

map <F8> :call Rungdb()<CR>

func! Rungdb()

    exec "w"

    exec "!g++ % -g -o %<"

    exec "!gdb ./%<"

endfunc

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""新文件标题""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"新建.c,.h,.sh,.java文件,自动插入文件头

autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"

""定义函数SetTitle,自动插入文件头

func SetTitle()

    "如果文件类型为.sh文件

    if &filetype == ‘sh‘

        call setline(1,"\#########################################################################")

        call append(line("."), "\## File Name: ".expand("%"))

        call append(line(".")+1, "\## Author: Chen Cesc")

        call append(line(".")+2, "\## Created Time: ".strftime("%c"))

        call append(line(".")+3, "\#########################################################################")

        call append(line(".")+4, "\#!/bin/bash")

        call append(line(".")+5, "")

    else

        call setline(1, " /*************************************************************************")

        call append(line("."), "    > File Name: ".expand("%"))

        call append(line(".")+1, "    > Author: Chen Cesc")

        call append(line(".")+2, "    > Created Time: ".strftime("%c"))

        call append(line(".")+3, " ************************************************************************/")

        call append(line(".")+4, "")

    endif

    if &filetype == ‘cpp‘

        call append(line(".")+5, "#include<iostream>")

        call append(line(".")+6, "using namespace std;")

        call append(line(".")+7, "")

        call append(line(".")+8, "int main()")

        call append(line(".")+9, "{")

        call append(line(".")+10, "}")

    endif

    if &filetype == ‘c‘

        call append(line(".")+5, "#include<stdio.h>")

        call append(line(".")+6, "")

        call append(line(".")+7, "int main()")

        call append(line(".")+8, "{")

        call append(line(".")+9, "}")

    endif

    "新建文件后,自动定位到文件末尾

    autocmd BufNewFile * normal G

endfunc

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。