崇高的文字:主页键不会移动到行首
Sublime text: Home key not moving to the beginning of line
我在 sublime text 中做了以下操作:
Ctrl + A (select all)
Ctrl + Shift + L (into column selection)
Home
我希望所有光标都转到每一行的开头。但是在某些行中,光标不会转到行的开头
以下是默认设置中 home 键的定义
{ "keys": ["home"], "command": "move_to", "args": {"to": "bol", "extend": false} },
所有使用Home键将光标跳到行首的键绑定使用move_to
命令移动光标位置并指定在 to
参数中 "bol"
的值。这不仅包括“裸”键,还包括扩展选择的移位版本,等等。
to
的 "bol"
值告诉 move_to
将光标移动到行首,但它在两个不同的行首“状态”之间切换:
- 行文本开始的位置(对于缩进行),这是该行的“软”开头。
- 第 1 列,这是该行的“硬”开头
根据光标当前所在的位置,您会得到一个或另一个,但再次按下该键会将位置翻转到另一个状态。
例如,给定如下 Python 示例,其中 |
是光标所在的位置:
def somefunc():|
print("Hello")|
您第一次按 Home 时,光标将跳转到打印中的 p
,因为那是该行的“软”开头。当光标在那里时,如果您再次按 Home,光标将跳转到该行的“硬”开头。再次按 Home 会将光标放回 p
。对于 def
行,当您按下该键并停留在那里时,光标将跳到第一列,因为它根本没有缩进。
一般的想法是,在大多数情况下,当您想跳转到行首时,是因为您想对从那里开始的文本进行编辑而不考虑缩进(在上面的示例中,假设你想将 print
换成 log
,如果你按下 Home 时你不需要向右箭头很多来回到功能).
在您的特定情况下,您可以在按下该键时看到这种情况;仅包含缩进白色 space 的行跳转到开头,物理上从第 1 列开始的行也是如此。所有其他行都跳转到 soft bol
。
如果您在文件或内容中工作,其中空行没有任何尾随白色 space 并且是真正的“空白”,那么您可以通过按 来做您想做的事第二次回家。在这种情况下,当前位于 soft bol
的所有行都将跳转到 hard bol
,并且任何已经位于 hard bol
的行都将保留在那里(因为该行是空的)。
在您的情况下,这将不起作用,因为所有空白行都包含 space,因此按下该键会将这些行交换到 soft bol
,而其他行将交换到 hard bol
相反,你最终会得到一个奇怪的翻转,永远不会让你到达你想去的地方。
解决此问题的一种方法是使用 trim_trailing_white_space
命令首先从行中删除所有尾随白色 space,在这种情况下,您可以按 Home两次。
此命令是在您保存文件并在首选项中打开 trim_trailing_white_space_on_save
时执行的命令,但默认情况下它不绑定到任何键或菜单项。所以要做到这一点,你首先必须将它绑定到一个键,将它添加到命令面板,打开设置并先保存内容,等等。
或者,您可以在用户绑定中绑定备用键(或重新绑定 Home 键)以指定 hardbol
的 to
,这将使该键无论如何总是跳到第 1 列:
{
"keys": ["home"],
"command": "move_to",
"args": {"to": "hardbol", "extend": false},
}
我在 sublime text 中做了以下操作:
Ctrl + A (select all)
Ctrl + Shift + L (into column selection)
Home
我希望所有光标都转到每一行的开头。但是在某些行中,光标不会转到行的开头
以下是默认设置中 home 键的定义
{ "keys": ["home"], "command": "move_to", "args": {"to": "bol", "extend": false} },
所有使用Home键将光标跳到行首的键绑定使用move_to
命令移动光标位置并指定在 to
参数中 "bol"
的值。这不仅包括“裸”键,还包括扩展选择的移位版本,等等。
to
的 "bol"
值告诉 move_to
将光标移动到行首,但它在两个不同的行首“状态”之间切换:
- 行文本开始的位置(对于缩进行),这是该行的“软”开头。
- 第 1 列,这是该行的“硬”开头
根据光标当前所在的位置,您会得到一个或另一个,但再次按下该键会将位置翻转到另一个状态。
例如,给定如下 Python 示例,其中 |
是光标所在的位置:
def somefunc():|
print("Hello")|
您第一次按 Home 时,光标将跳转到打印中的 p
,因为那是该行的“软”开头。当光标在那里时,如果您再次按 Home,光标将跳转到该行的“硬”开头。再次按 Home 会将光标放回 p
。对于 def
行,当您按下该键并停留在那里时,光标将跳到第一列,因为它根本没有缩进。
一般的想法是,在大多数情况下,当您想跳转到行首时,是因为您想对从那里开始的文本进行编辑而不考虑缩进(在上面的示例中,假设你想将 print
换成 log
,如果你按下 Home 时你不需要向右箭头很多来回到功能).
在您的特定情况下,您可以在按下该键时看到这种情况;仅包含缩进白色 space 的行跳转到开头,物理上从第 1 列开始的行也是如此。所有其他行都跳转到 soft bol
。
如果您在文件或内容中工作,其中空行没有任何尾随白色 space 并且是真正的“空白”,那么您可以通过按 来做您想做的事第二次回家。在这种情况下,当前位于 soft bol
的所有行都将跳转到 hard bol
,并且任何已经位于 hard bol
的行都将保留在那里(因为该行是空的)。
在您的情况下,这将不起作用,因为所有空白行都包含 space,因此按下该键会将这些行交换到 soft bol
,而其他行将交换到 hard bol
相反,你最终会得到一个奇怪的翻转,永远不会让你到达你想去的地方。
解决此问题的一种方法是使用 trim_trailing_white_space
命令首先从行中删除所有尾随白色 space,在这种情况下,您可以按 Home两次。
此命令是在您保存文件并在首选项中打开 trim_trailing_white_space_on_save
时执行的命令,但默认情况下它不绑定到任何键或菜单项。所以要做到这一点,你首先必须将它绑定到一个键,将它添加到命令面板,打开设置并先保存内容,等等。
或者,您可以在用户绑定中绑定备用键(或重新绑定 Home 键)以指定 hardbol
的 to
,这将使该键无论如何总是跳到第 1 列:
{
"keys": ["home"],
"command": "move_to",
"args": {"to": "hardbol", "extend": false},
}