Vim – Есть ли способ получить немедленную визуальную обратную связь во время вставки в режиме визуального блока?

Я часто нажимаю:

  • <Ctrl> V чтобы перейти в режим визуального блока и выделить столбец
  • нажмите <shift>-i (чтобы вставить в начале строки), введите несколько вещей (на данный момент я вижу свои изменения в первой строке, но не другие).
  • а затем нажмите <Esc> чтобы вернуться в обычный режим.

После того, как я нажал <Esc> , я вижу, что материал, который я вставил, вставлен в каждую из других строк.

Я хотел бы визуально видеть мои изменения в каждой строке, как я печатаю, а не только в первой строке. Это возможно?

Перейдите в Visual Block, выберите кучу строк введите описание изображения здесь

Хит <Shift> i введите описание изображения здесь

Добавить текст – это часть, которую я хотел бы изменить. Я хотел бы, чтобы пробелы были сразу видны на всех строках, а не только на первой строке. введите описание изображения здесь

Hit Escape – теперь пробелы добавляются в каждую строку. Я бы хотел, чтобы это случилось раньше. введите описание изображения здесь

Я знаю, что мог бы сделать то, что я сделал в этом примере, с помощью >> . Я выбрал упрощенный пример, чтобы проиллюстрировать то, что я хотел бы изменить.

Благодаря!

One Solution collect form web for “Vim – Есть ли способ получить немедленную визуальную обратную связь во время вставки в режиме визуального блока?”

Попробуйте добавить это в свой vimrc :

 nmap <buffer> <silent> <expr> <F12> InsertCol() imap <buffer> <silent> <expr> <F12> InsertCol() function! InsertCol() let w:first_call = exists('w:first_call') ? 0 : 1 "if w:first_call " startinsert "endif try let char = getchar() catch /^Vim:Interrupt$/ let char = "\<Esc>" endtry if char == '^\d\+$' || type(char) == 0 let char = nr2char(char) endif " It is the ascii code. if char == "\<Esc>" unlet w:first_call return char endif redraw if w:first_call return char."\<Esc>gvA\<CR>=Redraw()\<CR>\<F12>" else return char."\<Esc>gvlA\<CR>=Redraw()\<CR>\<F12>" endif endfunction function! Redraw() redraw return '' endfunction 

Затем нажмите Ctrl-v I, как обычно, и нажмите F12 . Он будет вставлять и показывать все строки, измененные для каждого нажатия клавиши.

Примечание: сценарий был бы лучше, если бы нажатие F12 перешло в режим вставки, вместо того чтобы требовать, чтобы вы каждый раз нажимали I. Возможно, команда startinsert в сочетании с vnoremap может это сделать.

  • Как использовать `gnome-terminal` с новой архитектурой клиент / сервер в качестве оболочки?
  • Могу ли я повторно войти в отключенную сессию?
  • Как я могу редактировать файлы в сети с помощью Vim?
  • Прокомментируйте оператор if и соответствующее ключевое слово endif
  • поддержка tmux, TERM и 256 цветов
  • VIM отображает совпадения регулярных выражений при вводе
  • Визовый режим Vim - есть ли способ изменить цвет фона только в визуальном режиме?
  • Ошибка Vim E138: не удается написать файл viminfo $ HOME / .viminfo!
  • vim custom pop up menu
  • Как vim крадет файлы, принадлежащие root?
  • В VIM замените путь косой чертой, не используя escape-слэши
  • (g) vim - NerdTree и тегбар над друг другом слева до редактируемого файла?
  • Linux и Unix - лучшая ОС в мире.