退格键,如果从光标到行首的字符是制表符/空格,则返回一级缩进

发布于 2024-09-10 09:31:03 字数 284 浏览 10 评论 0原文

我正在使用 Vim 进行 Python 开发。有时,在 if 子句中的表达式之后:(假设 | 是光标)。

if test:
    pass
    |

...我按 Enter 键,想要转到 if 标识级别。

我知道我可以返回到命令模式,只需按 <,但我想知道,当 Vim 知道光标后面的所有字符都是制表符或空格时,是否可以返回一个按下退格键时的缩进级别(或shiftwidth值)。

I'm using Vim for Python development. Sometimes, after an expression in an if clause: (suppose | is cursor).

if test:
    pass
    |

...I press enter, and want to go to the if identation level.

I know I can go back to command mode and just press <, but I would like to know if it's possble to, when Vim knows all characters behind the cursor are tabs os spaces, to go back one indent level when backspace is pressed (or shiftwidth value).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

依 靠 2024-09-17 09:31:03

softtabstop 设置为 shiftwidth,并打开 expandtab

:set expandtab shiftwidth=4 softtabstop=4

现在,当你按 Backspace 时,Vim 会自动删除适当数量的空格可向后移动一级缩进。

有多种设置可以控制制表符、空格和缩进的行为,并且它们可以以不明显的方式进行交互。我推荐这个 Vimcast 剧集,以获得非常清晰的概述:

http://vimcasts.org/episodes/tabs -和-空格/

Set softtabstop equal to shiftwidth, and turn on expandtab:

:set expandtab shiftwidth=4 softtabstop=4

Now when you press Backspace, Vim will automatically delete the proper number of spaces to move back one indentation level.

There are several settings that control the behavior of tabs, spaces, and indentation, and they can interact in non-obvious ways. I recommend this Vimcast episode for a very clear overview:

http://vimcasts.org/episodes/tabs-and-spaces/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文