vim - 在 VIM 中粘贴/完成粘贴时更新状态行
问题描述
找到以下片段https://github.com/ConradIrwin/vim-bracketed-paste并认为如果我可以修改它会很整洁,
- 粘贴时检测,
- 使用“粘贴数据”更新状态行
- 设置粘贴
- “粘贴数据”
- 离开 pastemode (通过 pastetoggle 绑定在 [201~)
- 将状态行更新为粘贴前的状态
这就是我“有点尝试过”的方法,但不明白我将如何在“[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>
谢谢
解决方案
推荐阅读
- c# - 如何以编程方式从另一个 .Net 项目启动和停止 .NetCore API Server 项目;在这种情况下,控制台应用程序?
- java - 如何使用 Java Stream 根据输入文件中的字符将对象添加到二维数组
- c# - 为什么在完成异步任务之前调用 Dispose?
- git - 如何从多个远程仓库覆盖本地仓库?
- javascript - post() 中的 jQuery 函数不选择父函数的元素
- javascript - 如何将从网络摄像头捕获的图像保存到文件夹
- database - Postgres 似乎在一段时间后不断关闭
- laravel - 错误:使用 guzzle 时,htmlspecialchars() 期望参数 1 为字符串
- excel - How to remove cursor from Textbox (in a progress bar)?
- c++ - 为什么ofstream作为类成员不能传递给线程?