vim python和golang开发环境配置
首先在~下新建目录.vim和配置文件.vimrc,.vimrc内容如下:
syntax on
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
set tags=~/tags
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
" Plugin 'Valloric/YouCompleteMe'
Plugin 'SirVer/ultisnips'
Plugin 'fatih/vim-go'
Plugin 'tmhedberg/SimpylFold'
Plugin 'scrooloose/syntastic'
Plugin 'nvie/vim-flake8'
Plugin 'scrooloose/nerdtree'
Plugin 'vim-scripts/indentpython.vim'
Plugin 'kien/ctrlp.vim'
Plugin 'dgryski/vim-godef'
Plugin 'Blackrush/vim-gocode'
Plugin 'majutsushi/tagbar'
Plugin 'python-mode/python-mode'
call vundle#end() " required
filetype plugin indent on " required
set go= " 不要图形按钮
set guifont=Courier_New:h10:cANSI " 设置字体
autocmd InsertLeave * se nocul " 用浅色高亮当前行
autocmd InsertEnter * se cul " 用浅色高亮当前行
autocmd BufWritePre *.go :Fmt
set nu
set ruler " 显示标尺
set fileencodings=ucs-bom,utf-8,utf-16,gbk,big5,gb18030,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030
set showcmd " 输入的命令显示出来,看的清楚些
set cmdheight=1 " 命令行(在状态行下)的高度,设置为1
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口
map <C-e> :NERDTreeToggle<CR>
nnoremap gb <C-O>
nnoremap <space> zn
function! CleverTab()
if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
return "\<Tab>"
else
return "\<C-N>"
endif
endfunction
inoremap <expr> <CR> pumvisible() ? "\<C-n>" : "\<CR>"
" vim-go settings
let g:go_fmt_command = "goimports"
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
let g:ycm_key_list_select_completion = ['<Down>', '<c-n>']
""let g:ycm_key_list_previous_completion=['<c-p>']
let g:ycm_key_list_previous_completion = ['<Up>', '<c-p>']
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
let g:UltiSnipsListSnippets="<c-e> "
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示
let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'
let g:go_version_warning = 0
nnoremap <leader>gf :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <leader>gr :YcmCompleter GoToDeclaration<CR>
let g:pymode_rope_goto_definition_bind = 'gd'
if !empty(glob("~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"))
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"
endif
" new version
if !empty(glob("~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"))
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"
endif
au BufNewFile,BufRead *.py
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set textwidth=79 |
\ set expandtab |
\ set autoindent |
\ set fileformat=unix |
\ set encoding=utf-8
let python_highlight_all=1
au BufNewFile,BufRead *.go
\ set tabstop=4 |
\ set softtabstop=4 |
\ set autoindent
然后用vim随便打开一个文件,执行:PluginInstall命令 等待安装完毕后,就安装python和golang自动提示工具
python自动提示安装方法:
http://www.jb51.net/article/58009.htm
首先在git克隆pydiction到本地,然后再配置,所有命令如下:
cd ~/.vim/bundle/
git clone https://github.com/rkulla/pydiction.git
mkdir -p ~/.vim/tools/pydiction
cp -r pydiction/after ~/.vim
cp pydiction/complete-dict ~/.vim/tools/pydiction
然后在.vimrc中添加如下几行(上边我的配置文件中已经添加好)
filetype plugin on
let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'
let g:pydiction_menu_height = 3
golang自动提示安装方法:
http://blog.sina.com.cn/s/blog_a126a9550101bee7.html
前提:go的编译、运行环境都已经搭建完毕。
go的高亮在安装目录下的misc/vim/readme.txt文件说明,就是执行shell命令。
下面来介绍自动补全gocode在vim配置
设置环境变量GOPATH=$HOME/goprojects,加入PATH=$GOPATH/bin,最后gocede命令会存在于这个目录下。
执行go get -u github.com/nsf/gocode,gocode的代码自动会下载到GOPATH中,进入$GOPATH/src/github.com/nsf/gocode,执行./vim/update.bash,执行gocode命令看安装是否成功。
还需要添加 filetype plugin on在.vimrc中,
至此,vim可用ctrl+x+o自动补全go语言。
2018.4.19
补充。。。
上次配置好了之后,在python中跳转有问题,总会报错:tags找不到文件,查了查,应该是ctags没有用好,下面说下怎么用:
1 安装ctags(不多说,网上有的是方法)
2 执行ctags -R命令,生成一个tags文件
3 在~/.vimrc中添加,我的tags文件路径就在~/tags,所以添加下边这一行就可以了(上边的配置文件我已经给修改添加了,可直接复制)
set tags=~/tags
vim python和golang开发环境配置的更多相关文章
- Mac下golang开发环境配置
go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...
- linux golang开发环境配置(离线方式)
<获取开发工具> 到https://www.golangtc.com/download 下载安装包, 根据自己的系统选择合适的开发包,这里选择go.1.9.2.linux-amd6 ...
- golang开发环境配置
下载安装 从 https://golang.org/dl/ 下载最新的安装包. windows直接执行exe,按指示进行安装(默认安装目录是:C:\Go) linxu解压后复制到你喜欢目录就行(一般放 ...
- Python安装及开发环境配置
Python的语法简洁,功能强大,有大量的第三方开发包(模块).同时Python不像java一样对内存要求非常高,适合做一些经常性的任务方面的编程.根据codeeval网站数据统计显示,连续三年,Py ...
- gdal 1.9+python 2.7开发环境配置
最近项目使用Cesium平台基于WegGl做web地球,其中关于地形数据有一种支持格式为terrain的地形数据.这种格式可以通过一个python工具切dem来得到. 下面记录下配置gdal+pyth ...
- Golang - OSX配置VIM下的Golang开发环境 (MacOS为例)
测试环境 MacOS 10.12.6 首先安装VIM brew install vim 我已经安装了 Vim 8.0版本 然后安装 Vundle ,这是一个vim包管理器 git clone http ...
- Python的SublimeText开发环境配置
1.完成Python的默认安装之后要设置环境变量,系统环境变量Path中加入Python的安装目录";C:/Python27" 2.配置Python编译环境,修改[C:\Progr ...
- Python开发:Windows下Python+Eclipse+Pydev开发环境配置
一.配置前的准备: 1.安装jdk: 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装Ecl ...
- windows及linux下 golang开发环境配置
windows环境: 1.系统以及软件包版本: OS: windows 8.1 64位 x64处理器 GO:安装包:go1.7.3.windows-amd64.mis IDE:压缩包:liteid ...
随机推荐
- Linux学习笔记(第十章)
vim程序编辑器 vim特点: vim三种模式: 一般模式:打开文档就直接进入编辑模式 -可进行删除,复制等,无法直接编辑文档 编辑模式:按下[i,I,o,O,A,R,r]等字母才会进入编辑模式,按E ...
- hadoop--hive数据仓库
一.hive概述 Hive是基于 Hadoop 的一个[数据仓库工具],可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能,可以将 sql 语句转换为 MapReduce 任务进 ...
- R语言学习笔记(十九):字符串处理中预定义字符组(表格介绍)
R中预定义的字符组 代码 含义说明 [:digit:]或\\d 数字; [0-9] [^[:digit:]]或\\D 非数字; 等价于[^0-9] [:lower:] 小写字母; [a-z] [:up ...
- 8.Generics 泛型(Dart中文文档)
这篇翻译的不好 如果你看API文档中的数组篇,你会发现类型一般写成List.<...>的写法表示通用类型的数组(未明确指定数组中的数据类型).通常情况泛型类型用E,T,S,K,V表示. W ...
- JQuery第三天——CSS操作与JQuery事件
JQuery的CSS_DOM与样式操作 样式: 获取 class 和设置 class : class 是元素的一个属性, 所以获取 class 和设置 class 都可以使用 attr() 方法来完成 ...
- hadoopStreamming 编程
熟悉hadoop作业提交的人,只要明白streaming的参数就可以学会提交了,streaming提交作业比较灵活,支持多种语言,但是streaming有个缺陷就是,其封装的参数涉及到mapreduc ...
- [2016北京集训试题6]mushroom-[bitset]
Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的 ...
- 洛谷 P2563 [AHOI2001]质数和分解
洛谷 P2563 [AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能 ...
- [并发并行]_[C/C++]_[C++标准库里的线程安全问题]
场景 1.写普通的程序时, 经常会使用cout来做输出, 每个进程只有一个控制台, 如果多线程调用cout时会出状况吗? 2.之所以研究cout会不会在并发下调用有问题, 是因为曾经有一个bug的崩溃 ...
- NOIp2018 pj 滚粗记
NOIp2018 pj 滚粗记 考前 一个午觉睡完就到了考场 考中 \(T1\)水题切了 \(T2\)水题切了 \(T3\)好像是\(dp\),不会,先跳 \(T4\)像树上莫队一样,然后再欧拉序上面 ...