首页 文章

如何在Vim中移动到行尾?

提问于
浏览
1028

我知道如何一般在命令模式中移动,特别是跳到线路等 . 但是跳到我目前所在线路末端的命令是什么?

14 回答

  • 2

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

    A的反面是I(行开头的插入模式),旁边 .

  • 6

    很多人都说:

    • $让你走到终点

    但是也:

    • ^或_将您带到该行中的第一个非空白字符,并且

    • 0(零)将您带到包含行的开头 . 空白

  • 12
    • $移动到该行的最后一个字符 .

    • g _转到最后一个非空白字符 .

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

  • 1821

    主要问题 - 行尾

    $进入行尾,保持命令模式

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

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

    ^进入行的开头,保持在命令模式

    我(大写i)转到行的开头,切换到插入模式

    进一步 - 开始行(技术上是第一列,不管空白)

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

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

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

    vi editor for Windows users

  • 48

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

  • 8

    美元符号:$

  • 8

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

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

  • 10

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

    imap <C-l> <Esc>$a
    

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

  • 3

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

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

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

    • g $和g0分别移动到屏幕行或段落的结尾或开头 .

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

    :noremap 0 g0
    :noremap $ g$
    
  • 12

    按A键从行尾开始进入编辑模式 .

  • 38

    或者有明显的答案:使用结束键转到行尾 .

  • 10

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

  • 280

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

  • 123

    我习惯于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-,但这不会粘贴到这样的地方 .

相关问题