1336

我知道通常如何在命令模式下移动,特别是跳转到行等。但是跳转到我当前所在行末尾的命令是什么?

4

15 回答 15

2274

只是$ (美元符号)键。您可以使用A移动到行尾并切换到编辑模式(追加)。要跳转最后一个非空白字符,可以按gthen_键。

与之相反的AI(在行首插入模式),作为旁白。仅按^会将光标放在该行的第一个非空白字符处。

于 2008-09-19T21:20:48.503 回答
326

正如很多人所说:

  • $让你走到最后

但是也:

  • ^_让您到达该行中的第一个非空白字符,并且
  • 0(零)将您带到行首,包括。空白
于 2008-09-19T22:22:49.087 回答
142
  • $移动到该行的最后一个字符。
  • g _转到最后一个非空白字符。

  • g $转到屏幕行的末尾(当缓冲行跨越多个屏幕行时)

于 2010-09-28T11:04:58.223 回答
83

主要问题 - 行尾

$到行尾,保持在命令模式

A走到行尾,切换到插入模式

相反 - 行首(技术上是第一个非空白字符)

^转到行首,保持在命令模式

I(大写 i)转到行首,切换到插入模式

进一步 - 行首(技术上第一列与空格无关

0(零)转到行首,保持在命令模式

0i(零后跟小写 i)进入行首,切换到插入模式

对于那些开始学习 vi 的人,这里是 vi 的一个很好的介绍,通过并排列出 vi 命令到典型的 Windows GUI 编辑器光标移动和快捷键。

适用于 Windows 用户的 vi 编辑器

于 2015-02-07T11:02:51.260 回答
47

如果当前行环绕可见屏幕到下一行,则可以使用g$到达屏幕行的末尾。

于 2008-09-19T22:49:56.823 回答
36

我看不到在标准终端中使用 vim 的 macbook 热键。希望它会帮助某人。对于 macOS 用户(在 macbook pro 2018 上测试):

fn+ - 移动到开始行

fn+ - 移动到结束行

fn+ - 向上移动页面

fn+ - 向下移动页面

fn+ g - 将光标移动到文档的开头

fn+ shift + g - 将光标移动到文档末尾

对于最后两个命令,有时需要点击两次。

于 2019-05-08T14:58:39.800 回答
18

按下A以从行尾开始进入编辑模式。

于 2008-09-19T21:20:51.203 回答
17

美元符号:$

于 2008-09-19T21:20:26.430 回答
15

“结束”键的优点是它可以在正常和插入模式下工作。

'$' 仅适用于普通/命令模式,但它也适用于经典 vi 编辑器(很高兴知道 vim 何时不可用)。

于 2008-09-19T22:05:58.100 回答
13

在许多情况下,当我们在一个字符串中时,我们用双引号括起来,或者在编写语句时,我们不想按转义键并使用箭头键转到该行的末尾并按分号(;)只是为了结束线。在vimrc文件中写入以下行:

imap <C-l> <Esc>$a

这条线说什么?它将 Ctrl+l 映射到一系列命令。这相当于你一次按Esc(命令模式),$(行尾),a(追加)。

于 2010-11-27T07:04:55.670 回答
13

还要注意line(或者可能是物理线)和screen line之间的区别。行由行尾字符 ("\n") 终止。屏幕行是在终端或屏幕中显示为一行字符的任何内容。如果你的物理线长于屏幕宽度,这两者就会分开,这在写电子邮件等时很常见。

区别也显示在行尾命令中。

  • $0分别移动到物理行或段落的末尾或开头:
  • g$g0分别移动到屏幕行或段落的末尾或开头。

如果你总是喜欢后一种行为,你可以像这样重新映射键:

:noremap 0 g0
:noremap $ g$
于 2010-12-17T18:31:41.140 回答
9

或者有一个明显的答案:使用End键走到行尾。

于 2008-09-19T21:35:06.083 回答
6

可能不相关,但如果你想在当前行之后开始新的一行,你可以在该行的任何地方使用 o。

于 2008-10-01T18:47:03.240 回答
3

最简单的选择是键入$. 如果您正在处理文本块,您可能会喜欢该命令{}以便分别前后移动段落。

于 2014-07-29T13:53:58.723 回答
2

我习惯于 Home/End 让我在插入模式下(从在 Windows 中使用,我认为是 Linux)进入行的开头和结尾,这是 Mac 不支持的。这特别烦人,因为当我在远程系统上使用 vim 时,我也不能轻易做到。经过一些痛苦的尝试和错误,我想出了这些.vimrc行,它们做同样的事情,但绑定到 Ctrl-A 用于行的开头和 Ctrl-D 用于行的结尾。(出于某种原因,我猜 Ctrl-E 是保留的,或者至少我想不出一种绑定它的方法。)享受吧。

:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>

这里有一个很好的 ASCII 控制字符代码图表供其他人使用:

http://www.physics.udel.edu/~watson/scen103/ascii.html

您也可以执行 Ctrl-V + Ctrl- ,但这并不能很好地粘贴到这样的地方。

于 2014-08-02T22:00:03.377 回答