6 ответов:
по умолчанию вы можете нажать
Control + f(или иное см.set cedit) когда в командной строке Vim, которая открывает окно командной строки, где вы можете редактировать команду с помощью клавиш редактирования Vim в обычном режиме.Enterвыполнит команду илиControl + cвернет вас в стандартную командную строку.так что в вашем конкретном примере, вы можете нажать
Control + fв командной строке Vim затемdbи он будет делать то, что вы хотите.когда мне нужно сделать более сложное редактирование команды я использую приведенный выше подход, потому что я больше знаком с клавишами редактирования Vim, чем с альтернативами. Я также нахожу ключи Vim нормального режима более мощными.
посмотреть
:help c_ctrl-fдля получения дополнительной информации.
на ВИМрежим командной строки:
<ctrl-w>удаляет словона нормальный режим:
q:переходит к истории команд (которую можно редактировать с помощью команды vim)посмотреть
:help cmdline-editingи:help cmdline-windowдополнительные команды.
встроенные горячие клавиши для перемещения и редактирования в режиме командной строки
CTRL-B cursor to begin of command-line CTRL-E cursor to end of command-line CTRL-F opens the command-line window (unless a different key is specified in 'cedit') CTRL-H delete the character in front of the cursor (same as <Backspace>) CTRL-W delete the word in front of the cursor CTRL-U delete all characters in front of the cursor CTRL-P recall previous command-line from history (that matches pattern in front of the cursor) CTRL-N recall next command-line from history (that matches pattern in front of the cursor) <Up> recall previous command-line from history (that matches pattern in front of the cursor) <Down> recall next command-line from history (that matches pattern in front of the cursor) <S-Up> recall previous command-line from history <S-Down> recall next command-line from history <PageUp> recall previous command-line from history <PageDown> recall next command-line from history <S-Left> cursor one word left <C-Left> cursor one word left <S-Right> cursor one word right <C-Right> cursor one word right <LeftMouse> cursor at mouse clickссылки:
:help ex-edit-index(извините за перекрытие с более старыми ответами. Надеюсь, что этот полный и структурированный обзор тем не менее полезен.)
искать
:help cmdline-editingв Vim.Это даст список сочетаний работающих в режиме командной строки.
выписка для вашей текущей проблемы:
CTRL-B or <Home> *c_CTRL-B* *c_<Home>* cursor to beginning of command-line CTRL-E or <End> *c_CTRL-E* *c_<End>* cursor to end of command-line <S-Left> or <C-Left> *c_<C-Left>* cursor one WORD left *c_<S-Right>* <S-Right> or <C-Right> *c_<C-Right>* cursor one WORD rightили использовать
q:Как отметил Рене, которая позволяет редактировать предыдущие введенные команды в разных режимах.
плагины для"нормального режима" -как редактирование командной строки
emacscommandline делает режим командной строки более похожим на командную строку Unix, добавляя сопоставления в стиле Emacs (например, в оболочке Bash). Некоторые из них сопоставления просто сопоставляют существующие команды vim, но остальные реализуют функциональность, которая недоступна изначально.
conomode.ВИМ реализует своего рода нормальный режим ("Cmdline-нормальный режим") поверх командная строка. Назначение аналогично cmdline-window (q:), но навигация и редактирование могут быть сделаны на месте. Конечно командной строки-окно является гораздо более мощным.
Conomode не заменяет собственную командную строку emacs Vim редактирование, он просто добавляет одну клавишу: CTRL-O (см. ниже).
- enter с помощью c_ (нажмите CTRL-O находясь в режиме командной строки)
- индикатор режима представляет собой двоеточие":", перемещаемое вместе с курсором, скрывая под ним символ
- выход в Cmdline-режим с I, i, a, A,: или любой несопоставленный ключ (который затем выполняет или вставляет себя), или подождите 60 секунд.
- выход в нормальный режим с Esc
(По общему признанию, я не понимаю смысла этого плагина, так как вместо удара Ctrl+O to войдите в его Cono-режим, вы можете так же быстро открыть окно командной строки с помощью Ctrl+F.)
там могут быть и другие плагины. → https://www.google.com/webhp?q=command-line + редактирование + плагин+vim
вместо использования полномасштабного плагина, или в качестве дополнения к нему, вы можете определить ваши собственные отображения. → Смотрите мой другой ответ.
пользовательские сопоставления, которые реплицируют команды нормального режима
вы можете вручную сопоставить определенные обычные команды с нажатиями клавиш в режиме командной строки.
например, следующий набор сопоставлений сделает Alt+h в режиме командной строки перейти на один символ влево, Alt+k вспомните предыдущую команду Ex и так далее, аналогично hjkl в нормальных режим.
" provide hjkl movements in Command-line mode via the <Alt> modifier key cnoremap <expr> <A-h> &cedit. 'h' .'<C-c>' cnoremap <expr> <A-j> &cedit. 'j' .'<C-c>' cnoremap <expr> <A-k> &cedit. 'k' .'<C-c>' cnoremap <expr> <A-l> &cedit. 'l' .'<C-c>'поскольку клавиша модификатора Alt по умолчанию не отображается (на что-то важное), вы можете таким же образом вытащить другие (или все) функции из обычного режима в режим вставки. Например.: Переход к началу текущего слова с Alt+b:
" Normal mode command(s) go… --v <-- here cnoremap <expr> <A-b> &cedit. 'b' .'<C-c>' cnoremap <expr> <A-w> &cedit. 'w' .'<C-c>' " <Alt>+<i> changes the first word (typically " the last run Ex :command or the last range, given the case) cnoremap <expr> <A-i> &cedit. '^cw' .'<C-c>'вы должны скопировать этот код в свой файл vimrc, чтобы он загружался каждый раз при запуске vim (вы можете открыть его, введя
:new $myvimrcпроцесс пуска в норме режим.)
Вместо того, чтобы "изобретать колесо", или в качестве дополнения к вашим собственным отображениям, вы можете использовать полнофункциональный Плагины от других авторов → смотрите мой другой ответ.
Comments