如果您在Vim中键入命令(我是说您已经开始使用:
并且正在屏幕底部的栏中工作),除了点击箭头键之外,还有其他方法可以移动光标吗?特别是,您可以将其移动到开头,结尾,后n个字符或后一个单词吗?
Answers:
类型
:h cmdline-editing
有关详细信息。我列出了一些有趣的非箭头命令,它们执行的操作与您想要的类似。
<Esc>b
在命令行模式下绑定到shift + left(等等)::cnoremap <Esc>b <S-Left>
:help emacs-keys
在命令行模式下(紧接在),点击Ctrl+ 。在那里,您将获得命令行窗口,可以将其作为常规vim窗口(hjkl等)进行编辑和导航。F:
有关:h cmdline-window
详细信息,请参见。
Ctrl-C
退出。
:q
似乎也让您摆脱困境。
要添加到马克西姆·金的答案中,
在Normal Mode
..
q:
->命令的cmdline窗口
q/
-> cmdline窗口向前搜索
q?
-> cmdline窗口向后搜索
Ctrl-C
或<CR>
将您带出cmdline窗口
q:
而不是:q
。我花了很长时间才弄清楚我键入的内容最终出现在奇怪的命令窗口中(至少很直观地知道如何退出该窗口)。
q:
cmdline之后会打开命令窗口。您可以滚动浏览命令(hjkl),<CR>
然后执行您当前所在的命令。<Ctrl-C>
可用于编辑您当前所在的命令。您还可以通过进入“插入”模式(在cmdline窗口中按i),编辑命令,然后按<CR>
5h
。Ctrl + left arrow
移动整个桌面。我禁用了它,但是Ctrl + left arrow
将光标移到了该行的左侧。
ctrl+shift+left/right arrow
使用iterm2在macOS上为我工作。
您实际上可以添加自己的移动键。例如,我在.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>
其中^和$实际上分别是<ctrl- ^>和<ctrl- $>,在.vimrc中键入为<cv> <c- ^>和<cv> <c- $>(出于某些原因<c- ^ >和<c- $>至少在我的设置中不起作用,但是前者可以)