zoukankan      html  css  js  c++  java
  • vimset

    vim ~./vimrc   vim /etc/vim/vimrc

     

    set nocompatible                 "去掉有关vi一致性模式,避免以前版本的bug和局限    

    set nu!                                    "显示行号

    set guifont=Luxi/ Mono/ 9   " 设置字体,字体名称和字号

    filetype on                              "检测文件的类型     

    set history=1000                  "记录历史的行数

    set background=dark          "背景使用黑色

    syntax on                                "语法高亮度显示

    set autoindent                       "vim使用自动对齐,也就是把当前行的对齐格式应用到下一行(自动缩进)

    set cindent                             "(cindent是特别针对 C语言语法自动缩进)

    set smartindent                    "依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写上有用   

    set tabstop=4                        "设置tab键为4个空格,

    set shiftwidth =4                   "设置当行之间交错时使用4个空格     

    set ai!                                      " 设置自动缩进 

    set showmatch                     "设置匹配模式,类似当输入一个左括号时会匹配相应的右括号      

    set guioptions-=T                 "去除vim的GUI版本中得toolbar   

    set vb t_vb=                            "当vim进行编辑时,如果命令错误,会发出警报,该设置去掉警报       

    set ruler                                  "在编辑过程中,在右下角显示光标位置的状态行     

    set nohls                                "默认情况下,寻找匹配是高亮度显示,该设置关闭高亮显示     

    set incsearch                        "在程序中查询一单词,自动匹配单词的位置;如查询desk单词,当输到/d时,会自动找到第一个d开头的单词,当输入到/de时,会自动找到第一个以ds开头的单词,以此类推,进行查找;当找到要匹配的单词时,别忘记回车 

    set backspace=2           " 设置退格键可用

     

    set nocp    "设置兼容

    set expandtab   "设置tab

    set shiftwidth=4    "设置tab的间隔

    set tabstop=4   "四个空格代表一个tab

    set sts=4

    set showmatch   "在输入括号时光标会短暂地跳到与之相匹配的括号处

    set autoindent  "设置自动缩进

    " set smartindent "设置智能缩进

    set nowrap    "设置自动换行

    set tw=500

    set lbr

    set number  "设置是否显示行

    set guifont=Monospace 11  "设置字体大小

    set encoding=utf-8  "设置编码为utf-8

    set fileencoding=utf-8

    set fileencodings=ucs-bom,utf-8,GB18030,cp936,big5,euc-jp,euc-kr,latin1

    set helplang=cn "帮助中文支持

    colorscheme tango "设置主体颜色

    "set mouse=v " 设置粘贴和复制

    "自动补全配置

    autocmd FileType python set omnifunc=pythoncomplete#Complete

    autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

    autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

    autocmd FileType css set omnifunc=csscomplete#CompleteCSS

    autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags

    autocmd FileType php set omnifunc=phpcomplete#CompletePHP

    autocmd FileType c set omnifunc=ccomplete#Complete

    " =================================进行Taglist的设置<Begin>============================

    map <F3> :TlistToggle<CR>

    "map <F3> :silent! Tlist<CR>             "按下F3就可以呼出了

    "let Tlist_Ctags_Cmd='/usr/bin/ctags'    "因为我们放在环境变量里,所以可以直接执行

    let Tlist_Use_Right_Window=1            "让窗口显示在右边,0的话就是显示在左边 

    "let Tlist_Show_One_File=1               "让taglist可以同时展示多个文件的函数列表

    "let Tlist_File_Fold_Auto_Close=1        "非当前文件,函数列表折叠隐藏

    "let Tlist_Exit_OnlyWindow=1             "当taglist是最后一个分割窗口时,自动推出vim

    "let Tlist_Process_File_Always=0         "是否一直处理tags.1:处理;0:不处理 

    "let Tlist_Inc_Winwidth=0                "不是一直实时更新tags,因为没有必要 

    " =================================进行Taglist的设置<End>==============================

    " ############################键盘映射设置区域###############################

    map <F2> :NERDTreeToggle<CR>

    map <F4> t :NERDTreeMirror<CR>

    " 对应使用函数的配置

    set guitablabel=%{ShortTabLabel()}

    function ShortTabLabel ()

      let bufnrlist = tabpagebuflist (v:lnum)

      let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])

      let filename = fnamemodify (label, ':t')

      return filename

    endfunction

    set tabline=%!MyTabLine()

    function MyTabLine()

      let s = ''

      for i in range(tabpagenr('$'))

        " 选择高亮

        if i + 1 == tabpagenr()

          let s .= '%#TabLineSel#'

        else

          let s .= '%#TabLine#'

        endif

        " 设置标签页号 (用于鼠标点击)

        let s .= '%' . (i + 1) . 'T'

        " MyTabLabel() 提供完整路径标签 MyShortTabLabel 提供文件名标签

        let s .= ' %{MyShortTabLabel(' . (i + 1) . ')} '

      endfor

      " 最后一个标签页之后用 TabLineFill 填充并复位标签页号

      let s .= '%#TabLineFill#%T'

      " 右对齐用于关闭当前标签页的标签

      if tabpagenr('$') > 1

        let s .= '%=%#TabLine#%999Xclose'

      endif

      return s

    endfunction

    " 文件名标签

    function MyShortTabLabel(n)

      let buflist = tabpagebuflist(a:n)

      let label = bufname (buflist[tabpagewinnr (a:n) -1])

      let filename = fnamemodify (label, ':t')

      return filename

    endfunction

    "完整路径标签

    function MyTabLabel(n)

      let buflist = tabpagebuflist(a:n)

      let winnr = tabpagewinnr(a:n)

      return bufname(buflist[winnr - 1])

    endfunction

    " vim 标签样式

    "  TabLineFill  tab pages line, where there are no labels

    hi TabLineFill term=none

    hi TabLineFill ctermfg=DarkGrey

    hi TabLineFill guifg=#777777

    "  TabLineSel   tab pages line, active tab page label

    hi TabLineSel term=inverse

    hi TabLineSel cterm=none ctermfg=yellow ctermbg=Black

    hi TabLineSel gui=none guifg=yellow guibg=Black

    " Develop editing options

    au FileType vim setl expandtab

    au FileType vim setl shiftwidth=2

    au FileType vim setl tabstop=2

    " 显示状态栏(默认值为 1,无法显示状态栏)

    set laststatus=2

    " Format the statusline

    set statusline= %F%m%r%h %w CWD: %r%{CurDir()}E5%h Line: %l/%L:%c

    function! CurDir()

        let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")

        return curdir

    endfunction

    "#######################设置PHP函数自动提醒#########################Start

    "设置字典自动完成

    set complete+=k

    "设置字典

    set dictionary=~/.vim/doc/php_funclist.txt

    " 自动完成使用TAB键

    function! InsertTabWrapper()

        let col=col('.')-1

        if !col || getline('.')[col-1] !~ 'k'

            return "<TAB>"

        else

            return "<C-N>"

        endif

    endfunction

    "将InsertTabWrapper映射到TAB上

    inoremap <TAB> <C-R>=InsertTabWrapper()<CR>

    "#######################设置PHP函数自动提醒#########################End

    "#######中括号 大括号 小括号 自动补全

    :inoremap ( ()<ESC>i

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

    :inoremap { {}<ESC>i

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

    :inoremap [ []<ESC>i

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

    :inoremap < <><ESC>i

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

    function ClosePair(char)

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

            return "<Right>"

        else

            return a:char

        endif

    endfunction

    "#######中括号 大括号 小括号 自动补全

  • 相关阅读:
    Admin注册和路由分发详解
    自定义Xadmin
    苑昊老师的博客
    pip 国内源 配置
    Django模型层(2)
    Django 中间件
    Django form表单
    整理的最全 python常见面试题(基本必考)
    AJAX
    Cookie、Session和自定义分页
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11573452.html
Copyright © 2011-2022 走看看