如何在Vim中移动到行尾?

我知道如何在命令模式下四处走动,特别是跳到线条等。但是,跳到我目前所在的线的最后的命令是什么?

只需$ (美元符号)键。 您可以使用A移动到行尾并切换到编辑模式(追加)。

A的对面是I (插入模式在行首),作为旁边。

正如很多人所说:

  • $让你到行的末尾

但也:

  • ^_让你到行中的第一个非空白字符
  • 0 (零)让你到行的开头incl。 空白
  • $移动到行上的最后一个字符。
  • g _转到最后一个非空白字符。

  • g $到屏幕行的末尾(当一个缓冲行被包装在多个屏幕行中时)

$

检出这个VIM备忘单

如果你的当前行换行到可见屏幕上,你可以使用g $来到屏幕行的末尾。

主要问题 – 行结束

$到行尾,保持命令模式

一行到行尾,切换到插入模式

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

^到行的开始,保持命令模式

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

进一步 – 行的开始(技术上第一列,不pipe空白

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

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

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

vi编辑器为Windows用户

美元符号:$

“结束”键的优点是在普通模式和插入模式下均可使用。

'$'只能在正常/命令模式下运行,但也可以在经典的vi编辑器中运行(很好的了解vim不可用的时候)。

在很多情况下,当我们在一个string内部时,我们被双引号括起来,或者在写一个语句的时候,我们不想按下转义键,并且用箭头键到那一行的末尾,然后按分号( ; )结束线路。 在你的vimrc文件里写下下面这行:

 imap <Cl> <Esc>$a 

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

还要注意线 (或可能是物理线)和屏幕线之间的区别。 一行以行尾字符(“\ n”)结尾。 屏幕线是在terminal或屏幕上显示的一行字符。 如果你的实体行比屏幕宽度长,这两个就会分开,这在写电子邮件等时很常见。

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

  • $0分别移动到实体行或段落的结尾或开头:
  • g $g 0分别移动到屏幕行或段落的结尾或开头。

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

 :noremap 0 g0 :noremap $ g$ 

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

或者有一个明显的答案:使用结束键到行的末尾。

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

最简单的select是键入$ 。 如果你正在处理文本块,你可能会喜欢命令{}来分别向前和向后移动段落。

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

 :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-,但是也不能粘贴到这样的地方。