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