我如何在Vim命令行中移动?

如果你正在Vim中input一个命令(我的意思是你已经开始使用了,而且你正在屏幕底部的工作区中工作),除了点击箭头键之外,还有一种移动光标的方法吗? 特别是,你可以把它移动到开始,结束,后退n个字符,还是后面一个单词?

types

:h cmdline-editing

了解详情。 我列出了一些有趣的非箭头命令,可以做类似于你想要的东西。

  • ctrlB :光标到命令行的开头
  • ctrlE :光标到命令行结束
  • ctrlW :删除光标前的单词
  • ctrlU :删除光标位置和行首之间的所有字符

在命令行模式下(在:之后)点击Ctrl + F。 在那里,你会得到命令行窗口,可以作为一个常规的vim窗口(hjkl等)进行编辑和导航。

有关详细信息,请参阅:h cmdline-window

要添加到Maxim Kim的答案中,

Normal Mode

q: – > cmdline窗口的命令

q/ – > cmdline窗口向前search

q? – > cmdline窗口向后search

Ctrl-C<CR>会带你离开cmdline-window

  • Ctrl + 左箭头 :移回一个单词
  • 按Ctrl + 向右箭头 – 向前移动一个单词
  • ctrl + b – 回到行的开头
  • ctrl + e – 转到行尾
  • ctrl + w – 删除光标前的一个单词
  • ctrl + u – 删除行
  • ctrl + f – 如果你需要更多的编辑权力使用CTRL + F ,你会在正常模式下编辑你的命令。 例如,如果要将5个字符移动到左侧,请使用Ctrl + F5h

您实际上可以添加自己的移动键。 例如,我在.vimrc中使用以下命令,以hjkl方式(滥用ctrl键)在命令模式下以手指方式移动:

  " moving aroung in command mode cnoremap <ch> <left> cnoremap <cj> <down> cnoremap <ck> <up> cnoremap <cl> <right> cnoremap ^ <home> cnoremap $ <end> 

其中^$分别是<ctrl- ^>和<ctrl- $>,在.vimrc中键入为<cv> <c- ^>和<cv> <c- $>(由于某些原因<c- ^ >和<c- $>将不起作用,至less在我的设置,但前者)

nnoremap q; q: nnoremap q; q:方便打字。 usr_20.txt和cmdline.txt包含所有有用的信息。