转到行首而不在 VI 中打开新行

Posted

技术标签:

【中文标题】转到行首而不在 VI 中打开新行【英文标题】:Go to beginning of line without opening new line in VI 【发布时间】:2012-05-01 21:08:38 【问题描述】:

现在我已经使用 SHIFTOSHIFT$ 移动到开头和结尾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 分别转到行尾和行首,也切换到插入模型 对我来说,按^通常不如连续按0w那么容易。【参考方案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 + 1th 列。而0 将光标移动到该行的第一列【参考方案8】:

一个简单的0 将您带到一行的开头。

:help 0了解更多信息

【讨论】:

【参考方案9】:

我刚刚发现 0(零)和 shift+0 在 vi​​m 上工作。

【讨论】:

shift+0 那是),也就是下一句 Shift+0 更好,^ 显示角色,这很烦人。谢谢【参考方案10】:

键入“^”。并获得一个好的“Vi”教程:)

【讨论】:

如果行缩进,它在我的 vim 中不起作用。并且上面提到的shift+0 工作正常。

以上是关于转到行首而不在 VI 中打开新行的主要内容,如果未能解决你的问题,请参考以下文章

vim 编辑器高级用法

vim 编辑器

如何设置键盘快捷键以跳转到行首/行尾? [关闭]

OS X 终端快捷方式:跳转到行首/行尾

Vi之打开文件,新建文件,保存文件

vim