vim 配置

在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc 
在Fedora中vim的配置文件存放在/etc目录中,配置文件名为vimrc

在Red Hat Linux 中vim的配置文件存放在/etc目录中,配置文件名为vimrc

mac/linux中vim永久显示行号、开启语法高亮


 
 
  1. 步骤1:
  2.   cp /usr/share/vim/vimrc ~/.vimrc
  3.   先复制一份vim配置模板到个人目录下
  4.   注:redhat 改成 cp /etc/vimrc ~/.vimrc
  5. 步骤2:
  6.   vi ~/.vimrc
  7.   进入insert模式,在最后加二行
  8.   syntax on
  9.   set nu!
  10. 保存收工。
  11. 最后附上其它选项(从网上淘来的)
  12. set nocompatible                  "去掉有关vi一致性模式,避免以前版本的bug和局限    
  13. set nu!                                    "显示行号
  14. set guifont=Luxi/ Mono/ 9   " 设置字体,字体名称和字号
  15. filetype on                              "检测文件的类型     
  16. set history=1000                   "记录历史的行数
  17. set background=dark          "背景使用黑色
  18. syntax on                                "语法高亮度显示
  19. set autoindent                       "vim使用自动对齐,也就是把当前行的对齐格式应用到下一行(自动缩进)
  20. set cindent                              "(cindent是特别针对 C语言语法自动缩进)
  21. set smartindent                    "依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写上有用   
  22. set tabstop=4                        "设置tab键为4个空格,
  23. set shiftwidth =4                   "设置当行之间交错时使用4个空格     
  24. set ai!                                      " 设置自动缩进 
  25. set showmatch                     "设置匹配模式,类似当输入一个左括号时会匹配相应的右括号      
  26. set guioptions-=T                  "去除vim的GUI版本中得toolbar   
  27. set vb t_vb=                            "当vim进行编辑时,如果命令错误,会发出警报,该设置去掉警报       
  28. set ruler                                  "在编辑过程中,在右下角显示光标位置的状态行     
  29. set nohls                                "默认情况下,寻找匹配是高亮度显示,该设置关闭高亮显示     
  30. set incsearch                         "在程序中查询一单词,自动匹配单词的位置;如查询desk单词,当输到/d时,会自动找到第一个d开头的单词,当输入到/de时,会自动找到第一个以ds开头的单词,以此类推,进行查找;当找到要匹配的单词时,别忘记回车 
  31. set backspace=2           " 设置退格键可用
  32. 注:如果是mac,更好的办法是直接换掉默认的终端,改用zsh,百度一下zsh,有很多教程,

比如:

http://blog.163.com/qy_gong/blog/static/1718738792013102992830558/

http://www.cnblogs.com/heiniuhaha/archive/2011/10/18/2216357.html

http://zhuanlan.zhihu.com/mactalk/19556676

附zsh的运行截图:

zsh已经把很多参数默认改好了,包括颜色方案啥的,直接用就行了

 

如果设置完成后,发现功能没有起作用,检查一下系统下是否安装了vim-enhanced包,查询命令为:

        $rpm -q vim-enhanced
注意:如果设置好以上设置后,VIM没有作出相应的动作,那么请你把你的VIM升级到最新版,一般只要在终端输入以下命令即可:sudo apt-get install vim

 

开启vim语法高亮设置

2017年10月22日 ⁄ 综合 ⁄ 共 195字 ⁄ 字号 小 中 大 ⁄ 评论关闭

 

首先在~下新建一个文件:.vimrc

进入这个文件,在vi环境中键入如下命令:

 

:read $VIMRUNTIME/vimrc_example.vim

读入例子文件,保存。该文件中有syntax on即为vim开启语法高亮。

 

另外,对python开启语法高亮

vi /usr/share/vim/vim73/syntax/python.vim

把let python_highlight_all = 1前的引号去掉

 

本文主要针对那些刚刚入门的菜鸟,老手请自动忽略,谢谢。 
一、安装vim: 
sudo pacman -S vim 随后根据提示输入超级用户密码即可完成安装 
二、配置自己的语法高亮文件,主要是修改~/.vimrc,也就是自己所在用户目录的根目录下,该文件是vim的配置文件,是个隐藏文件,需要使用按下f8才能看到这个文件。



 
 
  1. 一些说明:(1)配置文件中以"开始的行都是被注释掉的,实际是没有什么用的,以备下次的启用所以保留,如果你有代码洁癖,可以尽管删除;
  2. (2)我的vim配置文件非常丰富,如果你不需要这么多功能,请根据说明,几乎很快就可以快速实现自己的配置文件,
  3. (3)都是模块化,添加就能使用的,
  4. (4)请务必按照自己的实际情况修改,否则可能有版权纠纷,而且对使用的人非常不利,哈哈

 
 
  1. 1、不同时段启动不同的颜色主题,根据自己的需要即可,下面的配置是从早上8点到19点使用github主题,主要是背景是亮色的,适合白天,其他时段是暗色主题
  2. "***********************************************不同时段启动不同的颜色主题**************************************************
  3. if strftime("%H ") < 8 "时间在8:00前
  4. colorscheme guodesert
  5. elseif strftime( "%H") > 19 "时间在19:00后
  6. colorscheme guodesert
  7. else "时间在7:00~19:00之间
  8. colorscheme github
  9. endif
  10. "***********************************************不同时段启动不同的颜色主题**************************************************
  11. 2、在不同模式下让提示符和高亮行和列的不同,便于浏览或编辑文件,具体看注释,根据自己的需求定制即可
  12. "******************************************************特殊设置**********************************************************
  13. "autocmd InsertLeave * set nocul "浅色显示高亮行,离开时关闭
  14. autocmd InsertLeave * set nocuc "浅色显示高亮行,离开时关闭
  15. autocmd InsertEnter * set cul "浅色显示高亮行,进入时浅色显示打开
  16. autocmd InsertEnter * set cuc "浅色显示高亮行,进入时浅色显示打开
  17. let &t_SI = "\<Esc>]50;CursorShape=0\x7 "
  18. let &t_EI = "\<Esc>]50;CursorShape=1\x7 "
  19. "******************************************************特殊设置**********************************************************
  20. 3、使用bundle管理vim插件,先占着位置,回头补上
  21. "*******************************************************插件管理*********************************************************
  22. " set rtp+=~/.vim/bundle/Vundle
  23. "call vundle#rc()
  24. "Bundle 'gmarik/vundle
  25. "*******************************************************插件管理*********************************************************
  26. 4、vim的基础设置几乎都在这里了,假如你需要语法高亮,就将语法高亮行加进来即可,具体看注释,根据自己的需求定制即可
  27. "******************************************************选项设置**********************************************************
  28. syntax on "语法高亮
  29. filetype indent on "文件脚本自动缩进
  30. filetype plugin on "文件类型特定脚本缩进
  31. highlight OverLength ctermbg=red ctermfg=white guibg=#592929
  32. "highlight OverLength ctermbg=red ctermfg=white
  33. match OverLength /\%109v.\+/
  34. set completeopt=longest,menu
  35. "set list "让tab显示成>-------->--------
  36. "set listchars=tab:>-,trail:-,extends:>,precedes:< "配合上边的语句完成
  37. set nocompatible "关闭vi兼容模式
  38. set t_Co=256 "开启vim的256颜色支持
  39. set nobackup "覆盖文件时不备份
  40. set autoindent "插入模式下输入<cr>或使用"o"或"O"命令开新行,从当前行复制缩进距离
  41. set shiftwidth=4 "(自动)缩进每一步使用的空白数目
  42. set softtabstop=4 "执行插入时,<Tab>算作空格的数目,可以改为4
  43. set noexpandtab "不用空格展开<Tab>
  44. set scrolloff=1 "光标上下两侧最少保留的屏幕行数
  45. set sidescrolloff=5 "如果设置'nowrap ',光标左右两侧保留的最少屏幕列数
  46. set sidescroll=1 "水平滚动时滚动的最少列数
  47. set showcmd "在屏幕最后一行显示 (部分的) 命令
  48. set showmode "在插入、替换和可视模式里,在最后一行提供消息
  49. set hidden "放弃时隐藏缓冲区
  50. set wildmenu "'wildmenu '打开时,命令行补全以增强模式运行
  51. set wildmode=list:full "用'widechar '指定的字符所用的补全模式
  52. set novisualbell "不使用可视响铃
  53. set number "在每行前面显示行号
  54. set numberwidth=3 "行号使用的最小列数
  55. set ignorecase "搜索模式里忽略大小写
  56. set smartcase "搜索模式里包含大写字符,不使用ignorecase选项
  57. set incsearch "输入搜索命令时,显示目前输入的模式的匹配位置。匹配的字符串被高亮
  58. set hlsearch "搜索时高亮显示被找到的文本
  59. set showmatch "插入括号时,短暂地跳转到匹配的对应括号
  60. set matchtime=5 "短暂跳转到匹配括号的时间
  61. set textwidth=122 "设定文本的宽度为122个字符时自动断行
  62. "set columns=75 "设置文本达到columns宽度时自动换行
  63. set wrap "设置文本达到textwidth宽度时自动换行,但实际文件还是一行
  64. "set nowrap "设置文本达到textwidth宽度时不自动换行
  65. set complete+=k "关键字补全,扫描 'dictionary ' 选项给出的文件
  66. set history=255 "命令的历史和最近搜索模式的历史被记住。本项决定分别记多少项历史
  67. set wildignore+=*.svn "文件名补全时忽略.svn
  68. set nosplitbelow "窗口的分割会把新窗口放到当前窗口之下
  69. set nosplitright "窗口的分割会把新窗口放到当前窗口之右
  70. "set background=dark "设置背景为暗色
  71. set virtualedit+=block "在可视模式下可以选择一个方块
  72. set autoread "当文件在外部被修改时,自动重新读取
  73. set autowrite "自动保存文件
  74. "set cmdheight=2 "设定命令行的行数为1
  75. "set cursorcolumn "突出显示当前列
  76. set autochdir "自动切换当前目录为当前文件所在的目录
  77. set helplang=cn "设置帮助语言
  78. set iskeyword+=_,$,@,%,#,- "带有这些字符的单词不要被换行分割
  79. set backspace=2 "使用回格键
  80. set backspace=indent,eol,start "影响 <BS>、<Del>、CTRL-W和CTRL-U在插入模式下的工作方式
  81. set noswapfile "没有交换文件
  82. "set undofile "持久撤销功能
  83. set foldlevel=99 "设置折叠级别: 高于此级别的折叠会被关闭
  84. set foldclose=all "设置为自动关闭折叠
  85. set foldenable "开始折叠
  86. set foldmethod=syntax "语法高亮项目指定折叠
  87. set foldcolumn=0 "设置折叠区域的宽度,显示折叠列
  88. set cursorline "突出显示当前行
  89. set ruler "显示状态栏标尺
  90. set rulerformat =%33(%2*%<%=\修改:\%{strftime(\"%H:%M\",getftime(expand(\"%\")))}\ 光标:\%l\行\ %c%V\列\ %p%%%)
  91. set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 "设置编码
  92. set formatoptions+=q "描述自动排版如何进行的字母序列
  93. set formatoptions+=r
  94. set formatoptions+=n
  95. "set formatoptions+=1
  96. "set colorcolumn=+1
  97. set smartindent "开启新行时使用智能自动缩进
  98. "******************************************************选项设置**********************************************************
  99. "======================================================添加注释==========================================================
  100. "将键盘上的F10功能键映射为添加作者信息的快捷键 进行版权声明的设置
  101. map <F10> :call TitleDet()<cr>
  102. "添加文件信息
  103. function AddTitle()
  104. call append(0,"/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
  105. call append(1," * 作者代号: *** :guochaoxxl")
  106. call append(2," * 版权声明: *** :(魎魍魅魑)GPL3")
  107. call append(3," * 联络信箱: *** :guochaoxxl@gmail.com")
  108. "call append(4," * 文档用途: *** :C++探秘——68讲贯通C++练习代码")
  109. "call append(4," * 文档用途: *** :设计模式其实很简单Java")
  110. call append(4," * 文档用途: *** :深入理解C指针")
  111. call append(5," * 文档信息: *** :".expand("%:p:~"))
  112. call append(6," * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
  113. call append(7," * 代码说明: *** :自行添加")
  114. call append(8," * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
  115. "echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
  116. endf
  117. "更新最近修改时间和文件名
  118. function UpdateTitle()
  119. normal m'
  120. execute '/修订时间:/s@:.*$@\=strftime(": *** *%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)")@'
  121. normal ''
  122. normal mk
  123. execute '/文档信息:/s@:.*$@\=": *** :".expand("%:p:~")@'
  124. execute "noh"
  125. normal 'k
  126. "echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
  127. endfunction
  128. "判断前10行代码里面,是否有Last modified这个单词,如果没有,需要添加作者信息;如果有,只需要更新即可
  129. function TitleDet()
  130. let n=1
  131. "更新注释信息
  132. while n < 10
  133. let line = getline(n)
  134. if line =~ '^\ \ \**\s*\S*修订时间:\S*.:$ '
  135. call UpdateTitle()
  136. return
  137. endif
  138. let n = n + 1
  139. endwhile
  140. "添加注释信息
  141. call AddTitle()
  142. endfunction
  143. "======================================================添加注释==========================================================
  144. "======================================================编译运行==========================================================
  145. "通过键盘F9映射快速实现编译与运行
  146. map <F9> :call CompileRun()<cr>
  147. function CompileRun()
  148. exec "w"
  149. if &filetype == 'c '
  150. exec "!gcc -g % -o %<"
  151. exec "!%<"
  152. elseif &filetype == 'cpp '
  153. exec "!g++ -g % -o %<"
  154. exec "!%<"
  155. elseif &filetype == 'java '
  156. exec "!javac %"
  157. exec "!java %<"
  158. else
  159. exec "echo not support filetype!"
  160. endif
  161. endfunction
  162. "======================================================编译运行==========================================================
  163. "******************************************************杂项设置**********************************************************
  164. "set tags=~/WORKM/ANDROID_SRC/
  165. ab psvm public static void main "试试缩写好用吗
  166. let NERDTreeQuitOnOpen=1
  167. let NERDTreeDirArrows=0
  168. let NERDTreeWinSize=40
  169. let NERDRemoveExtraSpaces=0
  170. let g:bufExplorerDisableDefaultKeyMapping = 1
  171. let g:acp_behaviorKeywordCommand = "\<C-o>"
  172. let g:acp_behaviorKeywordLength = -1
  173. let g:acp_behaviorFileLength = -1
  174. let g:SuperTabDefaultCompletionType = "<c-n>"
  175. let g:SuperTabLongestHighlight = 1
  176. let g:tagbar_sort=0
  177. let g:tagbar_compact=1
  178. let g:tagbar_foldlevel=1
  179. let g:tagbar_iconchars=['+ ', '- ']
  180. let OmniCpp_SelectFirstItem = 2
  181. let OmniCpp_ShowPrototypeInAbbr = 1
  182. let OmniCpp_MayCompleteScope = 1
  183. "******************************************************杂项设置**********************************************************
  184. "######################################################自动补全##########################################################
  185. :inoremap ( ()<ESC>i
  186. :inoremap ) <c-r>=ClosePair(') ')<CR>
  187. :inoremap { {<CR>}<ESC>O
  188. :inoremap } <c-r>=ClosePair('} ')<CR>
  189. :inoremap [ []<ESC>i
  190. :inoremap ] <c-r>=ClosePair('] ')<CR>
  191. :inoremap " ""<ESC>i
  192. ":inoremap ' ''<ESC>i
  193. function ClosePair(char)
  194. "if getline('.')[col('.') - 1 ] == a:char
  195. if getline('.') == a:char
  196. return "\<Right> "
  197. else
  198. return a:char
  199. endif
  200. endfunction
  201. " ######################################################自动补全##########################################################
  202. "====================================================##按键映射==========================================================
  203. map e ea
  204. "map e ea "移动到单词结尾时就自动进入插入模式
  205. map + <C-w>+ "增减窗口尺寸
  206. map _ <C-w>-
  207. map <silent> <F2> :NERDTreeToggle<cr> "tarbar functon list
  208. map <silent> <F3> :TagbarToggle<cr> "header and implement file switch
  209. map <F4> :A<cr> "update index
  210. map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<cr><cr>:cs kill cscope.out<cr>:!cscope -Rb<cr><cr>:cs add cscope.out<cr> "switch display invisable char or not
  211. map <F6> : set list!<cr>: set list?<cr> "highlight
  212. map <F7> ms:%s /\<<C-R>=expand("<cword> ")<CR>\>//gn<cr>` "swapfile list
  213. map <silent> <F8> :BufExplorer<CR> "comment visual line
  214. nmap <C-[>g :cs find g <C-R>=expand("<cword> ")<CR><CR> "list the funcion called by this function
  215. nmap <C-[>d :cs find d <C-R>=expand( "<cword>")<CR><CR> "list the position where to call this word
  216. nmap <C-[>c :cs find c <C-R>=expand("<cword> ")<CR><CR> "search word in the project
  217. nmap <C-[>s :cs find s <C-R>=expand( "<cword>")<CR><CR> "search word in the project and the word can be in text
  218. nmap <C-[>t :cs find t <C-R>=expand("<cword> ")<CR><CR> "search word in the project and the word can be in text, support regex
  219. nmap <C-[>e :cs find e <C-R>=expand( "<cword>")<CR><CR> "list the file which filename is this word
  220. nmap <C-[>f :cs find f <C-R>=expand("<cfile> ")<CR><CR> "list the file include the file which filename is this word
  221. nmap <C-[>i :cs find i ^<C-R>=expand( "<cfile>")<CR>$<CR> "list the file which include this file
  222. nmap <C-[>I :cs find i <C-R>=expand("%:t ")<CR><CR>
  223. "nnoremap j gj "自动换行时可在行中移动
  224. "nnoremap k gk
  225. nnoremap <C-h> <C-w>h "在分割的窗口间移动
  226. nnoremap <C-j> <C-w>j
  227. nnoremap <C-k> <C-w>k
  228. nnoremap <C-l> <C-w>l
  229. noremap <S-h> :bp<cr> "在buffer间移动
  230. noremap <S -l> :bn<cr>
  231. "用空格键来开关折叠
  232. nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
  233. vnoremap <silent> , :call NERDComment(1, "alignLeft ")<cr> "uncomment visual line
  234. vnoremap <silent> . :call NERDComment(1, "uncomment")<cr> "show list if more tag
  235. if has("cscope ")
  236. set nocsverb
  237. if filereadable("cscope.out ")
  238. cs add cscope.out
  239. endif
  240. endif
  241. "======================================================按键映射==========================================================
  242. "======================================================跳转位置==========================================================
  243. if has("autocmd ") "打开文件时,自动跳转到光标最后所在的位置
  244. au BufReadPost * if line( "'\"") > 0 && line( "'\"") <= line( "$")
  245. \| exe "normal! g'\"" | endif
  246. endif
  247. "######################################################跳转位置##########################################################
  248. 其他的同上

链接: https://pan.baidu.com/s/1o896P0e 密码: 4qev 
有童鞋反映不会使用,那就补充下,以下假如你将下载的vim.zip文件下载到了/home/zhangsan/ 目录中,解压后的的目录为/home/zhangsan/vim/, 
打开终端或yakuake,使用命令: 
1、cd vim 
2、cp -R .vim/ .. 
3、cp .vimrc .. 
4、vim testy.c此时应该就有语法高亮和行号了,此处应该加上热泪和掌声。

版权声明:本文为博主原创文章,转载请务必注明原文出处。 https://blog.csdn.net/guochaoxxl/article/details/53212090

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值