V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pony279
V2EX  ›  程序员

给自己写了个改善生活的 vi 小插件 vim-paste-easy

  •  
  •   pony279 ·
    roxma · 2017-01-20 15:05:18 +08:00 · 3334 次点击
    这是一个创建于 2869 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/roxma/vim-paste-easy

    楼主常年通过 xshelll 连接远程机器使用 (n)vim ,每次用 <shift><Insert> 粘贴代码块之前都需要 :set paste,有点麻烦,于是写了个插件,检测字符插入的速度,如果间隔小于 0.01 秒自动 set paste,回到 normal 模式后再自动 set nopaste

    12 条回复    2017-01-22 10:05:10 +08:00
    wweir
        1
    wweir  
       2017-01-20 15:30:46 +08:00
    已用,多谢
    wweir
        2
    wweir  
       2017-01-20 15:41:22 +08:00
    有问题,补全、 snippet 都会触发 set paste 的设定
    pony279
        3
    pony279  
    OP
       2017-01-20 15:45:04 +08:00
    @wweir

    我用 python jedi-vim 的补全,没有触发这个问题,你的是哪个插件?

    目前没有使用 snippet 插件,还没测试过
    backing
        4
    backing  
       2017-01-20 15:46:30 +08:00
    思路不错,还有待改进。
    我现在用的 set pastetoggle=<F2>
    pony279
        5
    pony279  
    OP
       2017-01-20 15:50:47 +08:00
    @wweir
    我用 ultisnips 测试了下没有误触发,能否在 github 上给个复现过程?
    codehz
        6
    codehz  
       2017-01-20 19:27:54 +08:00
    neovim 不是自带粘贴保留格式功能么。。
    pony279
        7
    pony279  
    OP
       2017-01-20 21:57:46 +08:00
    @codehz 你确定你看懂了我的使用场景?还是我没看懂你的意思?
    pony279
        8
    pony279  
    OP
       2017-01-20 21:59:00 +08:00
    @backing 有待改进是指?能否明确说下?
    ashfinal
        9
    ashfinal  
       2017-01-20 22:37:19 +08:00   ❤️ 1
    nnoremap <silent> yo :call YankOnce()<CR>o
    function! YankOnce()
    let b:pastemode = &paste
    set paste
    autocmd InsertLeave *
    \ if exists('b:pastemode') |
    \ let &paste = b:pastemode |
    \ unlet b:pastemode |
    \ endif
    endfunction

    用的这个,感觉也够用。
    itfanr
        10
    itfanr  
       2017-01-21 08:26:57 +08:00 via Android
    还得检测速度 牛啊
    xcodebuild
        11
    xcodebuild  
       2017-01-21 22:34:52 +08:00
    赞思路
    pony279
        12
    pony279  
    OP
       2017-01-22 10:05:10 +08:00   ❤️ 1
    @wweir 我后面改进了频率检测,如果文件在 0.1 秒内没有任何变化,也会自动退出 paste 模式,这样应该可以解决误触发的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1040 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.