vim之插件(七)

vim之所以强大而好用,我觉得是很多人为之努力,写了很多好用的插件来让编码更高效。以下是我在使用windows+gvim的过程中,总结的具体过程,以便大家一起学习。
##vundle—插件管理者

  1. 安装vundle
    官方安装教程(英文版)
    1. 首先需要安装git
    2. 配置Curl脚本,在Git的路径下的cmd目录下新建一个文件,名为curl.cmd,
      编辑内容为
@rem Do not use "echo off" to not affect any child calls.  
@setlocal  
@rem Get the abolute path to the parent directory, which is assumed to be the  
@rem Git installation root.  
@for /F "delims=" %%I in ("%~dp0..") do @set git_install_root=%%~fI  
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%PATH%   
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%  
@if not exist "%HOME%" @set HOME=%USERPROFILE%  
@curl.exe %*
3. 打开 git bash,输入以下命令

git clone https://github.com/VundleVim/Vundle.vim.git D:/vim/vimfiles/bundle.vim/bundle/Vundle.vim
在这里,我将vundle安装在D:\vim\vimfiles\bundle下。

  1. 配置vundle
    用vim打开_vimrc,输入以下代码:
set nocompatible
filetype off
syntax on    "语法高亮
set rtp+=D:/vim/vimfiles/bundle/Vundle.vim/
call vundle#begin('D:/vim/vimfiles/bundle/')
Plugin 'VundleVim/Vundle.vim'
"这里输入你所需要的插件名字----看不懂?往下看
Plugin 'tpope/vim-fugitive'
Plugin 'vimwiki'
Plugin 'git://git.wincent.com/command-t.git'
call vundle#end() 
filetype plugin indent on

我将以后要安装的插件放在了D:/vim/vimfiles/bundle/
3. 使用vundle
vundle安装插件的来源有四种:
1. 插件在github上,使用 github/插件名(项目名),如Plugin 'tpope/vim-fugitive'
2. 插件在http://vim-scripts.org/vim/scripts.html上,如: Plugin 'vimwiki'
3. 插件是非github上的git插件,如:Plugin 'git://git.wincent.com/command-t.git'
4. 自己的插件(Plugin 'Plugin 'file:///D:/download')和Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}看不懂,感觉也没什么用。

使用vundle管理插件,就是编辑_vimrc,你要安装一个插件,只需将插件名添加到_vimrc中,然后在vim中运行:PluginInstall,就可以了;如果你要删除这个插件,运行:PluginClean就可以删除对应的插件,同时你得将_vimrc中该插件的相关配置删除掉。
|vundle使用命令|说明|
|:|:|
|:PluginList | 显示已安装插件|
|:PluginInstall| 安装插件
|:PluginUpdate==:PluginInstall!|更新插件
|:PluginSearch foo|查找 foo 插件
|:PluginClean|删除_vimrc中没有的插件


##一些必备的插件

  1. ale(语法检查)安装: `Plugin 'w0rp/ale’`
    _vimrc中配置
	"-------ale-------
"始终开启标志列
let g:ale_sign_column_always = 1
let g:ale_set_highlights = 0
"自定义error和warning图标
let g:ale_sign_error = '✗'
let g:ale_sign_warning = '⚡'

python

  1. indentLine(缩进指示线)安装Plugin 'Yggdroot/indentLine'
  2. SimplyFold(折叠代码) 安装Plugin 'tmhedberg/SimpylFold'
    _vimrc中配置
	set foldmethod=indent  "根据每行的缩进开启折叠
	set foldlevel=99
	let g:SimpylFold_docstring_preview=1 "看到折叠代码的文档字符串
  1. Ctags(创建代码库的索引),从网站下载For Windows版本的Ctags,解压缩后拷贝ctags.exe到vim的安装目录下,相关命令如下:
    |命令|说明|
    |:|:|
    |:!ctags -R|可以生成tags文件;
    |g<C ]>==<C ]>|跳到匹配当前光标所在的关键字的第一处标签,前者可以匹配多个;
    |:pop===<C t>|反向遍历标签历史;
    |:tag|正向遍历标签历史;
    |:tag {keyword}| 跳转到匹配{keyword}的第一处标签
    |:tjump {keyword}| 提示用户从多个匹配项选择一个
    |:tnext/:tprev/:tfirst/:tlast|跳到 下/上/第一/最后 处匹配的标签
    |:tselect|提示用户从多个匹配项选择一个

  2. taglist(配合Ctags可以高效的查看源代码) 安装Plugin 'taglist.vim'命令:taglist 显示taglist窗口;
    _vimrc中配置

	"-----tagslist----
	let Tlist_Ctags_Cmd='D:\vim\vim81\ctags'  "关联ctags
	let Tlist_Use_Right_Window = 1  "让taglist窗口出现在Vim的右边
	:autocmd BufWritePost * call system("ctags -R")  "在每次自动保存时自动执行ctags

5.needtree(用于树形浏览文件系统) 安装Plugin'scrooloose/nerdtree'
:NERDTreeToggle显示窗口。 _vimrc中配置

let NERDTreeWinPos='right'
let NERDTreeWinSize=30

6.YouCompleteme(自动补全神器)因为windows上需要编译才可以运行,所以为了方便,下载别人编译好的,下载完后解压到bundle下的YouCompleteMe-x64中,最后配置python/.ycm_extra_conf.py(这个还没学会)。ps:如果你的python版本和vim版本不都是64位或者32位,你的gvim不会加载pythonX.dll(不会支持python)。


##Markdown

  1. 语法高亮
    vundle安装命令:Plugin 'godlygeek/tabular' Plugin 'plasticboy/vim-markdown' 注意顺序不能变。

  2. 实时动态显示
    windows下:vundle安装命令:Plugin 'iamcco/markdown-preview.vim' Plug 'iamcco/mathjax-support-for-mkdp'

    命令:MarkdownPreview打开浏览器预览markdown文件;MarkdownPreviewStop关闭预览
    _vimrc的相关配置:

let g:mkdp_auto_atart =1 "自动打开预览窗口


##_vimrc的相关内容

"------Vundle--------
set nocompatible
filetype off
syntax on    "语法高亮
set rtp+=D:/vim/vimfiles/bundle/Vundle.vim/
call vundle#begin('D:/vim/vimfiles/bundle/')
Plugin 'VundleVim/Vundle.vim'

Plugin 'snakeleon/YouCompleteMe-x64'
Plugin 'octol/vim-cpp-enhanced-highlight'

Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown' 
Plugin 'iamcco/markdown-preview.vim'

Plugin 'EditPlus'
Plugin 'git://git.wincent.com/command-t.git'

"----python----
Plugin 'taglist.vim'
Plugin 'vim-scripts/indentpython.vim' "自动缩进
Plugin 'Yggdroot/indentLine' "缩进指示线
Plugin 'davidhalter/jedi'
 
"Plugin 'Valloric/YouCompleteMe'
"Plugin 'file:///D:/download'
"Plugin 'rstacruz/sparkup', {'rtp': 'vim'}
call vundle#end()            " required
filetype plugin indent on    " required

set nobackup "取消自动生成备份文件
set number  "设置行号
set relativenumber "设置相对行号
  "编码
let &termencoding=&encoding
set encoding=utf-8
set fileencodings=utf-8,gbk
"代码折叠
set foldmethod=indent
set foldlevel=99

let $LANG = 'en'
set langmenu=en
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

set tabstop=4 "tab宽度
set softtabstop=4
set shiftwidth=4
    
"-----tagslist----
let Tlist_Ctags_Cmd='D:\vim\vim81\ctags' "
let Tlist_Use_Right_Window = 1 "让taglist窗口出现在Vim的右边

"-------markdown-preview----
let g:mkdp_auto_atart =1 "自动打开预览窗口

"-----运行python-----
"工作路径设置
exec 'cd '  . fnameescape('D:\mypython\spyder_python3\test11')
set guifont=consolas:h15

map <F5> :call RunP()<CR>
func! RunP()
	exec "w"
    if &filetype == 'python'
        exec "!python.exe %"
	elseif &filetype == 'c'
		"exec "!gcc % && %:r"
		exec "!g++ % -o %:r && %:r"
	elseif &filetype == 'cpp'
		exec "!g++ % -o %:r && %:r"
	elseif &filetype == 'java'
		exec "!javac % && java %:r"
    endif
endfunc

autocmd BufNewFile *.cpp,*.c,*.java exec ":call SetTile()"
func SetTile()
	if &filetype == 'c'
		call append(0, "#include<stdio.h>")
        call append(1, "int main()")
        call append(2, "{")
        call append(3, "	")
        call append(4, "	")
        call append(5, "	return 0;")
        call append(6, "}")
	elseif &filetype == 'cpp'
		call append(0, "#include<iostream>")
		call append(1, "using namespace std;")
		call append(2, "int main()")
		call append(3, "{")
		call append(4, "	")
		call append(5, "	return 0;")
		call append(6, "}")
	elseif &filetype == 'java'	
		call append(0, "public class ")
		call append(1, "{")
		call append(2, "	public static void main(String[] args)")
		call append(3, "	{")
		call append(4, "		")
		call append(5, "	}")
		call append(6, "}")
	endif
"	autocmd BufNewFile * normal H 
endfunc

ps:
如果你
要在windows下编译运行c/c++,需要下载MinGW。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值