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

一些说明:(1)配置文件中以"开始的行都是被注释掉的,实际是没有什么用的,以备下次的启用所以保留,如果你有代码洁癖,可以尽管删除;
(2)我的vim配置文件非常丰富,如果你不需要这么多功能,请根据说明,几乎很快就可以快速实现自己的配置文件,
(3)都是模块化,添加就能使用的,
(4)请务必按照自己的实际情况修改,否则可能有版权纠纷,而且对使用的人非常不利,哈哈
1、不同时段启动不同的颜色主题,根据自己的需要即可,下面的配置是从早上8点到19点使用github主题,主要是背景是亮色的,适合白天,其他时段是暗色主题
"***********************************************不同时段启动不同的颜色主题**************************************************
if strftime("%H") < 8 "时间在8:00前
colorscheme guodesert
elseif strftime("%H") > 19 "时间在19:00后
colorscheme guodesert
else "时间在7:00~19:00之间
colorscheme github
endif
"***********************************************不同时段启动不同的颜色主题**************************************************
2、在不同模式下让提示符和高亮行和列的不同,便于浏览或编辑文件,具体看注释,根据自己的需求定制即可
"******************************************************特殊设置**********************************************************
"autocmd InsertLeave * set nocul "浅色显示高亮行,离开时关闭
autocmd InsertLeave * set nocuc "浅色显示高亮行,离开时关闭
autocmd InsertEnter * set cul "浅色显示高亮行,进入时浅色显示打开
autocmd InsertEnter * set cuc "浅色显示高亮行,进入时浅色显示打开 let &t_SI = "\<Esc>]50;CursorShape=0\x7"
let &t_EI = "\<Esc>]50;CursorShape=1\x7"
"******************************************************特殊设置**********************************************************
3、使用bundle管理vim插件,先占着位置,回头补上
"*******************************************************插件管理*********************************************************
"set rtp+=~/.vim/bundle/Vundle
"call vundle#rc()
"Bundle 'gmarik/vundle
"*******************************************************插件管理*********************************************************
4、vim的基础设置几乎都在这里了,假如你需要语法高亮,就将语法高亮行加进来即可,具体看注释,根据自己的需求定制即可
"******************************************************选项设置**********************************************************
syntax on "语法高亮
filetype indent on "文件脚本自动缩进
filetype plugin on "文件类型特定脚本缩进
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
"highlight OverLength ctermbg=red ctermfg=white
match OverLength /\%109v.\+/
set completeopt=longest,menu
"set list "让tab显示成>-------->--------
"set listchars=tab:>-,trail:-,extends:>,precedes:< "配合上边的语句完成
set nocompatible "关闭vi兼容模式
set t_Co=256 "开启vim的256颜色支持
set nobackup "覆盖文件时不备份
set autoindent "插入模式下输入<cr>或使用"o"或"O"命令开新行,从当前行复制缩进距离
set shiftwidth=4 "(自动)缩进每一步使用的空白数目
set softtabstop=4 "执行插入时,<Tab>算作空格的数目,可以改为4
set noexpandtab "不用空格展开<Tab>
set scrolloff=1 "光标上下两侧最少保留的屏幕行数
set sidescrolloff=5 "如果设置'nowrap',光标左右两侧保留的最少屏幕列数
set sidescroll=1 "水平滚动时滚动的最少列数
set showcmd "在屏幕最后一行显示 (部分的) 命令
set showmode "在插入、替换和可视模式里,在最后一行提供消息
set hidden "放弃时隐藏缓冲区
set wildmenu "'wildmenu'打开时,命令行补全以增强模式运行
set wildmode=list:full "用'widechar'指定的字符所用的补全模式
set novisualbell "不使用可视响铃
set number "在每行前面显示行号
set numberwidth=3 "行号使用的最小列数
set ignorecase "搜索模式里忽略大小写
set smartcase "搜索模式里包含大写字符,不使用ignorecase选项
set incsearch "输入搜索命令时,显示目前输入的模式的匹配位置。匹配的字符串被高亮
set hlsearch "搜索时高亮显示被找到的文本
set showmatch "插入括号时,短暂地跳转到匹配的对应括号
set matchtime=5 "短暂跳转到匹配括号的时间
set textwidth=122 "设定文本的宽度为122个字符时自动断行
"set columns=75 "设置文本达到columns宽度时自动换行
set wrap "设置文本达到textwidth宽度时自动换行,但实际文件还是一行
"set nowrap "设置文本达到textwidth宽度时不自动换行
set complete+=k "关键字补全,扫描 'dictionary' 选项给出的文件
set history=255 "命令的历史和最近搜索模式的历史被记住。本项决定分别记多少项历史
set wildignore+=*.svn "文件名补全时忽略.svn
set nosplitbelow "窗口的分割会把新窗口放到当前窗口之下
set nosplitright "窗口的分割会把新窗口放到当前窗口之右
"set background=dark "设置背景为暗色
set virtualedit+=block "在可视模式下可以选择一个方块
set autoread "当文件在外部被修改时,自动重新读取
set autowrite "自动保存文件
"set cmdheight=2 "设定命令行的行数为1
"set cursorcolumn "突出显示当前列
set autochdir "自动切换当前目录为当前文件所在的目录
set helplang=cn "设置帮助语言
set iskeyword+=_,$,@,%,#,- "带有这些字符的单词不要被换行分割
set backspace=2 "使用回格键
set backspace=indent,eol,start "影响 <BS>、<Del>、CTRL-W和CTRL-U在插入模式下的工作方式
set noswapfile "没有交换文件
"set undofile "持久撤销功能
set foldlevel=99 "设置折叠级别: 高于此级别的折叠会被关闭
set foldclose=all "设置为自动关闭折叠
set foldenable "开始折叠
set foldmethod=syntax "语法高亮项目指定折叠
set foldcolumn=0 "设置折叠区域的宽度,显示折叠列
set cursorline "突出显示当前行
set ruler "显示状态栏标尺
set rulerformat =%33(%2*%<%=\修改:\%{strftime(\"%H:%M\",getftime(expand(\"%\")))}\ 光标:\%l\行\ %c%V\列\ %p%%%)
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 "设置编码
set formatoptions+=q "描述自动排版如何进行的字母序列
set formatoptions+=r
set formatoptions+=n
"set formatoptions+=1
"set colorcolumn=+1
set smartindent "开启新行时使用智能自动缩进 "******************************************************选项设置********************************************************** "======================================================添加注释==========================================================
"将键盘上的F10功能键映射为添加作者信息的快捷键 进行版权声明的设置
map <F10> :call TitleDet()<cr>
"添加文件信息
function AddTitle()
call append(0,"/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
call append(1," * 作者代号: *** :guochaoxxl")
call append(2," * 版权声明: *** :(魎魍魅魑)GPL3")
call append(3," * 联络信箱: *** :guochaoxxl@gmail.com")
"call append(4," * 文档用途: *** :C++探秘——68讲贯通C++练习代码")
"call append(4," * 文档用途: *** :设计模式其实很简单Java")
call append(4," * 文档用途: *** :深入理解C指针")
call append(5," * 文档信息: *** :".expand("%:p:~"))
call append(6," * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
call append(7," * 代码说明: *** :自行添加")
call append(8," * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
"echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
"更新最近修改时间和文件名
function UpdateTitle()
normal m'
execute '/修订时间:/s@:.*$@\=strftime(": *** *%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)")@'
normal ''
normal mk
execute '/文档信息:/s@:.*$@\=": *** :".expand("%:p:~")@'
execute "noh"
normal 'k
"echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"判断前10行代码里面,是否有Last modified这个单词,如果没有,需要添加作者信息;如果有,只需要更新即可
function TitleDet()
let n=1
"更新注释信息
while n < 10
let line = getline(n)
if line =~ '^\ \ \**\s*\S*修订时间:\S*.:$'
call UpdateTitle()
return
endif
let n = n + 1
endwhile
"添加注释信息
call AddTitle()
endfunction "======================================================添加注释========================================================== "======================================================编译运行==========================================================
"通过键盘F9映射快速实现编译与运行
map <F9> :call CompileRun()<cr>
function CompileRun()
exec "w"
if &filetype == 'c'
exec "!gcc -g % -o %<"
exec "!%<"
elseif &filetype == 'cpp'
exec "!g++ -g % -o %<"
exec "!%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
else
exec "echo not support filetype!"
endif
endfunction "======================================================编译运行========================================================== "******************************************************杂项设置**********************************************************
"set tags=~/WORKM/ANDROID_SRC/ ab psvm public static void main "试试缩写好用吗
let NERDTreeQuitOnOpen=1
let NERDTreeDirArrows=0
let NERDTreeWinSize=40
let NERDRemoveExtraSpaces=0
let g:bufExplorerDisableDefaultKeyMapping = 1
let g:acp_behaviorKeywordCommand = "\<C-o>"
let g:acp_behaviorKeywordLength = -1
let g:acp_behaviorFileLength = -1
let g:SuperTabDefaultCompletionType = "<c-n>"
let g:SuperTabLongestHighlight = 1
let g:tagbar_sort=0
let g:tagbar_compact=1
let g:tagbar_foldlevel=1
let g:tagbar_iconchars=['+', '-']
let OmniCpp_SelectFirstItem = 2
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_MayCompleteScope = 1 "******************************************************杂项设置********************************************************** "######################################################自动补全##########################################################
: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
if getline('.') == a:char
return "\<Right>"
else
return a:char
endif
endfunction "######################################################自动补全########################################################## "====================================================##按键映射==========================================================
map e ea
"map e ea "移动到单词结尾时就自动进入插入模式
map + <C-w>+ "增减窗口尺寸
map _ <C-w>-
map <silent> <F2> :NERDTreeToggle<cr> "tarbar functon list
map <silent> <F3> :TagbarToggle<cr> "header and implement file switch
map <F4> :A<cr> "update index
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
map <F6> :set list!<cr>:set list?<cr> "highlight
map <F7> ms:%s /\<<C-R>=expand("<cword>")<CR>\>//gn<cr>` "swapfile list
map <silent> <F8> :BufExplorer<CR> "comment visual line
nmap <C-[>g :cs find g <C-R>=expand("<cword>")<CR><CR> "list the funcion called by this function
nmap <C-[>d :cs find d <C-R>=expand("<cword>")<CR><CR> "list the position where to call this word
nmap <C-[>c :cs find c <C-R>=expand("<cword>")<CR><CR> "search word in the project
nmap <C-[>s :cs find s <C-R>=expand("<cword>")<CR><CR> "search word in the project and the word can be in text
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
nmap <C-[>e :cs find e <C-R>=expand("<cword>")<CR><CR> "list the file which filename is this word
nmap <C-[>f :cs find f <C-R>=expand("<cfile>")<CR><CR> "list the file include the file which filename is this word
nmap <C-[>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> "list the file which include this file
nmap <C-[>I :cs find i <C-R>=expand("%:t")<CR><CR>
"nnoremap j gj "自动换行时可在行中移动
"nnoremap k gk
nnoremap <C-h> <C-w>h "在分割的窗口间移动
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
noremap <S-h> :bp<cr> "在buffer间移动
noremap <S-l> :bn<cr>
"用空格键来开关折叠
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
vnoremap <silent> , :call NERDComment(1, "alignLeft")<cr> "uncomment visual line
vnoremap <silent> . :call NERDComment(1, "uncomment")<cr> "show list if more tag if has("cscope")
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
endif "======================================================按键映射========================================================== "======================================================跳转位置==========================================================
if has("autocmd") "打开文件时,自动跳转到光标最后所在的位置
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal! g'\"" | endif
endif "######################################################跳转位置##########################################################
其他的同上

链接: 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此时应该就有语法高亮和行号了,此处应该加上热泪和掌声。

vim的语法高亮及配置文件说明的更多相关文章

  1. vim 配置语法高亮 行号标示

    配置VIM主要是开启VIM的语法高亮和行号标示,因为默认在用户目录(~)下没有vimrc,所以需要先去复制一个,然后再编辑 cp /etc/vim/vimrc ~/.vimrc vim .vimrc ...

  2. Mac下Vim配置语法高亮

    设置终端的字体颜色 如图,打开终端然后,选择偏好设置,再选择描述文件,再窗口左侧可以选择系统配置好的,或者你也可以自定义,最后别忘了把你的配置设置成默认就行 Vim语法高亮设置 只需要找到vimrc配 ...

  3. VIM C++语法高亮配色

    因工作需求,必须在终端下远程下代码,vim打开cpp/h文件,看到一连串的字母就傻了,根本无法阅读. 后来才知道VIM这高大上的文本编辑器支持很多的功能,很多的功能.首先最基本的就是语法高亮配色 1. ...

  4. 如何设置nesC在vim中语法高亮

    默认的vim没有支持nesC语法高亮,给阅读源码带来不便.不过可以通过装NesC Syntax Highlighting插件来解决这个问题,具体操作如下:   步骤一:下载插件 在http://www ...

  5. VIM 自定义语法高亮配置

    VIM 没有自动支持语法高亮,自己动手搞一搞,网上查了一堆资料,终于配置成功, 记录一下,以便后期查看. 总共两步: step1 : 定义语法规则 1)需要创建一个定义语法规则的文件,这个 actio ...

  6. Fedora CentOS Red Hat中让vim支持语法高亮设置

    Fedora / CentOS / Red Hat这三个系统里默认的vi是没有语法高亮显示的,白色的字体看起来很不舒服. 首先用命令行cat /etc/os-release查看当前linux系统的类型 ...

  7. vim自定义语法高亮(syntax highlight)设置流程

    这里用一个非常简单的例子来展示vim自定义自己的语法并高亮显示的设置流程. 所使用的实例语言是python,为了区分vim自带的python语法,我们把文件名保存为test.me,其内容如下图所示: ...

  8. 【小技能整理】mac vim开启语法高亮

    步骤1: cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc 步骤2: vi ...

  9. vim设置语法高亮

    在vim安装目录中的_vimrc修改,加上以下的代码. set nu! colorscheme desert      syntax enable      syntax on

随机推荐

  1. day23-python之日志 re模块

    1.logging import logging #-----------------------------------logging.basicConfig logging.basicConfig ...

  2. 将Web项目War包部署到Tomcat服务器基本步骤(完整版)

    1. 常识:   1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码. 当开发人员在自己 ...

  3. Linux下 导入导出数据库

    1.怎么找到mysql下的bin? 1.1首先我在网上百度了一些Linux下如何导入导出数据.基本都是用mysqldump命令,但是如果没有到指定目录 下,执行这个命令是没有用的.一开始我还以为要在m ...

  4. 等比例适配所有屏幕---css3 rem用法

    1,rem的定义 rem(font size of the root element)是指相对于根元素的字体大小的单位.rem是一个相对单位.和em非常相似.em(font size of the e ...

  5. cf936c Lock Puzzle

    ref #include <algorithm> #include <iostream> #include <cstring> #include <cstdi ...

  6. luogu1829 [国家集训队]Crash的数字表格

    被 bs 了姿势水平--好好学习数学QAQQAQQAQ ref #include <iostream> #include <cstring> #include <cstd ...

  7. laravel5.2总结--路由

      1 基本路由   1.1 定义路由的文件 app/Http/routes.php   1.2 最基本的路由: Route::get(''index", function () { ret ...

  8. getshell不用英文数字 或者不用下划线

    getshell不用英文字母和数字 上代码 实际代码没有echo strlen($code);我测试的时候加上去的 思路是eval执行getFlag函数. 过滤了字母和数字,长度得小于40 直接看pa ...

  9. 《HTTP协议详解》读书笔记---请求篇之情求方法

    之前对于网络这一块不是很清楚,值知道TCP/IP协议,三次握手四次握手之类的很笼统,零碎的知识,现在打算系统学习下网络相关的知识,先从http协议开始. 本人,还是新手,对于一些知识如果有理解错误的, ...

  10. Python-S9-Day128——算法基础Algorithm

    01 算法基本概念与递归: 02 二分查找与LOW B三人组 03 快速排序 04 归并排序 01 算法基本概念与递归: 1.1 算法概念 1.2 复习:递归 1.3 时间复杂度 1.4 空间复杂度 ...