emacs python导航for循环的开始或结束

时间:2014-09-09 12:40:27

标签: python emacs

在使用python语言编辑时的emacs中,如何将光标从for循环的开头导航到它的结尾?

在使用花括号的其他语言中,从花括号位置键入C-M-nC-M-p会将光标移动到循环的结尾或开头。是否有类似的python代码键组合?

示例:从foo循环开始导航到结束,或bar或xyz循环:

for foo in foolist:
    for bar in barlist:
        if foo > 100:
            print "foo large"
        else:
            if bar > 100:
                print "bar large"
            else:
                print "bar small"
    for xyz in xyzlist:
        print "xyz" . xyz

编辑:

我尝试使用下面的代码,并开始结束工作,但是从头到尾不起作用,它从else的末尾跳到相应的if的末尾:

(define-key python-mode-map "\C-\M-n" 'python-nav-end-of-block)
(define-key python-mode-map "\C-\M-p" 'python-nav-beginning-of-block)

3 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是:

python-nav-beginning-of-block
python-nav-end-of-block

您可以使用以下方法重新定义绑定:

(define-key python-mode-map ...)

答案 1 :(得分:2)

是的,您可以使用forward-sexpbackward-sexp。它绑定到C-M-fC-M-b

如果你喜欢evil-mode,你可以使用evil-matchit模式,将%的使用扩展到性别(iffor等。

答案 2 :(得分:0)

使用python-mode.el的当前主干

py-beginning-of-top-level

RESP。

py-end-of-top-level 

正如你所评论的那样,如果"

,那么块开始也会停止在"

BTW应该为所有已知的循环提供NAME的开头