Setting up Vim for Python

前端 未结 8 552
情书的邮戳
情书的邮戳 2020-12-22 15:04

I really like the Emacs editor for Python because of it\'s smart tabbing for instance if I have something like this

def foo():
    if bar:
         blah
             


        
相关标签:
8条回答
  • 2020-12-22 15:10

    Some time ago I installed Valloric/YouCompleteMe and I find it really awesome. It provides you completion for file paths, function names, methods, variable names... Together with davidhalter/jedi-vim it makes vim great for python programming (the only thing missing now is a linter).

    0 讨论(0)
  • 2020-12-22 15:16

    In general, vim is a very powerful regular language editor (macros extend this but we'll ignore that for now). This is because vim's a thin layer on top of ed, and ed isn't much more than a line editor that speaks regex. Emacs has the advantage of being built on top of ELisp; lending it the ability to easily parse complex grammars and perform indentation tricks like the one you shared above.

    To be honest, I've never been able to dive into the depths of emacs because it is simply delightful meditating within my vim cave. With that said, let's jump in.

    Getting Started

    Janus

    For beginners, I highly recommend installing the readymade Janus plugin (fwiw, the name hails from a Star Trek episode featuring Janus Vim). If you want a quick shortcut to a vim IDE it's your best bang for your buck.

    I've never used it much, but I've seen others use it happily and my current setup is borrowed heavily from an old Janus build.

    Vim Pathogen

    Otherwise, do some exploring on your own! I'd highly recommend installing vim pathogen if you want to see the universe of vim plugins.

    It's a package manager of sorts. Once you install it, you can git clone packages to your ~/.vim/bundle directory and they're auto-installed. No more plugin installation, maintenance, or uninstall headaches!

    You can run the following script from the GitHub page to install pathogen:

    mkdir -p ~/.vim/autoload ~/.vim/bundle; \
    curl -so ~/.vim/autoload/pathogen.vim \
        https://raw.github.com/tpope/vim-pathogen/HEAD/autoload/pathogen.vim
    

    Helpful Links

    Here are some links on extending vim I've found and enjoyed:

    • Turning Vim Into A Modern Python IDE
    • Vim As Python IDE
    • OS X And Python (osx specific)
    • Learn Vimscript The Hard Way (great book if you want to learn vimscript)
    0 讨论(0)
  • 2020-12-22 15:16

    A very good plugin management system to use. The included vimrc file is good enough for python programming and can be easily configured to your needs. See http://spf13.com/project/spf13-vim/

    0 讨论(0)
  • 2020-12-22 15:30

    For those arriving around summer 2013, I believe some of this thread is outdated.

    I followed this howto which recommends Vundle over Pathogen. After one days use I found installing plugins trivial.

    The klen/python-mode plugin deserves special mention. It provides pyflakes and pylint amongst other features.

    I have just started using Valloric/YouCompleteMe and I love it. It has C-lang auto-complete and python also works great thanks to jedi integration. It may well replace jedi-vim as per this discussion /davidhalter/jedi-vim/issues/119

    Finally browsing the /carlhuda/janus plugins supplied is a good guide to useful scripts you might not know you are looking for such as NerdTree, vim-fugitive, syntastic, powerline, ack.vim, snipmate...

    All the above '{}/{}' are found on github you can find them easily with Google.

    0 讨论(0)
  • 2020-12-22 15:31

    Put the following in your .vimrc

    autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
    autocmd BufRead *.py set nocindent
    autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
    filetype plugin indent on
    

    See also the detailed instructions

    I personally use JetBrain's PyCharm with the IdeaVIM plugin when doing anything complex, for simple editing the additions to .vimrc seem sufficient.

    0 讨论(0)
  • 2020-12-22 15:31

    Under Linux, What worked for me was John Anderson's (sontek) guide, which you can find at this link. However, I cheated and just used his easy configuration setup from his Git repostiory:

    git clone -b vim https://github.com/sontek/dotfiles.git
    
    cd dotfiles
    
    ./install.sh vim
    

    His configuration is fairly up to date as of today.

    0 讨论(0)
提交回复
热议问题