神级编辑器VIM配置文件给.vimrc

"TNERDTree settings
" " 打开vim自动打开目录树
"autocmd vimenter * NERDTree
" " 关闭文件后,如果只剩目录树窗口,则直接关闭
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree")) | q | endif
" " F2键开启/关闭目录树
map <F2> :NERDTreeToggle<cr>
" " 将目录树窗口设置在左边
let g:NERDTreeWinPos="left"
" " 设置目录树窗口宽度为30
let g:NERDTreeWinSize=30
" " 显示目录树窗口行号
let g:NERDTreeShowLineNumbers=1

"--------------------------------------------------
"                     YCM
"--------------------------------------------------

" 菜单
highlight Pmenu ctermfg=2 ctermbg=3 guifg=#005f87 guibg=#EEE8D5
" 选中项
highlight PmenuSel ctermfg=2 ctermbg=3 guifg=#AFD700 guibg=#106900
let g:ycm_server_python_interpreter=‘/usr/bin/python‘
let g:ycm_global_ycm_extra_conf=‘~/.vim/.ycm_extra_conf.py‘

  " YCM 查找定义
let mapleader=‘,‘
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
let g:ycm_collect_identifiers_from_tags_files = 1

set completeopt=menu,menuone
let g:ycm_add_preview_to_completeopt = 0  " 关闭函数原型提示

let g:ycm_show_diagnostics_ui = 0 " 关闭诊断信息
let g:ycm_server_log_level = ‘info‘
let g:ycm_min_num_identifier_candidate_chars = 2  " 两个字符触发 补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 收集
let g:ycm_complete_in_strings=1

noremap <c-z> <NOP>
let g:ycm_key_invoke_completion = ‘<c-z>‘   " YCM 里触发语义补全有一个快捷键
let g:ycm_max_num_candidates = 15  " 候选数量

let g:ycm_semantic_triggers =  {
                        \ ‘c,cpp,python,java,go,erlang,perl‘: [‘re!\w{2}‘],
                        \ ‘cs,lua,javascript‘: [‘re!\w{2}‘],
                        \ }

"----------------------------------------
"              ctags: ctags -R
"----------------------------------------
if filereadable("tags")
        set tags=tags
endif

"------------------------------------------------------
"                       实用设置
"------------------------------------------------------
set nu

" 为C程序提供自动缩进
set smartindent

"自动补全
: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
                return "\<Right>"
        else
                return a:char
        endif
endfunction

"--------------------------------------------------------
          "新建.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: velma")
                call append(line(".")+2, "\# mail: [email protected]")
                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:velma")
                call append(line(".")+2, "      > Mail: [email protected] ")
                call append(line(".")+3, "      > Created Time: ".strftime("%c"))
                call append(line(".")+4, " ************************************************************************/")
                call append(line(".")+5, "")
         endif
         if &filetype == ‘cpp‘
                 call append(line(".")+6, "#include <iostream>")
                 call append(line(".")+7, "using namespace std;")
                 call append(line(".")+8, "")
         endif
         if &filetype == ‘c‘
                 call append(line(".")+6, "#include <stdio.h>")
                 call append(line(".")+7, "")
         endif
         "       if &filetype == ‘java‘
         "               call append(line(".")+6,"public class ".expand("%"))
         "               call append(line(".")+7,"")
         "       endif
         "新建文件后,自动定位到文件末尾
 "       autocmd BufNewFile * normal G
 endfunc
 "新建文件后,自动定位到文件末尾
 autocmd BufNewFile * normal G

set nocompatible              " 这是必需的
filetype off                  " 这是必需的
set rtp+=~/.vim/bundle/Vundle.vim
" vundle初始化
call vundle#begin()
" 让 Vundle 管理 Vundle, 必须
Plugin ‘VundleVim/Vundle.vim‘
Plugin ‘tpope/vim-fugitive‘
Plugin ‘rstacruz/sparkup‘, {‘rtp‘: ‘vim/‘}
Plugin ‘ascenator/L9‘, {‘name‘: ‘newL9‘}
Plugin ‘scrooloose/nerdtree‘
Plugin ‘Valloric/YouCompleteMe‘

call vundle#end()            " 这是必需的
filetype plugin indent on    " 这是必需的 

let g:ycm_server_python_interpreter=‘/usr/bin/python‘
let g:ycm_global_ycm_extra_conf=‘~/.vim/.ycm_extra_conf.py‘

" ***************** 全局设置 ************** "
"保持文件上次打开的位置
if has("autocmd")
    au BufReadPost * if line("‘\"") > 1 && line("‘\"") <= line("$") | exe "normal! g‘\"" | endif
endif
" 开启文件类型侦测
filetype on
" 根据侦测到的不同类型加载对应的插件
filetype plugin on

" 自动缩进
filetype indent on

" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on

"----------配置----------------
set history=1000 "设置历史记录
set nobackup    "取消自动备份,禁止生成临时文件
set noswapfile
set nocompatible "关闭兼容模式
set incsearch "开启实时搜索功能
set ignorecase "搜索忽略大小写
set wildmenu "vim命令自动补全
set autoread "文件自动更新
set gcr=a:block-blinkon0 "禁止关闭闪烁
set laststatus=2 "总是显示状态栏
set ruler "显示光标位置
set number "显示行号
set relativenumber "显示相对行号
set cuc "浅色显示当前行
set cul "浅色显示当前行
set showcmd "输入的命令显示出来
set cmdheight=2 "命令行高度
set nofoldenable
set foldmethod=manual "允许手动折叠
set backspace=2 "回退键生效
"set backspace=indent,eol,start
set novisualbell

" 禁止显示滚动条
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R

" 禁止显示菜单和工具条
set guioptions-=m
set guioptions-=T

" 将制表符扩展为空格
set expandtab
" 设置编辑时制表符占用空格数
set tabstop=4
" 设置格式化时制表符占用空格数
set shiftwidth=4
" 让 vim 把连续数量的空格视为一个制表符
set softtabstop=4
" 基于缩进或语法进行代码折叠
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable
" 交互式打开shell
set shell=bash\ -i

" *************** 设置全局快捷键 *****************

" 定义快捷键的前缀,即<Leader>
"let mapleader="\<space>"
let mapleader="‘"

" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <Leader>y "+y

" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <Leader>p "+p

" 定义快捷键关闭当前分割窗口
nmap <Leader>q :q<CR>

" 定义快捷键保存当前窗口内容
nmap <Leader>w :w<CR>

" 定义快捷键保存所有窗口内容并退出 vim
"nmap <Leader>WQ :wa<CR>:q<CR>

" 不做任何保存,直接退出 vim

原文地址:https://www.cnblogs.com/weimin1314/p/12558115.html

时间: 2024-10-15 06:50:12

神级编辑器VIM配置文件给.vimrc的相关文章

Vim 配置文件===/etc/vimrc

1.替换方法 替换对应的vimrc文件,定制自己的vimrc /etc/vimrc              替换此文件: /home/lmy/.vimrc     只对当前用户有效: Ubuntu9.10:替换/etc/vim/vimrc,可以在新立得软件包管理器,查看vim到安装路径: CentOS5.3:替换/etc/vimrc,vim安装目录:/usr/share/vim/vim70: taglist.vim.winmanager.vim.supertab.vim等插件copy到相应到位

Vim配置文件(Vimrc)

嘛……后面的比赛基本都是在NOI Linux下进行了,windows下的开发环境基本都不能用了>_>果断转了vim,记录一下vim的配置文件- 1 set nu 2 syntax on 3 filetype indent on 4 set shiftwidth=4 5 set tabstop=4 6 set smartindent 7 set cindent 8 set autochdir 9 set showmatch 10 map<F9> :w<CR> :!g++

神级编辑器 sublime text 和 神级插件 emmet

h1{foo}和a[href=#] 生成如下代码 <h1>foo</h1>  <a href="#"></a> 嵌套的使用 >:子元素符号,表示嵌套的元素 +:同级标签符号 ^:可以使该符号前的标签提升一行 (.foo>h1)+(.bar>h2) <div class="foo"> <h1></h1> </div> <div class="

跟我一起学Vim补全神级插件--YouCompleteMe

最近重拾Vim,编译部署来补全插件YCM,这个插件的补全效果和在写C代码的时候的自动提示错误信息等还是十分棒的,写点心得下来,也算给自己做个备忘. 快速安装: 首先参考我的.vimrc配置,用Vundle安装好之后,进入YCM的文件夹.vim/bundle/YouCompleteMe会找到install.sh脚本文件.这个时候如果你需要C语言系的语义补全你需要在运行install.sh脚本之后手动加入命令--clang-completer,即可进行自动安装,此时YCM会去Clang的官网去下载l

VIM自动补全插件 - YouCompleteMe--&quot;大神级vim补全插件&quot;

VIM自动补全插件 - YouCompleteMe 序言 vim 之所以被称为编辑器之神多半归功于其丰富的可DIY的灵活插件功能,( 例如vim下的这款神级般的代码补全插件YouCompleteMe), 使用VIM的用户也多半感觉 IDE开发工具不够轻便,且IDE往往只支持特定的几种语言或者特定系统平台,多数人用来用去,还是觉得VIM最顺手,用起来最舒心. 下面这个VIM的自动补全插件——YouCompleteMe,为我们弥补了vim不能自动补全的缺憾.YCM不仅仅对C族语言的支持非常好,而且它

[转] vim配置文件.vimrc

--------------------------------------------------------------------------- 转自:http://www.cnblogs.com/wangj08/archive/2013/03/13/2957309.html ------------------------------------------------------------------------------------- vim 配置文件 ,高亮+自动缩进+行号+折

程序员的编辑器——VIM

from:http://blog.chinaunix.net/uid-11278770-id-148579.html Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册 博文      博主 todaygoodtodaygood.blog.chinaunix.net Linux,Virtualization ChinaUnix博客技术文章推荐标准和规范 有奖征集:文集--博客系列博文管理 CU博客频道6月技术图书有奖试读活动 首页 | 博文目录 | 关于我 todaygoo

[Linux学习笔记] Linux文本编辑器Vim/Vi

文本编辑器Vim: Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器. 它的作用是建立.编辑.显示文本文件. Vim/Vi没有菜单,只有命令. 插入命令 命令 作用 a 在光标后附加文本 A 在本行行末附加文本 i 在光标前插入文本 I 在本行开始插入文本 o 在光标下插入新行 O 在光标上插入新行 定位命令 命令 作用 h 方向左键. 左移一个字符 j 方向下键. 下移一行 k 方向上键. 上移一行 l 方向右键. 右移一个字符 $ 移至行尾 0 移至行

强大的vim配置文件,让编程更随意

花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按"F8"可进行C.C++代码的调试 2.自动插入文件头 ,新建C.C++源文件时自动插入表头:包括文件名.作者.联系方式.建立时间等,读者可根据需求自行更改 3.映射"Ctrl + A"为全选并复制快捷键,方便复制代码 4.按"F2"可以直接消除代码中的空行 5."F3"