如何在Vim命令行中移动?

时间:2010-01-16 00:07:55

标签: vim

如果您在Vim中输入命令(我的意思是您已经开始使用:并且您正在屏幕底部的栏中工作)有没有办法将光标移动到其他位置而不是点击箭头键?特别是,你可以将它移动到开头,结尾,后面的n个字符,还是后面的一个单词?

7 个答案:

答案 0 :(得分:83)

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

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

答案 1 :(得分:57)

类型

:h cmdline-editing

了解详情。我列出了一些有趣的非箭头命令,它们可以执行类似于您想要的操作。

  • ctrl - B :光标到命令行的开头
  • ctrl - E :光标到命令行的结尾
  • ctrl - W :删除光标前的单词
  • ctrl - U :删除光标位置和行首之间的所有字符

答案 2 :(得分:19)

要添加到Maxim Kim的答案,

Normal Mode ..

q: - >命令的cmdline窗口

q/ - >用于向前搜索的cmdline窗口

q? - >向后搜索的cmdline窗口

Ctrl-C<CR>会将您带出cmdline-window

答案 3 :(得分:14)

  • ctrl + 左箭头:向后移动一个单词
  • ctrl + 右箭头 - 前进一个单词
  • ctrl + b - 回到行尾
  • ctrl + e - 转到行尾
  • ctrl + w - 删除光标前的一个单词
  • ctrl + u - 删除行
  • ctrl + f - 如果您需要更多编辑权限,请使用 ctrl + f ,您将编辑正常模式下的命令。例如,如果要向左移动5个字符,请使用 ctrl + f 然后5h

答案 4 :(得分:3)

nnoremap q; q:便于输入。 usr_20.txt和cmdline.txt包含所有有用的信息。

答案 5 :(得分:1)

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

 " moving aroung in command mode
 cnoremap <c-h> <left>
 cnoremap <c-j> <down>
 cnoremap <c-k> <up>
 cnoremap <c-l> <right>
 cnoremap ^     <home>
 cnoremap $     <end>

其中 ^ $ 确实是&lt; ctrl- ^&gt;和&lt; ctrl- $&gt;各自,键入为&lt; c-v&gt; c- ^&gt;和&lt; c-v&gt; c- $&gt;在.vimrc中(由于某种原因&lt; c- ^&gt;和&lt; c- $&gt;将不起作用,至少在我的设置中,但前者会这样做)

答案 6 :(得分:0)

在Mac OS上,

  • Shift + 左箭头:向后移动一个单词
  • Shift + 向右箭头:向前移动一个单词