zoukankan      html  css  js  c++  java
  • vim的配置:自己修改.vimrc文件,写自己风格的配置

    windows下的gvim配置:

    1.如果win下的gvim在保存并退出(:wq或ZZ)的时候,提示说无法写入默默路径下的_viminfo文件,那么,我遇到的情况是自己的HOME路径不存在。默认会在HOME路径中的_viminfo中写入。。参考:http://jiadingjun.blogspot.com/2009/05/viminfo_30.html

    2.ctags报错

    需要下载ctags.zip然后复制ctags.exe到<vimdir>/vim73/下面

    参考配置:http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.html

    3.win下的gvim编译java文件,文件中的中文报错,cmd说不支持gbk

    可以自己设定快捷键编译,编译的语句在vimrc中添加编码参数:

     1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     2 " 语言的编译和运行           
     3 " 支持的语言:java         F5编译(保存+编译)  F6运行
     4 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     5 func! CompileCode()
     6     exec "w"
     7     if &filetype == "java"
     8         exec "!javac -encoding utf-8 %"
     9     endif
    10 endfunc
    11 func! RunCode()
    12     if &filetype == "java"
    13         exec "!java -classpath %:h; %:t:r"
    14     endif
    15 endfunc
    16 
    17 " F5 保存+编译
    18 map <F5> :call CompileCode()<CR>
    19 
    20 "  F6 运行
    21 map <F6> :call RunCode()<CR>

    参考:http://s1099.iteye.com/blog/1447662

    完整版:

      1 "代码来源:http://s1099.iteye.com/blog/1447662
      2 set nocompatible "不要使用vi的键盘模式,而是vim自己的
      3 source $VIMRUNTIME/mswin.vim
      4 behave mswin    "兼容windows下的快捷键
      5 
      6 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
      7 " GVIM自身的设置
      8 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      9 language messages zh_CN.utf-8   " 解决consle输出乱码
     10 colorscheme desert              " 灰褐色主题
     11 set guioptions-=T        " 隐藏工具栏
     12 set guifont=Monaco:h10            " 字体 && 字号
     13 set noerrorbells        " 关闭错误提示音
     14 set nobackup            " 不要备份文件
     15 set linespace=0            " 字符间插入的像素行数目
     16 set shortmess=atI        " 启动的时候不显示那个援助索马里儿童的提示
     17 set novisualbell        " 不要闪烁 
     18 set scrolloff=3            " 光标移动到buffer的顶部和底部时保持3行距离
     19 set mouse=a             " 可以在buffer的任何地方 ->
     20 set selection=exclusive         " 使用鼠标(类似office中 ->
     21 set selectmode=mouse,key        " 在工作区双击鼠标定位)
     22 set cursorline                  " 突出显示当前行
     23 set nu!   " 显示行号
     24 set whichwrap+=<,>,h,l        " 允许backspace和光标键跨越行边界 
     25 set completeopt=longest,menu    "按Ctrl+N进行代码补全
     26 
     27 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
     28 " 文本格式和排版 
     29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
     30 set list                        " 显示Tab符,->
     31 set listchars=tab:\|\ ,         " 使用一高亮竖线代替
     32 set tabstop=4            " 制表符为4
     33 set autoindent            " 自动对齐(继承前一行的缩进方式)
     34 set smartindent            " 智能自动缩进(以c程序的方式)
     35 set softtabstop=4 
     36 set shiftwidth=4        " 换行时行间交错使用4个空格
     37 set noexpandtab            " 不要用空格代替制表符
     38 ""set expandtab
     39 set cindent            " 使用C样式的缩进
     40 set smarttab            " 在行和段开始处使用制表符
     41 set nowrap            " 不要换行显示一行 
     42 
     43 
     44 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     45 " 状态行(命令行)的显示
     46 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     47 set cmdheight=2             " 命令行(在状态行下)的高度,默认为1,这里是2
     48 set ruler                 " 右下角显示光标位置的状态行
     49 set laststatus=2         " 开启状态栏信息 
     50 set wildmenu             " 增强模式中的命令行自动完成操作 
     51 
     52 
     53 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     54 " 文件相关
     55 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     56 set fenc=utf-8
     57 set encoding=utf-8        " 设置vim的工作编码为utf-8,如果源文件不是此编码,vim会进行转换后显示
     58 set fileencoding=utf-8        " 让vim新建文件和保存文件使用utf-8编码
     59 set fileencodings=utf-8,gbk,cp936,latin-1
     60 filetype on                     " 侦测文件类型
     61 filetype indent on                 " 针对不同的文件类型采用不同的缩进格式
     62 filetype plugin on                 " 针对不同的文件类型加载对应的插件
     63 syntax on                     " 语法高亮
     64 filetype plugin indent on    " 启用自动补全
     65 
     66 
     67 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     68 " 查找
     69 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     70 set hlsearch                 " 开启高亮显示结果
     71 set nowrapscan               " 搜索到文件两端时不重新搜索
     72 set incsearch                " 开启实时搜索功能
     73 
     74 
     75 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     76 " 语言的编译和运行           
     77 " 支持的语言:java         F5编译(保存+编译)  F6运行
     78 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     79 func! CompileCode()
     80     exec "w"
     81     if &filetype == "java"
     82         exec "!javac -encoding utf-8 %"
     83     endif
     84 endfunc
     85 func! RunCode()
     86     if &filetype == "java"
     87         exec "!java -classpath %:h; %:t:r"
     88     endif
     89 endfunc
     90 
     91 " F5 保存+编译
     92 map <F5> :call CompileCode()<CR>
     93 
     94 "  F6 运行
     95 map <F6> :call RunCode()<CR>
     96 
     97 
     98 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     99 " 实用功能
    100 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    101 "--------引号 && 括号自动匹配
    102 :inoremap ( ()<ESC>i
    103 :inoremap ) <c-r>=ClosePair(')')<CR>
    104 :""inoremap { {}<ESC>i
    105 :""inoremap } <c-r>=ClosePair('}')<CR>
    106 imap { {}<ESC>i<CR><ESC>O 
    107 "插入大括号 就是录制一个宏
    108 :inoremap [ []<ESC>i
    109 :inoremap ] <c-r>=ClosePair(']')<CR>
    110 ":inoremap < <><ESC>i
    111 ":inoremap > <c-r>=ClosePair('>')<CR>
    112 :inoremap " ""<ESC>i
    113 :inoremap ' ''<ESC>i
    114 :inoremap ` ``<ESC>i
    115 function ClosePair(char)
    116     if getline('.')[col('.') - 1] == a:char
    117         return "\<Right>"
    118     else
    119         return a:char
    120     endif
    121 endf
    122 "--------启用代码折叠,用空格键来开关折叠 
    123 set foldenable             " 打开代码折叠
    124 set foldmethod=syntax        " 选择代码折叠类型
    125 set foldlevel=100            " 禁止自动折叠
    126 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR> 
    127 
    128 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    129 " 插件
    130 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    131 " <F9>打开文件浏览窗口   插件为WinManager
    132 let g:winManagerWindowLayout='FileExplorer'
    133 nmap <F9> :WMToggle<CR>
    134 
    135 " MiniBufExplorer     
    136 let g:miniBufExplMapWindowNavVim = 1 
    137 let g:miniBufExplMapWindowNavArrows = 1 
    138 let g:miniBufExplMapCTabSwitchBufs = 1 
    139 let g:miniBufExplModSelTarget = 1 
    140 
    141 "新建.c,.h,.sh,.java文件,自动插入文件头 
    142 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
    143 ""定义函数SetTitle,自动插入文件头 
    144 func SetTitle() 
    145     "如果文件类型为.sh文件 
    146     if &filetype == 'sh'
    147         call setline(1,"\###########################################################") 
    148         call append(line("."), "\# Filename: ".expand("%")) 
    149         call append(line(".")+1, "\# Author: ChrisZZ") 
    150         call append(line(".")+2, "\# E-mail: zchrissirhcz@163.com") 
    151         call append(line(".")+3, "\# Created Time: ".strftime("%c")) 
    152         call append(line(".")+4, "\###################################################") 
    153         call append(line(".")+5, "\#!/bin/bash") 
    154         call append(line(".")+6, "") 
    155     endif
    156 
    157     if &filetype == 'c'
    158         call setline(1, "/*") 
    159         call append(line("."), " * =================================================")
    160         call append(line(".")+1, " *")
    161         call append(line(".")+2, " *       Filename:  ".expand("%")) 
    162         call append(line(".")+3, " *")
    163         call append(line(".")+4, " *    Description:  ")
    164         call append(line(".")+5, " *")
    165         call append(line(".")+6, " *        Version:  0.01")
    166         call append(line(".")+7, " *        Created:  ".strftime("%c")) 
    167         call append(line(".")+8, " *         Author:  ChrisZZ, zchrissirhcz@163.com")
    168         call append(line(".")+9," *        Company:  ZJUT")
    169         call append(line(".")+10, " *")
    170         call append(line(".")+11, " * =================================================")
    171         call append(line(".")+12, " */")
    172         call append(line(".")+13, "#include<stdio.h>")
    173         call append(line(".")+14, "")
    174         call append(line(".")+15, "int main(int argc, char** argv){")
    175         call append(line(".")+16, "")
    176         call append(line(".")+17, "    return 0;")
    177         call append(line(".")+18, "}")
    178     endif
    179 
    180     if &filetype == 'cpp'
    181         call setline(1, "/*") 
    182         call append(line("."), " * =================================================")
    183         call append(line(".")+1, " *")
    184         call append(line(".")+2, " *       Filename:  ".expand("%")) 
    185         call append(line(".")+3, " *")
    186         call append(line(".")+4, " *    Description:  ")
    187         call append(line(".")+5, " *")
    188         call append(line(".")+6, " *        Version:  0.01")
    189         call append(line(".")+7, " *        Created:  ".strftime("%c")) 
    190         call append(line(".")+8, " *         Author:  ChrisZZ, zchrissirhcz@163.com")
    191         call append(line(".")+9," *        Company:  ZJUT")
    192         call append(line(".")+10, " *")
    193         call append(line(".")+11, " * =================================================")
    194         call append(line(".")+12, " */")
    195         call append(line(".")+13, "#include<iostream>")
    196         call append(line(".")+14, "using namespace std;")
    197         call append(line(".")+15, "int main(){")
    198         call append(line(".")+16, "")
    199         call append(line(".")+17, "    return 0;")
    200         call append(line(".")+18, "}")
    201     endif
    202 
    203     if &filetype == 'java'
    204         call setline(1, "/*") 
    205         call append(line("."), " * =================================================")
    206         call append(line(".")+1, " *")
    207         call append(line(".")+2, " *       Filename:  ".expand("%")) 
    208         call append(line(".")+3, " *")
    209         call append(line(".")+4, " *    Description:  ")
    210         call append(line(".")+5, " *")
    211         call append(line(".")+6, " *        Version:  0.01")
    212         call append(line(".")+7, " *        Created:  ".strftime("%c")) 
    213         call append(line(".")+8, " *         Author:  ChrisZZ, zchrissirhcz@163.com")
    214         call append(line(".")+9," *        Company:  ZJUT")
    215         call append(line(".")+10, " *")
    216         call append(line(".")+11, " * =================================================")
    217         call append(line(".")+12, " */")
    218         call append(line(".")+13, "")
    219     endif
    220 
    221 
    222     "新建文件后,自动定位到文件末尾
    223     autocmd BufNewFile * normal G
    224 
    225 endfunc

    linux下的.vimrc文件:

    1.set nocp   设定不是用vi默认配置。默认配置中当你搜索过某个词之后,再次打开这个文件时有上次搜索的高亮显示。我不喜欢这样(查找的痕迹问题困扰了我好久)

    ---------------------------------------------------------------------

    更新

    ---------------------------------------------------------------------

    最近在学ruby和python的语言,发现用vim时候还是不方便。如果ruby python一个个的去下插件,可行,但是麻烦。vundle真的强大,用git管理vim插件,所以现在用vundle

    英文不好的可以看这里http://blog.houqp.me/use-vundle-to-manage-your-plugins/

    Greatness is never a given, it must be earned.
  • 相关阅读:
    博客园精华集汇总
    SQLServer中临时表与表变量的区别分析
    【转】InstantClient安装使用
    博客人生
    【Sniffer】如何查看Sniffer截获的数据内容
    Excel使用基础
    书和耳机到了
    MindManager Pro 9.1.157更改默认字体
    xml spy中显示文件路径
    【LR】Error 27191: "web_image_check" failed 报错解决方法
  • 原文地址:https://www.cnblogs.com/zjutzz/p/3073546.html
Copyright © 2011-2022 走看看