转到行首而不在 VI 中打开新行
Posted
技术标签:
【中文标题】转到行首而不在 VI 中打开新行【英文标题】:Go to beginning of line without opening new line in VI 【发布时间】:2012-05-01 21:08:38 【问题描述】:现在我已经使用 SHIFTO 和 SHIFT$ 移动到开头和结尾vi
中的一行。
但是 SHIFTO 更适合在光标上方打开新行。
是否有任何命令可以将您带到行首?
【问题讨论】:
除了下面的答案,在 Vim 中输入 :help left-right-motions 以获得大量信息。 一本好书vim:在vim中练习。^
0
【参考方案1】:
你也可以使用
:-0
这会将光标设置在当前行(此处为空白)的第 0 列。
【讨论】:
【参考方案2】:以插入模式将光标移动到开头或结尾
I
- 将光标移动到当前行的第一个非空白字符并启用插入模式。
A
- 将光标移动到当前行的最后一个字符并启用插入模式。
这里I
等价于^
+ i
。同样A
等价于$
+ a
。
只需将光标移动到开头或结尾
^
- 将光标移动到当前的第一个非空白字符
行
0
- 将光标移动到当前行的第一个字符
$
- 将光标移动到当前行的最后一个字符
【讨论】:
【参考方案3】:0 带你到行首
Shift 0 带你到行尾
【讨论】:
Shift-0 (')') 不会带你到行首 Shift-0 (")") 是“句子向前”而不是“行尾”(这就是我的意思)【参考方案4】:试试这个Vi/Vim cheatsheet 解决许多问题。
对于普通模式:0 - [零] 到行首,第一列。$ - 到行尾
【讨论】:
【参考方案5】:您可以在正常模式下使用 ^ 或 0(零)移动到行首。
^ 将光标移动到一行的第一个非空白字符0 总是将光标移动到“第一列”
您还可以使用 Shifti 移动并切换到插入模式。
【讨论】:
还有 Shift+A 和 Shift+I 分别转到行尾和行首,也切换到插入模型 对我来说,按^
通常不如连续按0
和w
那么容易。【参考方案6】:
还有一种方法:
|
那是“管道” - 在ANSI layout 的退格下找到的符号。
Vim quickref (:help quickref
) 将其描述为:
N | to column N (default: 1)
换行呢?
如果您启用了换行,0
和 |
将不再将您带到屏幕行的开头。在这种情况下使用:
g0
再次,vim quickref 文档:
g0 to first character in screen line (differs from "0" when lines wrap)
【讨论】:
现在我明白它为什么起作用了。谢谢。我想知道。我认为它比0
更好,因为|
和$
在同一个键上。【参考方案7】:
您可以使用 0 或 ^ 移动到行首。 并且可以使用Shift+I移动到开头并切换到编辑模式(Insert)。
【讨论】:
您的回答基本正确,但有一点需要注意。Shift+I
或 ^
会将光标移动到行中 text 的开头。如果行开头有n
制表符,它会将光标移动到n*tabstop + 1
th 列。而0
将光标移动到该行的第一列。【参考方案8】:
一个简单的0
将您带到一行的开头。
:help 0
了解更多信息
【讨论】:
【参考方案9】:我刚刚发现 0(零)和 shift+0 在 vim 上工作。
【讨论】:
shift+0
那是)
,也就是下一句
Shift+0
更好,^
显示角色,这很烦人。谢谢【参考方案10】:
键入“^”。并获得一个好的“Vi”教程:)
【讨论】:
如果行缩进,它在我的 vim 中不起作用。并且上面提到的shift+0
工作正常。以上是关于转到行首而不在 VI 中打开新行的主要内容,如果未能解决你的问题,请参考以下文章