Обновление строки состояния при вставке / вставке в VIM - PullRequest
0 голосов
/ 18 октября 2018

Нашел следующий фрагмент https://github.com/ConradIrwin/vim-bracketed-paste и подумал, что было бы здорово, если бы я мог изменить его так, чтобы он был,

  1. Обнаружить при вставке,
  2. Обновить строку состояния с помощью«вставка данных»
  3. установка вставки
  4. «вставка данных»
  5. выход из режима вставки (с помощью команды pastetoggle на [201 ~)
  6. Обновление строки состояния до любойэто было до вставки

Это то, что я "пробовал", но не могу понять, как заставить что-либо "выполнить" на "[201 ~".Несмотря на то, что я использовал VIM некоторое время, я все еще нахожу это невероятно трудным (я все еще не до конца понимаю весь фрагмент кода), и советы / указатели / решения приветствуются.

let &t_ti .= "\<Esc>[?2004h"
let &t_te = "\e[?2004l" . &t_te

function! PasteStart(ret)
  set statusline=pasting
  set pastetoggle=<f29>
  set paste
  return a:ret
endfunction

function! PasteEnd()
  set statusline=Done
  return ""
endfunction

execute "set <f28>=\<Esc>[200~"
execute "set <f29>=\<Esc>[201~"

map  <expr> <f28> PasteStart("i")
imap <expr> <f28> PasteStart("")
vmap <expr> <f28> PasteStart("c")

map  <expr> <f29> PasteEnd()
imap <expr> <f29> PasteEnd()
vmap <expr> <f29> PasteEnd()

cmap <f28> <nop>
cmap <f29> <nop>

Спасибо

...