Differences between revisions 18 and 39 (spanning 21 versions)
Revision 18 as of 2008-04-16 18:36:31
Size: 2972
Editor: agsb-4d04879f
Comment: Added Vim so that a title search for Vim finds the page
Revision 39 as of 2013-06-18 05:14:05
Size: 5089
Editor: Apes
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
Vim 7.0 (released mid-2006) includes the Intellisense-like omni-completion for several languages. Here is the latest version of [http://www.vim.org/scripts/script.php?script_id=1542 pythoncomplete]. Vim 7.0 (released mid-2006) includes the Intellisense-like omni-completion for several languages. Here is the latest version of [[http://www.vim.org/scripts/script.php?script_id=1542|pythoncomplete]].
Line 16: Line 16:
{{{autocmd BufRead,BufNewFile *.py syntax on
autocmd BufRead,BufNewFile *.py set ai
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class}}}
{{{
syntax on
filetype indent plugin on
}}}
Line 27: Line 28:
# vim: tabstop=4 expandtab shiftwidth=4 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
Line 30: Line 31:
This tells Vim that when the file is loaded, tabs are always expanded to spaces and that the width of each tab is four characters. Type the following in command mode to achieve the same effect: This may need the modeline option enabled in your `~/.vimrc` file:
Line 33: Line 34:
:set tabstop=4 expandtab shiftwidth=4 set modeline
}}}

(In Debian and Ubuntu, for example, the modeline option has been disabled for security reasons.)

The above `# vim: ...` text, when embedded in a source file, tells Vim that when the file is loaded, tabs are always expanded to spaces and that the width of each tab is four characters. Type the following in command mode to achieve the same effect:

{{{
:set tabstop=8 expandtab shiftwidth=4 softtabstop=4
Line 39: Line 48:
:set ts=4 et sw=4 :set ts=8 et sw=4 sts=4
}}}

If you want to do this automatically for all files identified as Python, add the following to {{{~/.vim/ftplugin/python.vim}}}. Create the directory and/or file if it does not already exist.

{{{
set tabstop=8
set expandtab
set shiftwidth=4
set softtabstop=4
Line 44: Line 62:
You may be lucky enough to have syntax highlighting already switched on in your version of Vim. If not, edit a `vimrc` file (either `/etc/vimrc` or `.vimrc` in your home directory) and add the following: You may be lucky enough to have syntax highlighting already switched on in your version of Vim. If not, edit a `vimrc` file (either `/etc/vimrc` or, preferably,`.vimrc` in your home directory) and add the following:
Line 50: Line 68:
If you use a dark background, this command may help adjust the colours: If you use a dark background, this command may help adjust the default colours for better contrast:
Line 56: Line 74:
=== Alternative ===

Some find that the methods described above do not work. An alternative method is adding...

{{{
set tabstop=8
set expandtab
set softtabstop=4
set shiftwidth=4
filetype indent on
}}}

...to your `~/.vimrc` file. The first rule sets tab stops to [[http://docs.python.org/reference/lexical_analysis.html#indentation|eight characters wide]]. The second converts tabs to white space. The third makes the Tab key indent by four spaces. `set shiftwidth` sets the width for autoindents. Finally, the last rule allows auto-indenting depending on file type. With this method, tab settings do not need to be set in your python file and the `# vim: ...` line in the template below is not needed.
Line 60: Line 92:
{{{ {{{#!python numbers=disable
Line 67: Line 99:
# vim: tabstop=4 expandtab shiftwidth=4 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
Line 70: Line 102:
This contains useful UNIX-related information on the first line, and a docstring which can be used to describe what your program or module is about. This contains useful UNIX-related information on the first line, and a docstring which can be used to describe what your program or module is about. As noted above, to work this requires modeline support to be enabled.

=== Scripting Vim with Python ===

There is a presentation given by Sean Reifschneider about scripting Vim with Python: [[http://www.tummy.com/Community/Presentations/|Vim and Python: Two Great Tastes that Taste Great Together]]
If you want to access the visual selection from Vim in Python read http://www.tummy.com/journals/entries/jafo_20070301_035949
Line 74: Line 111:
Some more advice about configuring Vim can be found on this page: [http://www.vex.net/~x/python_and_vim.html Notes on using Vim with Python]  * Python-mode for Vim: [[http://www.youtube.com/watch?v=67OZNp9Z0CQ&feature=share|Screencast]]
 * Some hints about configuring Vim: [[http://www.vex.net/~x/python_and_vim.html|Notes on using Vim with Python]]
 * [[http://sontek.net/turning-vim-into-a-modern-python-ide|Turning Vim into a modern Python IDE]], 2011, Anderson (sontek)
 * [[http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/|VIM as Python IDE]], 2009-05-24, Alain M. Lafon
 * [[http://dancingpenguinsoflight.com/2009/02/python-and-vim-make-your-own-ide/|Python and vim: Make your own IDE]], February 16, 2009 14:28, Samuel Huckins

Vi Improved

VI Improved (Vim) is an improved version of the editor "vi", one of the standard text editors on UNIX systems. It has all the features you'll ever need from an editor, and probably three times that many more that you'll never use ;-) The newer versions also include a 'vimdiff' mode that you can use to diff and merge file(s). Oh, I didn't mention it's also scriptable in Python, and there's a graphical version: GVIM. Get it from http://www.vim.org/.

Vim is also available in your favourite OS. Since version 6.0 it has folding. Folding makes your life easy when you have some long files.

You can download many scripts from http://www.vim.org/ and learn new tips from the site http://vim.wikia.com/wiki/Main_Page

Vim 7.0 (released mid-2006) includes the Intellisense-like omni-completion for several languages. Here is the latest version of pythoncomplete.

Configuring Vim

You can automatically enable syntax coloring and automatic indentation for Python code by adding the following lines to your ~/.vimrc file:

syntax on
filetype indent plugin on

The following sections correspond to the guidelines from the HowToEditPythonCode page.

Indentation

A useful addition to Python source files is this comment:

# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

This may need the modeline option enabled in your ~/.vimrc file:

set modeline

(In Debian and Ubuntu, for example, the modeline option has been disabled for security reasons.)

The above # vim: ... text, when embedded in a source file, tells Vim that when the file is loaded, tabs are always expanded to spaces and that the width of each tab is four characters. Type the following in command mode to achieve the same effect:

:set tabstop=8 expandtab shiftwidth=4 softtabstop=4

Or:

:set ts=8 et sw=4 sts=4

If you want to do this automatically for all files identified as Python, add the following to ~/.vim/ftplugin/python.vim. Create the directory and/or file if it does not already exist.

set tabstop=8
set expandtab
set shiftwidth=4
set softtabstop=4

Syntax Highlighting

You may be lucky enough to have syntax highlighting already switched on in your version of Vim. If not, edit a vimrc file (either /etc/vimrc or, preferably,.vimrc in your home directory) and add the following:

syntax on

If you use a dark background, this command may help adjust the default colours for better contrast:

set background=dark

Alternative

Some find that the methods described above do not work. An alternative method is adding...

set tabstop=8
set expandtab
set softtabstop=4
set shiftwidth=4
filetype indent on

...to your ~/.vimrc file. The first rule sets tab stops to eight characters wide. The second converts tabs to white space. The third makes the Tab key indent by four spaces. set shiftwidth sets the width for autoindents. Finally, the last rule allows auto-indenting depending on file type. With this method, tab settings do not need to be set in your python file and the # vim: ... line in the template below is not needed.

A Simple Template

You could copy the following simple template and save it to a file somewhere. Then, when you need to make a new source file, just copy it to the intended location with a name of your choice.

#!/usr/bin/env python

"""
Python source code - replace this with a description of the code and write the code below this text.
"""

# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

This contains useful UNIX-related information on the first line, and a docstring which can be used to describe what your program or module is about. As noted above, to work this requires modeline support to be enabled.

Scripting Vim with Python

There is a presentation given by Sean Reifschneider about scripting Vim with Python: Vim and Python: Two Great Tastes that Taste Great Together If you want to access the visual selection from Vim in Python read http://www.tummy.com/journals/entries/jafo_20070301_035949


CategoryEditors

Vim (last edited 2013-06-18 05:14:05 by Apes)

Unable to edit the page? See the FrontPage for instructions.