mirror of
https://github.com/gryf/python.vim.git
synced 2025-12-17 11:30:22 +01:00
Changed some of the default shortcuts
This commit is contained in:
15
README
15
README
@@ -1,15 +0,0 @@
|
|||||||
This is a mirror of http://www.vim.org/scripts/script.php?script_id=30
|
|
||||||
|
|
||||||
Written by Mikael Berthe.
|
|
||||||
|
|
||||||
This script can be useful when editing Python scripts. It provides the following menus:
|
|
||||||
- Select a block of lines with the same indentation
|
|
||||||
- Select a function
|
|
||||||
- Select a class
|
|
||||||
- Go to previous/next class/function
|
|
||||||
- Go to the beginning/end of a block
|
|
||||||
- Comment/uncomment the selection
|
|
||||||
- Jump to the last/next line with the same indent
|
|
||||||
- Shift a block (left/right)
|
|
||||||
- Creates list of classes and functions for easy code navigation
|
|
||||||
Version 1.8+ requires Vim 7, earlier versions require Vim 6
|
|
||||||
52
README.rst
Normal file
52
README.rst
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
Python.vim
|
||||||
|
==========
|
||||||
|
|
||||||
|
This is a set of menus/shortcuts to work with Python files. This work is kind
|
||||||
|
continuation of `Mikael Berthe script`_, with some improvements and fixes.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
To install it, any kind of Vim package manager can be used, like NeoBundle_,
|
||||||
|
Pathogen_, Vundle_ or vim-plug_.
|
||||||
|
|
||||||
|
For manual installation, copy subdirectories from this repository to your
|
||||||
|
``~/.vim`` directory.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Default shortcuts are as follows:
|
||||||
|
|
||||||
|
- ``]]`` - jump to next class
|
||||||
|
- ``[[`` - jump to previous class
|
||||||
|
- ``}}`` - jump to next function or method
|
||||||
|
- ``{[`` - jump to previous function or method
|
||||||
|
- ``]t`` - jump to beginning of block
|
||||||
|
- ``]e`` - jump to end of block
|
||||||
|
- ``]<up>`` - jump to previous line with the same/lower indentation
|
||||||
|
- ``]<down>`` - jump to next line with the same/lower indentation
|
||||||
|
- ``]<`` - shift block to left
|
||||||
|
- ``]>`` - shift block to right
|
||||||
|
- ``]#`` - comment selection
|
||||||
|
- ``]u`` - uncomment selection
|
||||||
|
- ``vac`` - select (Visual Line Mode) current/previous class
|
||||||
|
- ``vaf`` - select (Visual Line Mode) current/previous function
|
||||||
|
- ``vab`` - select (Visual Line Mode) block
|
||||||
|
|
||||||
|
You can set the global variable ``g:py_select_leading_comments`` to 0
|
||||||
|
if you don't want to select comments preceding a declaration (these
|
||||||
|
are usually the description of the function/class).
|
||||||
|
You can set the global variable ``g:py_select_trailing_comments`` to 0
|
||||||
|
if you don't want to select comments at the end of a function/class.
|
||||||
|
If these variables are not defined, both leading and trailing comments
|
||||||
|
are selected.
|
||||||
|
|
||||||
|
If you use graphical version of vim (like gvim) you can access those options
|
||||||
|
through the menu called *Python*.
|
||||||
|
|
||||||
|
.. _Mikael Berthe script: http://www.vim.org/scripts/script.php?script_id=30
|
||||||
|
.. _Pathogen: https://github.com/tpope/vim-pathogen
|
||||||
|
.. _Vundle: https://github.com/gmarik/Vundle.vim
|
||||||
|
.. _NeoBundle: https://github.com/Shougo/neobundle.vim
|
||||||
|
.. _vim-plug: https://github.com/junegunn/vim-plug
|
||||||
@@ -1,40 +1,15 @@
|
|||||||
" -*- vim -*-
|
" -*- vim -*-
|
||||||
" FILE: python_fn.vim
|
" FILE: python_fn.vim
|
||||||
" LAST MODIFICATION: 2008-08-28 8:19pm
|
" LAST MODIFICATION: 2017-05-28 17:47:13
|
||||||
" (C) Copyright 2001-2005 Mikael Berthe <bmikael@lists.lilotux.net>
|
" (C) Copyright 2001-2005 Mikael Berthe <bmikael@lists.lilotux.net>
|
||||||
" Maintained by Jon Franklin <jvfranklin@gmail.com>
|
" Maintained by Jon Franklin <jvfranklin@gmail.com>
|
||||||
" Version: 1.13
|
" Modifed by Roman Dobosz <gryf73@gmail.com>
|
||||||
|
" Version: 1.14
|
||||||
|
|
||||||
" USAGE:
|
" USAGE:
|
||||||
"
|
" See README.rst
|
||||||
" See README for installation.
|
|
||||||
" You can set the global variable "g:py_select_leading_comments" to 0
|
|
||||||
" if you don't want to select comments preceding a declaration (these
|
|
||||||
" are usually the description of the function/class).
|
|
||||||
" You can set the global variable "g:py_select_trailing_comments" to 0
|
|
||||||
" if you don't want to select comments at the end of a function/class.
|
|
||||||
" If these variables are not defined, both leading and trailing comments
|
|
||||||
" are selected.
|
|
||||||
" Example: (in your .vimrc) "let g:py_select_leading_comments = 0"
|
|
||||||
" You may want to take a look at the 'shiftwidth' option for the
|
|
||||||
" shift commands...
|
|
||||||
"
|
|
||||||
" REQUIREMENTS:
|
|
||||||
" vim (>= 7)
|
|
||||||
"
|
|
||||||
" Shortcuts:
|
|
||||||
" ]t -- Jump to beginning of block
|
|
||||||
" ]e -- Jump to end of block
|
|
||||||
" ]v -- Select (Visual Line Mode) block
|
|
||||||
" ]< -- Shift block to left
|
|
||||||
" ]> -- Shift block to right
|
|
||||||
" ]# -- Comment selection
|
|
||||||
" ]u -- Uncomment selection
|
|
||||||
" ]c -- Select current/previous class
|
|
||||||
" ]d -- Select current/previous function
|
|
||||||
" ]<up> -- Jump to previous line with the same/lower indentation
|
|
||||||
" ]<down> -- Jump to next line with the same/lower indentation
|
|
||||||
|
|
||||||
|
" Shortcuts:
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if exists("b:loaded_py_ftplugin")
|
if exists("b:loaded_py_ftplugin")
|
||||||
finish
|
finish
|
||||||
@@ -46,7 +21,7 @@ vmap ]t :<C-U>PBOB<CR>m'gv``
|
|||||||
map ]e :PEoB<CR>
|
map ]e :PEoB<CR>
|
||||||
vmap ]e :<C-U>PEoB<CR>m'gv``
|
vmap ]e :<C-U>PEoB<CR>m'gv``
|
||||||
|
|
||||||
map ]v ]tV]e
|
map vab ]tV]e
|
||||||
map ]< ]tV]e<
|
map ]< ]tV]e<
|
||||||
vmap ]< <
|
vmap ]< <
|
||||||
map ]> ]tV]e>
|
map ]> ]tV]e>
|
||||||
@@ -57,76 +32,56 @@ vmap ]# :call PythonCommentSelection()<CR>
|
|||||||
map ]u :call PythonUncommentSelection()<CR>
|
map ]u :call PythonUncommentSelection()<CR>
|
||||||
vmap ]u :call PythonUncommentSelection()<CR>
|
vmap ]u :call PythonUncommentSelection()<CR>
|
||||||
|
|
||||||
map ]c :call PythonSelectObject("class")<CR>
|
map vac :call PythonSelectObject("class")<CR>
|
||||||
map ]d :call PythonSelectObject("function")<CR>
|
map vaf :call PythonSelectObject("function")<CR>
|
||||||
|
|
||||||
map ]<up> :call PythonNextLine(-1)<CR>
|
map ]<up> :call PythonNextLine(-1)<CR>
|
||||||
map ]<down> :call PythonNextLine(1)<CR>
|
map ]<down> :call PythonNextLine(1)<CR>
|
||||||
" You may prefer use <s-up> and <s-down>... :-)
|
" You may prefer use <s-up> and <s-down>... :-)
|
||||||
|
|
||||||
" jump to previous class
|
" jump to previous class
|
||||||
map ]J :call PythonDec("class", -1)<CR>
|
map [[ :call PythonDec("class", -1)<CR>
|
||||||
vmap ]J :call PythonDec("class", -1)<CR>
|
vmap [[ :call PythonDec("class", -1)<CR>
|
||||||
|
|
||||||
" jump to next class
|
" jump to next class
|
||||||
map ]j :call PythonDec("class", 1)<CR>
|
map ]] :call PythonDec("class", 1)<CR>
|
||||||
vmap ]j :call PythonDec("class", 1)<CR>
|
vmap ]] :call PythonDec("class", 1)<CR>
|
||||||
|
|
||||||
" jump to previous function
|
" jump to previous function
|
||||||
map ]F :call PythonDec("function", -1)<CR>
|
map {{ :call PythonDec("function", -1)<CR>
|
||||||
vmap ]F :call PythonDec("function", -1)<CR>
|
vmap {{ :call PythonDec("function", -1)<CR>
|
||||||
|
|
||||||
" jump to next function
|
" jump to next function
|
||||||
map ]f :call PythonDec("function", 1)<CR>
|
map }} :call PythonDec("function", 1)<CR>
|
||||||
vmap ]f :call PythonDec("function", 1)<CR>
|
vmap }} :call PythonDec("function", 1)<CR>
|
||||||
|
|
||||||
" Menu entries
|
" Menu entries
|
||||||
nmenu <silent> &Python.Update\ IM-Python\ Menu
|
nmenu <silent> &Python.Update\ IM-Python\ Menu :call UpdateMenu()<CR>
|
||||||
\:call UpdateMenu()<CR>
|
|
||||||
nmenu &Python.-Sep1- :
|
nmenu &Python.-Sep1- :
|
||||||
nmenu <silent> &Python.Beginning\ of\ Block<Tab>[t
|
nmenu <silent> &Python.Beginning\ of\ Block<Tab>[t ]t
|
||||||
\]t
|
nmenu <silent> &Python.End\ of\ Block<Tab>]e ]e
|
||||||
nmenu <silent> &Python.End\ of\ Block<Tab>]e
|
|
||||||
\]e
|
|
||||||
nmenu &Python.-Sep2- :
|
nmenu &Python.-Sep2- :
|
||||||
nmenu <silent> &Python.Shift\ Block\ Left<Tab>]<
|
nmenu <silent> &Python.Shift\ Block\ Left<Tab>]< ]<
|
||||||
\]<
|
vmenu <silent> &Python.Shift\ Block\ Left<Tab>]< ]<
|
||||||
vmenu <silent> &Python.Shift\ Block\ Left<Tab>]<
|
nmenu <silent> &Python.Shift\ Block\ Right<Tab>]> ]>
|
||||||
\]<
|
vmenu <silent> &Python.Shift\ Block\ Right<Tab>]> ]>
|
||||||
nmenu <silent> &Python.Shift\ Block\ Right<Tab>]>
|
|
||||||
\]>
|
|
||||||
vmenu <silent> &Python.Shift\ Block\ Right<Tab>]>
|
|
||||||
\]>
|
|
||||||
nmenu &Python.-Sep3- :
|
nmenu &Python.-Sep3- :
|
||||||
vmenu <silent> &Python.Comment\ Selection<Tab>]#
|
vmenu <silent> &Python.Comment\ Selection<Tab>]# ]#
|
||||||
\]#
|
nmenu <silent> &Python.Comment\ Selection<Tab>]# ]#
|
||||||
nmenu <silent> &Python.Comment\ Selection<Tab>]#
|
vmenu <silent> &Python.Uncomment\ Selection<Tab>]u ]u
|
||||||
\]#
|
nmenu <silent> &Python.Uncomment\ Selection<Tab>]u ]u
|
||||||
vmenu <silent> &Python.Uncomment\ Selection<Tab>]u
|
|
||||||
\]u
|
|
||||||
nmenu <silent> &Python.Uncomment\ Selection<Tab>]u
|
|
||||||
\]u
|
|
||||||
nmenu &Python.-Sep4- :
|
nmenu &Python.-Sep4- :
|
||||||
nmenu <silent> &Python.Previous\ Class<Tab>]J
|
nmenu <silent> &Python.Previous\ Class<Tab>[[ [[
|
||||||
\]J
|
nmenu <silent> &Python.Next\ Class<Tab>]] ]]
|
||||||
nmenu <silent> &Python.Next\ Class<Tab>]j
|
nmenu <silent> &Python.Previous\ Function<Tab>{{ {{
|
||||||
\]j
|
nmenu <silent> &Python.Next\ Function<Tab>}} }}
|
||||||
nmenu <silent> &Python.Previous\ Function<Tab>]F
|
|
||||||
\]F
|
|
||||||
nmenu <silent> &Python.Next\ Function<Tab>]f
|
|
||||||
\]f
|
|
||||||
nmenu &Python.-Sep5- :
|
nmenu &Python.-Sep5- :
|
||||||
nmenu <silent> &Python.Select\ Block<Tab>]v
|
nmenu <silent> &Python.Select\ Block<Tab>vab vab
|
||||||
\]v
|
nmenu <silent> &Python.Select\ Function<Tab>vaf vaf
|
||||||
nmenu <silent> &Python.Select\ Function<Tab>]d
|
nmenu <silent> &Python.Select\ Class<Tab>vac vac
|
||||||
\]d
|
|
||||||
nmenu <silent> &Python.Select\ Class<Tab>]c
|
|
||||||
\]c
|
|
||||||
nmenu &Python.-Sep6- :
|
nmenu &Python.-Sep6- :
|
||||||
nmenu <silent> &Python.Previous\ Line\ wrt\ indent<Tab>]<up>
|
nmenu <silent> &Python.Previous\ Line\ wrt\ indent<Tab>]<up> ]<up>
|
||||||
\]<up>
|
nmenu <silent> &Python.Next\ Line\ wrt\ indent<Tab>]<down> ]<down>
|
||||||
nmenu <silent> &Python.Next\ Line\ wrt\ indent<Tab>]<down>
|
|
||||||
\]<down>
|
|
||||||
|
|
||||||
:com! PBoB execute "normal ".PythonBoB(line('.'), -1, 1)."G"
|
:com! PBoB execute "normal ".PythonBoB(line('.'), -1, 1)."G"
|
||||||
:com! PEoB execute "normal ".PythonBoB(line('.'), 1, 1)."G"
|
:com! PEoB execute "normal ".PythonBoB(line('.'), 1, 1)."G"
|
||||||
@@ -191,7 +146,7 @@ endfunction
|
|||||||
" commentString is inserted in non-empty lines, and should be aligned with
|
" commentString is inserted in non-empty lines, and should be aligned with
|
||||||
" the block
|
" the block
|
||||||
function! PythonCommentSelection() range
|
function! PythonCommentSelection() range
|
||||||
let commentString = "#"
|
let commentString = "# "
|
||||||
let cl = a:firstline
|
let cl = a:firstline
|
||||||
let ind = 1000 " I hope nobody use so long lines! :)
|
let ind = 1000 " I hope nobody use so long lines! :)
|
||||||
|
|
||||||
@@ -225,7 +180,7 @@ endfunction
|
|||||||
function! PythonUncommentSelection() range
|
function! PythonUncommentSelection() range
|
||||||
" commentString could be different than the one from CommentSelection()
|
" commentString could be different than the one from CommentSelection()
|
||||||
" For example, this could be "# \\="
|
" For example, this could be "# \\="
|
||||||
let commentString = "#"
|
let commentString = "# "
|
||||||
let cl = a:firstline
|
let cl = a:firstline
|
||||||
while (cl <= a:lastline)
|
while (cl <= a:lastline)
|
||||||
let ul = substitute(getline(cl),
|
let ul = substitute(getline(cl),
|
||||||
|
|||||||
Reference in New Issue
Block a user