如何在Vim中移动到行尾?

时间:2008-09-19 21:19:47

标签: vim editor keyboard-shortcuts vi

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

15 个答案:

答案 0 :(得分:1876)

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

A 的反面是 I (行开头的插入模式),作为旁白。只按 ^ 会将光标放在行的开头。

答案 1 :(得分:285)

很多人都说过:

  • $ 让您走到行尾

但也是:

  • ^ _ 将您带到该行中的第一个非空白字符,
  • 0 (零)让你到行包括的开头。空白

答案 2 :(得分:129)

  • $ 移动到该行的最后一个字符。
  • g _ 转到最后一个非空格字符。

  • g $ 转到屏幕行的末尾(当缓冲行包裹在多个屏幕行上时)

答案 3 :(得分:53)

主要问题 - 行尾

$ 到达行尾,仍处于命令模式

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

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

^ 进入行首,保持命令模式

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

进一步 - 开始行(技术上是第一列而不管空格

0 (零)进入行首,保持命令模式

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

对于那些开始学习vi的人来说,通过将并排的vi命令列入典型的Windows GUI Editor光标移动和快捷键,可以很好地介绍vi。

vi editor for Windows users

答案 4 :(得分:39)

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

答案 5 :(得分:12)

美元符号:$

答案 6 :(得分:12)

'结束'键的优点是它可以在普通和插入模式下工作。

'$'仅在正常/命令模式下工作,但它也可以在经典的vi编辑器中工作(很好知道什么时候vim不可用)。

答案 7 :(得分:12)

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

;

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

答案 8 :(得分:10)

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

这种区别也出现在行尾命令中。

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

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

:noremap 0 g0
:noremap $ g$

答案 9 :(得分:9)

A 进入从行尾开始的编辑模式。

答案 10 :(得分:9)

或者有明显的答案:使用 End 键转到该行的末尾。

答案 11 :(得分:6)

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

答案 12 :(得分:3)

最简单的选择是键入 $ 。如果您正在使用文本块,您可能会欣赏命令 {} ,以便分别前后移动一个段落。

答案 13 :(得分: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-,但这不会粘贴到这样的地方。

答案 14 :(得分:0)

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

  

fn + -移至开始行

     

fn + -移至结束行

     

fn + -向上移动页面

     

fn + -下移页面

     

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

     

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

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