vim代码完成和PyDoc问题

时间:2013-01-16 05:20:05

标签: python vim code-completion vim-plugin rope

不幸的是,我无法将os.path.join作为代码完成仅os.path。另一个问题是pydoc没有在源代码上方的新窗口中自动打开。怎么可能解决这个问题?

我做了:RopeOpenProject和我的PHYTHONPATH以下列方式查看:

>>> import sys
>>> sys.path
['', '/home/user977828/apps/pymodules/lib/python2.7/site-packages/pysam-0.6-py2.7-linux-x86_64.egg', '/home/user977828/apps/pymodules/lib/python2.7/site-packages/tornado-2.4.1-py2.7.egg', '/home/user977828/apps/pymodules/lib/python2.7/site-packages/pyflakes-0.4.0-py2.7.egg', '/home/user977828/apps/pymodules/lib/python2.7/site-packages/pylint-0.26.0-py2.7.egg', '/home/user977828/apps/pymodules/lib/python2.7/site-packages/pep8-1.4-py2.7.egg', '/home/user977828/apps/pymodules/lib/python2.7/site-packages/flake8-1.7.0-py2.7.egg', '/usr/lib/entropy/lib', '/usr/lib/portage/pym', '/home/user977828/apps/pymodules/lib/python2.7/site-packages', '/home/user977828/apps/pymodules/lib64/python2.7/site-packages', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/PIL', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib64/python2.7/site-packages/wx-2.8-gtk2-unicode', '/usr/lib64/portage/pym'

我按照以下方式为Vim安装了所有插件

sudo  equo install setuptools ctags ipython rope ropemode 
easy_install --prefix=/home/uqmlore1/apps/pymodules -UZ git+git://github.com/kevinw/pyflakes.git
easy_install --prefix=/home/uqmlore1/apps/pymodules -UZ pylint
easy_install --prefix=/home/uqmlore1/apps/pymodules -UZ pep8
easy_install --prefix=/home/uqmlore1/apps/pymodules -UZ flake8


mkdir -p ~/.vim/colors && cd ~/.vim/colors 
wget -O wombat256mod.vim http://www.vim.org/scripts/download_script.php?src_id=13400
mkdir -p ~/.vim/autoload ~/.vim/bundle
curl -so ~/.vim/autoload/pathogen.vim https://raw.github.com/tpope/vim-pathogen/HEAD/autoload/pathogen.vim

cd ~/.vim/
git init
git submodule add https://github.com/Lokaltog/powerline.git bundle/powerline
git submodule add https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
git submodule add https://github.com/ivanov/vim-ipython bundle/vim-ipython      #videos avaible
git submodule add https://github.com/majutsushi/tagbar bundle/tagbar
git submodule add https://github.com/vim-scripts/indentpython.vim bundle/indentpython
git submodule add https://github.com/scrooloose/syntastic bundle/syntastic
git submodule add https://github.com/scrooloose/nerdtree bundle/nerdtree
git submodule add https://github.com/scrooloose/nerdcommenter bundle/nerdcommenter
git submodule add https://github.com/vim-scripts/mru.vim bundle/mru.vim
git submodule add https://github.com/tpope/vim-surround.git bundle/vim-surround #?
git submodule add https://github.com/ervandew/supertab.git bundle/supertab
git submodule add https://github.com/nvie/vim-flake8.git bundle/vim-flake8
git submodule add https://github.com/sjl/gundo.vim.git bundle/gundo.vim
git submodule add https://github.com/fs111/pydoc.vim.git bundle/pydoc.vim
git submodule add https://github.com/alfredodeza/pytest.vim.git bundle/pytest.vim
git submodule add https://github.com/reinh/vim-makegreen bundle/vim-makegreen
git submodule add https://github.com/sontek/rope-vim.git bundle/rope-vim
git submodule init
git submodule update
git submodule foreach git submodule init
git submodule foreach git submodule update
rm -rf .git .gitmodules

mkdir -p ~/.vim/ftplugin 
wget -O ~/.vim/ftplugin/python_editing.vim http://www.vim.org/scripts/download_script.php?src_id=5492

我使用的.vimrc看起来像这样:

" Sample .vimrc file by Martin Brochhaus
" Presented at PyCon APAC 2012


" ============================================
" Note to myself:
" DO NOT USE <C-z> FOR SAVING WHEN PRESENTING!
" ============================================


" Automatic reloading of .vimrc
autocmd! bufwritepost .vimrc source %


" Better copy & paste
" When you want to paste large blocks of code into vim, press F2 before you
" paste. At the bottom you should see ``-- INSERT (paste) --``.

set pastetoggle=<F2>
set clipboard=unnamed


" Mouse and backspace
set mouse=a  " on OSX press ALT and click
"" set bs=2     " make backspace behave like normal again


" Rebind <Leader> key
" I like to have it here becuase it is easier to reach than the default and
" it is next to ``m`` and ``n`` which I use for navigating between tabs.
let mapleader = ","


" Bind nohl
" Removes highlight of your last search
" ``<C>`` stands for ``CTRL`` and therefore ``<C-n>`` stands for ``CTRL+n``
noremap <C-n> :nohl<CR>
vnoremap <C-n> :nohl<CR>
inoremap <C-n> :nohl<CR>


" Quicksave command
"" noremap <C-Z> :update<CR>
"" vnoremap <C-Z> <C-C>:update<CR>
"" inoremap <C-Z> <C-O>:update<CR>


" Quick quit command
"" noremap <Leader>e :quit<CR>  " Quit current window
"" noremap <Leader>E :qa!<CR>   " Quit all windows


" bind Ctrl+<movement> keys to move around the windows, instead of using Ctrl+w + <movement>
" Every unnecessary keystroke that can be saved is good for your health :)
map <c-j> <c-w>j
map <c-k> <c-w>k
map <c-l> <c-w>l
map <c-h> <c-w>h


" easier moving between tabs
map <Leader>n <esc>:tabprevious<CR>
map <Leader>m <esc>:tabnext<CR>


" map sort function to a key
vnoremap <Leader>s :sort<CR>


" easier moving of code blocks
" Try to go into visual mode (v), thenselect several lines of code here and
" then press ``>`` several times.
vnoremap < <gv  " better indentation
vnoremap > >gv  " better indentation


" Show whitespace
" MUST be inserted BEFORE the colorscheme command
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
au InsertLeave * match ExtraWhitespace /\s\+$/


" Color scheme
" mkdir -p ~/.vim/colors && cd ~/.vim/colors
" wget -O wombat256mod.vim http://www.vim.org/scripts/download_script.php?src_id=13400
set t_Co=256
color wombat256mod


" Enable syntax highlighting
" You need to reload this file for the change to apply
filetype off
filetype plugin indent on
syntax on


" Showing line numbers and length
set number  " show line numbers
set tw=79   " width of document (used by gd)
set nowrap  " don't automatically wrap on load
set fo-=t   " don't automatically wrap text when typing
set colorcolumn=80
highlight ColorColumn ctermbg=233


" easier formatting of paragraphs
vmap Q gq
nmap Q gqap


" Useful settings
set history=700
set undolevels=700


" Real programmers don't use TABs but spaces
set tabstop=4
set softtabstop=4
set shiftwidth=4
set shiftround
set expandtab


" Make search case insensitive
set hlsearch
set incsearch
set ignorecase
set smartcase


" Disable stupid backup and swap files - they trigger too many events
" for file system watchers
set nobackup
set nowritebackup
set noswapfile


" Setup Pathogen to manage your plugins
" mkdir -p ~/.vim/autoload ~/.vim/bundle
" curl -so ~/.vim/autoload/pathogen.vim https://raw.github.com/tpope/vim-pathogen/HEAD/autoload/pathogen.vim
" Now you can install any plugin into a .vim/bundle/plugin-name/ folder
call pathogen#infect()


" ============================================================================
" Python IDE Setup
" ============================================================================


" Settings for vim-powerline
" cd ~/.vim/bundle
" git clone git://github.com/Lokaltog/vim-powerline.git
source ~/.vim/bundle/powerline/powerline/ext/vim/source_plugin.vim
let g:Powerline_symbols = 'fancy'
set laststatus=2


" Settings for ctrlp
" cd ~/.vim/bundle
" git clone https://github.com/kien/ctrlp.vim.git
let g:ctrlp_max_height = 30
set wildignore+=*.pyc
set wildignore+=*_build/*
set wildignore+=*/coverage/*


" Settings for python-mode
" cd ~/.vim/bundle
" git clone https://github.com/klen/python-mode
map <Leader>g :call RopeGotoDefinition()<CR>
let ropevim_enable_shortcuts = 1
let g:pymode_rope_goto_def_newwin = "vnew"
let g:pymode_rope_extended_complete = 1
let g:pymode_breakpoint = 0
let g:pymode_syntax = 1
let g:pymode_syntax_builtin_objs = 0
let g:pymode_syntax_builtin_funcs = 0
map <Leader>b Oimport ipdb; ipdb.set_trace() # BREAKPOINT<C-c>

" Better navigating through omnicomplete option list
" See http://stackoverflow.com/questions/2170023/how-to-map-keys-for-popup-menu-in-vim
"" set completeopt=longest,menuone
function! OmniPopup(action)
if pumvisible()
    if a:action == 'j'
    return "\<C-N>"
    elseif a:action == 'k'
    return "\<C-P>"
    endif
endif
return a:action
endfunction

inoremap <silent><C-j> <C-R>=OmniPopup('j')<CR>
inoremap <silent><C-k> <C-R>=OmniPopup('k')<CR>


" Python folding
" mkdir -p ~/.vim/ftplugin
" wget -O ~/.vim/ftplugin/python_editing.vim http://www.vim.org/scripts/download_script.php?src_id=5492
set nofoldenable

" SuperTab plugin can be used to avoid needing to press Ctrl-X then Ctrl-O to invoke the popup completion menu. 
let g:SuperTabDefaultCompletionType = "context"

" Now we just enable the menu and pydoc preview to get the most useful 
" information out of the code completion
set completeopt=menuone,longest,preview

0 个答案:

没有答案