我如何在Vim命令行中移动?
如果你正在Vim中input一个命令(我的意思是你已经开始使用了,而且你正在屏幕底部的工作区中工作),除了点击箭头键之外,还有一种移动光标的方法吗? 特别是,你可以把它移动到开始,结束,后退n个字符,还是后面一个单词?
types
:h cmdline-editing
了解详情。 我列出了一些有趣的非箭头命令,可以做类似于你想要的东西。
- ctrl – B :光标到命令行的开头
- ctrl – E :光标到命令行结束
- ctrl – W :删除光标前的单词
- ctrl – U :删除光标位置和行首之间的所有字符
在命令行模式下(在:
之后)点击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 + F和
5h
。
您实际上可以添加自己的移动键。 例如,我在.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包含所有有用的信息。