在使用python语言编辑时的emacs中,如何将光标从for循环的开头导航到它的结尾?
在使用花括号的其他语言中,从花括号位置键入C-M-n
或C-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)
答案 0 :(得分:2)
我认为您正在寻找的是:
python-nav-beginning-of-block
python-nav-end-of-block
您可以使用以下方法重新定义绑定:
(define-key python-mode-map ...)
答案 1 :(得分:2)
是的,您可以使用forward-sexp
和backward-sexp
。它绑定到C-M-f
和C-M-b
。
如果你喜欢evil-mode,你可以使用evil-matchit模式,将%
的使用扩展到性别(if
,for
等。
答案 2 :(得分:0)
使用python-mode.el的当前主干
py-beginning-of-top-level
RESP。
py-end-of-top-level
正如你所评论的那样,如果"
,那么块开始也会停止在"BTW应该为所有已知的循环提供NAME的开头