如何在Vim命令行中移动?

Eth*_*han 63 vim

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

Max*_*Kim 89

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

详情:h cmdline-window请见.

  • 哇,这对生活来说简直就是揭晓. (12认同)
  • 并且`Ctrl-C`退出. (7认同)
  • 现在为什么这个信息很难找到?我想给你一个拥抱男人. (6认同)
  • 这同样适用于搜索线!太棒了! (6认同)
  • 这是一颗宝石。`:q` 似乎也能让你摆脱困境。 (2认同)

Alo*_*hal 58

类型

:h cmdline-editing

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

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


Jef*_*ose 20

要添加到Maxim Kim的答案中,

Normal Mode......

q: - >命令的cmdline窗口

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

q? - > cmdline窗口向后搜索

Ctrl-C或者<CR>将你带出cmdline窗口

  • 有时,我的一只手无意中击败了另一只手,我不经意间输入了 `q:` 而不是 `:q`。我花了很长时间才弄清楚我正在输入什么,最终出现在奇怪的命令窗口中(至少如何摆脱它是直观的)。 (6认同)

ker*_*nix 15

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


Dal*_*ker 5

您实际上可以添加自己的移动键。例如,我在 .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>
Run Code Online (Sandbox Code Playgroud)

其中^$实际上分别是 < ctrl-^ > 和 < ctrl-$ >,在 .vimrc 中输入为 < cv >< c-^ > 和 < cv >< c-$ > (出于某种原因 < c-^ > 和 < c-$ > 不起作用,至少在我的设置中,但前者可以)