vim怎么编写配置文件|vim中如何实现c++代码编写的自动格式化和语

|

1. 如何从零开始,写一份自己的 VIM 配置文件

vim 有一个自带 vimrc 示例,一般来说那是个人配置的一个很好的起点。

:hvimrc-intro

有对这个配置文件的详细解释,看过之后基本就对 vimrc 有个初步的认识了。

配置 vim 是件很困难的事情,除了要自己摸索(多看文档、逛论坛、多思考),最好还是身边有已经会的能随时请教,不然绕弯路很多。

2. linux下vim配置文件在哪

Vim的配置文件是/etc/vimrc这个文件,不过一般设置Vim并不是修改这个文件,而是新建一个~专/.vimrc文件,~符号表属示用户主文件夹,这样设置值就只针对当前用户。在这个文件里面写入设置值的格式,和/etc/vimrc这个文件的设置方法是一样的。

3. linux 操作系统 vim安装后怎么配置文件

"""""""""""""""""""" 显示相关 """"""""""""""""""""set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示 "winpos 5 5 " 设定窗口位置 "set lines=40 columns=155 " 设定窗口大小 "set nu " 显示行号 set go= " 不要图形按钮 "color asmanian2 " 设置背景主题 set guifont=Courier_New:h10:cANSI " 设置字体 "syntax on " 语法高亮 autocmd InsertLeave * se nocul " 用浅色高亮当前行 autocmd InsertEnter * se cul " 用浅色高亮当前行 "set ruler " 显示标尺 set showcmd " 输入的命令显示出来,看的清楚些 "set cmdheight=1 " 命令行(在状态行下)的高度,设置为1 "set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议) "set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离 set novisualbell " 不要闪烁(不明白) set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容 set laststatus=1 " 启动显示状态行(1),总是显示状态行(2) set foldenable " 允许折叠 set foldmethod=manual " 手动折叠 "set background=dark "背景使用黑色 set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 " 显示中文帮助if version >= 603set helplang=cnset encoding=utf-8endif" 设置配色方案"colorscheme murphy"字体 "if (has("gui_running")) " set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 "endifset fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8set fileencodings=ucs-bom,utf-8,cp936set fileencoding=utf-8""""""""""""""""""""""""""""""新文件标题"""""""""""新建.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: test") call append(line(".")+2, "\# mail: <a href="mailto:[email protected]">[email protected]</a>") call append(line(".")+3, "\# Created Time: ".strftime("%c")) call append(line(".")+4, "\#########################################################################") call append(line(".")+5, "\#!/bin/bash") call append(line(".")+6, "") else call setline(1, "/*************************************************************************") call append(line("."), " > File Name: ".expand("%")) call append(line(".")+1, " > Author: test") call append(line(".")+2, " > Mail: <a href="mailto:[email protected]">[email protected]</a> ") call append(line(".")+3, " > Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "")endifif &filetype == 'cpp'call append(line(".")+6, "#include<iostream>")call append(line(".")+7, "using namespace std;")call append(line(".")+8, "")endifif &filetype == 'c'call append(line(".")+6, "#include<stdio.h>")call append(line(".")+7, "")endif"新建文件后,自动定位到文件末尾autocmd BufNewFile * normal Gendfunc """"""""""""""""""""""""""""""""键盘命令"""""""""""""""""""""""""""""""nmap <leader>w :w!<cr>nmap <leader>f :find<cr>" 映射全选+复制 ctrl+amap <C-A> ggVGYmap! <C-A> <Esc>ggVGYmap <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':!./%endifendfunc"C,C++的调试map <F8> :call Rungdb()<CR>func! Rungdb()exec "w"exec "!g++ % -g -o %<"exec "!gdb ./%<"endfunc""""""""""""""""""""""""""实用设置""""""""""""""""""""""""" 设置当文件被改动时自动载入set autoread" quickfix模式autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>"代码补全 set completeopt=preview,menu "允许插件 filetype plugin on"共享剪贴板 set clipboard+=unnamed "从不备份 set nobackup"make 运行:set makeprg=g++\ -Wall\ \ %"自动保存set autowriteset ruler " 打开状态栏标尺set cursorline " 突出显示当前行set magic " 设置魔术set guioptions-=T " 隐藏工具栏set guioptions-=m " 隐藏菜单栏"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\" 设置在状态行显示的信息set foldcolumn=0set foldmethod=indent set foldlevel=3 set foldenable " 开始折叠" 不要使用vi的键盘模式,而是vim自己的set nocompatible" 语法高亮set syntax=on" 去掉输入错误的提示声音set noeb" 在处理未保存或只读文件的时候,弹出确认set confirm" 自动缩进set autoindentset cindent" Tab键的宽度set tabstop=4" 统一缩进为4set softtabstop=4set shiftwidth=4" 不要用空格代替制表符set noexpandtab" 在行和段开始处使用制表符set smarttab" 显示行号set number" 历史记录数set history=1000"禁止生成临时文件set nobackupset noswapfile"搜索忽略大小写set ignorecase"搜索逐字符高亮set hlsearchset incsearch"行内替换set gdefault"编码设置set enc=utf-8set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936"语言设置set langmenu=zh_CN.UTF-8set helplang=cn" 我的状态行显示的内容(包括文件类型和解码)"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]" 总是显示状态行set laststatus=2" 命令行(在状态行下)的高度,默认为1,这里是2set cmdheight=2" 侦测文件类型filetype on" 载入文件类型插件filetype plugin on" 为特定文件类型载入相关缩进文件filetype indent on" 保存全局变量set viminfo+=!" 带有如下符号的单词不要被换行分割set iskeyword+=_,$,@,%,#,-" 字符间插入的像素行数目set linespace=0" 增强模式中的命令行自动完成操作set wildmenu" 使回格键(backspace)正常处理indent, eol, start等set backspace=2" 允许backspace和光标键跨越行边界set whichwrap+=<,>,h,l" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)set mouse=aset selection=exclusiveset selectmode=mouse,key" 通过使用: commands命令,告诉我们文件的哪一行被改变过set report=0" 在被分割的窗口间显示空白,便于阅读set fillchars=vert:\ ,stl:\ ,stlnc:\" 高亮显示匹配的括号set showmatch" 匹配括号高亮的时间(单位是十分之一秒)set matchtime=1" 光标移动到buffer的顶部和底部时保持3行距离set scrolloff=3" 为C程序提供自动缩进set smartindent" 高亮显示普通txt文件(需要txt.vim脚本)au BufRead,BufNewFile * setfiletype txt"自动补全: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>ifunction! ClosePair(char)if getline('.')[col('.') – 1] == a:charreturn "\<Right>"elsereturn a:charendifendfunctionfiletype plugin indent on "打开文件类型检测, 加了这句才可以用智能补全set completeopt=longest,menu""""""""""""""""""""""""""""""""" CTags的设定 """"""""""""""""""""""""""""""""let Tlist_Sort_Type = "name" " 按照名称排序 let Tlist_Use_Right_Window = 1 " 在右侧显示窗口 let Tlist_Compart_Format = 1 " 压缩方式 let Tlist_Exist_OnlyWindow = 1 " 如果只有一个buffer,kill窗口也kill掉buffer let Tlist_File_Fold_Auto_Close = 0 " 不要关闭其他文件的tags let Tlist_Enable_Fold_Column = 0 " 不要显示折叠树 autocmd FileType java set tags+=D:\tools\java\tags "autocmd FileType h,cpp,cc,c set tags+=D:\tools\cpp\tags "let Tlist_Show_One_File=1 "不同时显示多个文件的tag,只显示当前文件的"设置tags set tags=tags "set autochdir""""""""""""""""""""""""""其他东东""""""""""""""""""""""""""默认打开Taglist let Tlist_Auto_Open=1 """""""""""""""""""""""""""""" " Tag list (ctags) """""""""""""""""""""""""""""""" let Tlist_Ctags_Cmd = '/usr/bin/ctags' let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口" minibufexpl插件的一般设置let g:miniBufExplMapWindowNavVim = 1let g:miniBufExplMapWindowNavArrows = 1let g:miniBufExplMapCTabSwitchBufs = 1let g:miniBufExplModSelTarget = 1上文是修改后的.vimrc文件就能使用。然后对于VIM的介绍3w(dot)linuxprobe/chapter-04(dot)html,书籍《linux就该这么学》。好了。

4. 如何设置个性化vim

下面是自定义vim配置文件,仅供参考!

"""""""""""""""""""""""""""""Keyboard Shortcut""""""""""""""""""""""""""""" 定义快捷键的前缀,即<Leader>let mapleader=";"" 定义快捷键到行首和行尾nmap LB 0nmap LE $" 设置快捷键将选中文本块复制至系统剪贴板vnoremap <Leader>y "+y" 设置快捷键将系统剪贴板内容粘贴至 vimnmap <Leader>p "+p" 定义快捷键关闭当前分割窗口nmap <leader>wq :wq<CR>nmap <Leader>q :q<CR>" 定义快捷键保存当前窗口内容nmap <Leader>w :w<CR>" 定义快捷键保存所有窗口内容并退出 vimnmap <Leader>WQ :wa<CR>:q<CR>" 不做任何保存,直接退出 vimnmap <Leader>Q :qa!<CR>" 依次遍历子窗口nnoremap nw <C-W><C-W>" 跳转至右方的窗口nnoremap <Leader>lw <C-W>l" 跳转至左方的窗口nnoremap <Leader>hw <C-W>h" 跳转至上方的子窗口nnoremap <Leader>kw <C-W>k" 跳转至下方的子窗口nnoremap <Leader>jw <C-W>j" 定义快捷键在结对符之间跳转nmap <Leader>M %" 显示/隐藏 MiniBufExplorer 窗口map <Leader>mt :MBEToggle<cr>" buffer 切换快捷键map <leader>bn :MBEbn<cr>map <leader>bp :MBEbp<cr>""""""""""""""""""""""""""Keyboard END""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""User Settings"""""""""""""""""""""""""""""""""""set nocompatible "关闭vim兼容模式set wildmenu "vim自身命令行模式智能补全set incsearchset ignorecaseset laststatus=2 " 总是显示状态栏set ruler " 显示光标当前位置set number " 开启行号显示set cursorline " 高亮显示当前行/列set cursorcolumnset hlsearch " 高亮显示搜索结果set nowrap " 禁止折行set expandtabset tabstop=4 " 设置编辑时制表符占用空格数set shiftwidth=4 " 设置格式化时制表符占用空格数set softtabstop=4 " 让 vim 把连续数量的空格视为一个制表符"""""""""""""""""""""""""User END"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Vundle Setting""""""""""""""""""""""""""""""""""filetype offset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin 'VundleVim/Vundle.vim'Plugin 'altercation/vim-colors-solarized'Plugin 'Lokaltog/vim-powerline'"Plugin 'octol/vim-cpp-enhanced-highlight'"Plugin 'tomasr/molokai'"Plugin 'nathanaelkane/vim-indent-guides'"Plugin 'derekwyatt/vim-fswitch'"Plugin 'kshenoy/vim-signature'Plugin 'majutsushi/tagbar'"Plugin 'vim-scripts/indexer.tar.gz'"Plugin 'vim-scripts/DfrankUtil'"Plugin 'vim-scripts/vimprj'"Plugin 'dyng/ctrlsf.vim'"Plugin 'terryma/vim-multiple-cursors'Plugin 'scrooloose/nerdcommenter'"Plugin 'vim-scripts/DrawIt'"Plugin 'SirVer/ultisnips'Plugin 'Valloric/YouCompleteMe'"Plugin 'derekwyatt/vim-protodef'Plugin 'scrooloose/nerdtree'Plugin 'jistr/vim-nerdtree-tabs'Plugin 'Xuyuanp/nerdtree-git-plugin'Plugin 'fholgado/minibufexpl.vim'"Plugin 'gcmt/wildfire.vim'"Plugin 'sjl/gundo.vim'"Plugin 'Lokaltog/vim-easymotion'"Plugin 'suan/vim-instant-markdown'"Plugin 'lilydjwg/fcitx.vim'"Plugin 'scrooloose/syntastic'"Plugin 'WolfgangMehner/vim-plugins'Plugin 'ctrlpvim/ctrlp.vim'Plugin 'c.vim'call vundle#end()filetype plugin indent onfiletype plugin on""""""""""""""""""""""""""""Vundle END""""""""""""""""""""""""""""""""""""syntax enable " 开启语法高亮功能syntax on " 允许用指定语法高亮配色方案替换默认方案filetype on "开启文件类型侦测"filetype plugin on "根据侦测到的不同类型加载对应的插件"filetype indent on " 自适应不同语言的智能缩进set background=darkcolorscheme solarizedset gcr=a:block-blinkon0set guioptions-=lset guioptions-=Lset guioptions-=rset guioptions-=Rset guioptions-=mset guioptions-=T" 设置状态栏主题风格let g:Powerline_colorscheme='solarized256'" 将制表符扩展为空格" 让配置变更立即生效"autocmd BufWritePost $MYVIMRC source $MYVIMRC" 随 vim 自启动"let g:indent_guides_enable_on_vim_startup=1" 从第二层开始可视化显示缩进let g:indent_guides_start_level=2" 色块宽度let g:indent_guides_guide_size=1" 快捷键 i 开/关缩进可视化:nmap <silent> <Leader>i <Plug>IndentGuidesToggle" 基于缩进或语法进行代码折叠set foldmethod=indentset foldmethod=syntax" 启动 vim 时关闭折叠代码set nofoldenable" *.cpp 和 *.h 间切换nmap <silent> <Leader>sw :FSHere<cr>" YCM 补全菜单配色" 菜单"highlight Pmenu ctermfg=2 ctermbg=3 guifg=#005f87 guibg=#EEE8D5" 选中项"highlight PmenuSel ctermfg=2 ctermbg=3 guifg=#AFD700 guibg=#106900" 补全功能在注释中同样有效"let g:ycm_complete_in_comments=1" 允许 vim 加载 .ycm_extra_conf.py 文件,不再提示"let g:ycm_confirm_extra_conf=0" 开启 YCM 标签补全引擎"let g:ycm_collect_identifiers_from_tags_files=1" 引入 C++ 标准库tags"set tags+=/data/misc/software/misc./vim/stdcpp.tags" YCM 集成 OmniCppComplete 补全引擎,设置其快捷键"inoremap <leader>; <C-x><C-o>" 补全内容不以分割子窗口形式出现,只显示补全列表"set completeopt-=preview" 从第一个键入字符就开始罗列匹配项"let g:ycm_min_num_of_chars_for_completion=1" 禁止缓存匹配项,每次都重新生成匹配项"let g:ycm_cache_omnifunc=0" 语法关键字补全 "let g:ycm_seed_identifiers_with_syntax=1""""""""""""""""""""""""""""""""""NREDTree Settings"""""""""""""""""""""""" 使用 NERDTree 插件查看工程文nmap <Leader>nt :NERDTreeToggle<CR>" 设置 NERDTree 子窗口宽度let NERDTreeWinSize=31" 设置 NERDTree 子窗口位置let NERDTreeWinPos="right""显示行号let NERDTreeShowLineNumber=1" 显示隐藏文件"let NERDTreeShowHidden=1" NERDTree 子窗口中不显示冗余帮助信息let NERDTreeMinimalUI=1" 删除文件时自动删除文件对应 bufferlet NERDTreeAutoDeleteBuffer=1"忽略下面类型的文件let NERDTreeIgnore=['.pyc','~$','.swp']"显示书签列表"let NERDTreeShowBookmarks=1""""""""""""""""""vim-nerdtree-tabs settings""""""""""""""终端运行vim时打开NERDTree窗口"let g:nerdtree_tabs_open_on_console_startup=1"""""""""""""""""nerdtree-git-plugin settings"""""""""""let g:NERDTreeIndicatorMapCustom = { "Modified" : "✹", "Staged" : "✚", "Untracked" : "✭", "Renamed" : "➜", "Unmerged" : "═", "Deleted" : "✖", "Dirty" : "✗", "Clean" : "✔︎", "Unknown" : "?" }"""""""""""""""""""""""""""""""""NERDTree END"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""CtrlP Settings""""""""""""""""""""""""""""let g:ctrlp_map = '<c-p>'let g:ctrlp_cmd = 'CtrlP'"disable the plugin completely"let g:loaded_ctrlp =1"CtrlP sets its local working directory according to this variablelet g:ctrlp_working_path_mode = 'ra'"""""""""""""""""""""""""""""""Ctrel END"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Tagbar Settings"""""""""""""""""""""""""""" 设置 tagbar 子窗口的位置出现在主编辑区的左边 let tagbar_left=1 " 设置显示/隐藏标签列表子窗口的快捷键nnoremap <Leader>tb :TagbarToggle<CR> " 设置标签子窗口的宽度 let tagbar_width=31 " tagbar 子窗口中不显示冗余帮助信息 let g:tagbar_compact=1" 设置 ctags 对哪些代码标识符生成标签let g:tagbar_type_cpp = { 'kinds' : [ 'c:classes:0:1', 'd:macros:0:1', 'e:enumerators:0:0', 'f:functions:0:1', 'g:enumeration:0:1', 'l:local:0:1', 'm:members:0:1', 'n:namespaces:0:1', 'p:functions_prototypes:0:1', 's:structs:0:1', 't:typedefs:0:1', 'u:unions:0:1', 'v:global:0:1', 'x:external:0:1' ], 'sro' : '::', 'kind2scope' : { 'g' : 'enum', 'n' : 'namespace', 'c' : 'class', 's' : 'struct', 'u' : 'union' }, 'scope2kind' : { 'enum' : 'g', 'namespace' : 'n', 'class' : 'c', 'struct' : 's', 'union' : 'u' } }"""""""""""""""""""""""""""""Tagbar END""""""""""""""""""""""""""""""""let g:C_FormatDate='%Y/%m/%d'let g:C_FormatTime='%H:%M:%S'1272273274275276

效果图

5. vim的配置文件在哪

配置文件在哪里当我们使用vim时,你需要知道一系列的配置文件.这些配置文件的位置依赖于vim的安装位置和你所使用的操作系统.通常,有三个配置文件,你是必须知道在哪里能找到的.vimrc这是vim最主要的配置文件.它有两个版本,全局版本(global)和用户版本(personal)).全局vimrc文件放在你安装vim的目录中.你可以打开vim,在普通模式下输入下面的命令来找出这个目录的位置:echo$vim结果应该是这样的:

6. 怎样配置vim环境

vim 的配置文件要用到它自己的脚本语言,通常称作 vim-script,配置本身就是编程。vim 有自己的一套加载机制,所以不同的配置文件可以同时存在,让 vim 变得非常灵活。对于初学者来说,学习 vim-script 可能比较困难,建议先用 vim 的默认配置,然后从最简单的配置更改起(比如定义一些顺手的映射)。也可以网上搜一些别人写好的插件来用,但通常这些插件也需要配置,另外还要学习插件的用法。如果初学某种语言,建议用现成的 IDE。不要让 vim 和语言的学习同时进行,不然二者加起来难度太大容易失去兴趣。如果 vim 已经用的很好了,也可以先用用现成的 IDE,看看有什么顺手的工具,将来可以和 vim 的编辑结合起来用。

7. vim 配置文件怎么写,是什么语法。有使用手册么

vim配置不需要学习的,就是设置一下变量而已,比如set number然后你的编辑器显示行数了,你可以看看别人的vimrc文件(带注释的),这样就一下子学会了。

8. vim中如何实现c++代码编写的自动格式化和语

在Fedora中vim的配置文件存放在/etc目录中,配置文件名为vimrc在终端 输入以下命令来编辑回vimrc配置文件:答sudo vim /etc/vim/vimrc或者sudo gedit /etc/vim/vimrc1、显示行号在文件末端添加一新行,输入 set nu2、语法高亮在文件中找到 "syntax on 这一行,去掉前面的双引号",双引号是注释的意思3、自动缩进其中autoindent 是自动缩进; cindent是特别针对 C语言语法自动缩进 注意:如果设置好以上设置后,VIM没有作出相应的动作,那么请你把你的VIM升级到最新版,一般只要在终端输入以下命令即可:sudo apt-get install vim

9. 把“设置语法高亮”命令写进vim配置文件

1:syntaxon"语法高亮syntaxenable我这有一个_vimrc的那个配置文件,语法都是高亮的,其他的设置也非常nice,如果想要,我可以发给你,你可以替换一下,看看效果。2:使用列编辑①命令模式下CTRL+q②然后使用HJKL四个键来移动和选中相关的行和列,你发现你可以选中一个区块了,千万不能用鼠标。③如果想在区块的左侧增加一列文本,选中区块后,按大写的I,然后光标自动到区块左上角的位置,你可以输入内容了,你可能以为怎么不是每列都插入啊?别急啊,输完内容后按ESC键,奇迹发生了,每行都增加了同样的内容。④如果想删除一个区块,更容易,选中后按DEL即可,


赞 (0)