寻一个 vim 自动居中当前行的插件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Anybfans
V2EX    Vim

寻一个 vim 自动居中当前行的插件

  •  
  •   Anybfans 2017-07-19 15:30:51 +08:00 3483 次点击
    这是一个创建于 3010 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己设置总是有不全的地方,导致一直跳来跳去的。搜了半天没找到,只好发帖啦。 现在 vim 的配置,已经注释掉了。求一个比较完美的插件

    17 条回复    2024-08-27 19:13:11 +08:00
    hvsy
        1
    hvsy  
       2017-07-19 16:22:57 +08:00
    试一下这两个设置你就知道了
    set so=15
    set siso=10
    cxbig
        2
    cxbig  
       2017-07-19 17:42:43 +08:00
    还是喜欢手动 zz
    Anybfans
        3
    Anybfans  
    OP
       2017-07-19 21:23:09 +08:00
    @hvsy 我设置 15 和 10 不行。设置了 999 在编辑的时候确实是居中了,可是在一些情况还是不居中
    例如 我打开了 vim 记录了上次打开的位置。 再次打开的时候不是居中的
    Anybfans
        4
    Anybfans  
    OP
       2017-07-19 21:23:19 +08:00
    xiaohanqing
        5
    xiaohanqing  
       2017-07-20 01:47:26 +08:00 via Android
    :center
    xiaohanqing
        6
    xiaohanqing  
       2017-07-20 02:00:54 +08:00 via Android
    :set so=999
    你这应该描述为“使光标所在行在窗口垂直居中”,用过 excel 的人看到你这描述都会理解为“使当前行内容左右居中”这个就对应 center 命令
    xiaohanqing
        7
    xiaohanqing  
       2017-07-20 02:04:57 +08:00 via Android
    要想记住上次位置又想再次打开,可配合 autocmd 打开文件的时候自动 zz,或者使用 saveview 思路,保存视图并恢复视图
    yingluck
        8
    yingluck  
       2017-07-20 11:25:41 +08:00
    z dot
    这个命令可以手动居中当前行
    如果找不到好的自动居中替代品可以用这个
    Anybfans
        9
    Anybfans  
    OP
       2017-07-20 12:07:48 +08:00
    @xiaohanqing
    au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe "norm '\"zz"|else|exe "norm $zz"|endif|endif


    记住上次位置又想再次打开 这个命令。感觉也不是太好用。。
    Anybfans
        10
    Anybfans  
    OP
       2017-07-20 12:08:27 +08:00
    @xiaohanqing 是为了让光标居中,不是让内容居中
    xiaohanqing
        11
    xiaohanqing  
       2017-07-20 17:37:47 +08:00
    @Anybfans
    试一下这样
    autocmd! BufReadPost *
    \ if line("'\"")>1 && line("'\"")<=line("$")|
    \ execute 'normal! g`"zz'|
    \ endif
    Anybfans
        12
    Anybfans  
    OP
       2017-07-21 09:14:46 +08:00
    @xiaohanqing 好像不行。。
    xiaohanqing
        13
    xiaohanqing  
       2017-07-22 11:51:07 +08:00
    @Anybfans 具体是什么不行
    ashfinal
        14
    ashfinal  
       2017-08-10 14:57:04 +08:00   1
    曾经研究过这个问题。自己拷贝下这段:
    https://github.com/ashfinal/vimrc-config/blob/74813ec2d7eb5eb6cd67d051845416bcb0e9ea04/.vimrc#L187

    Normal、Visual、Insert 模式下都自动居中。很完美。
    Anybfans
        15
    Anybfans  
    OP
       2017-08-10 17:02:39 +08:00
    @ashfinal #14 哇。这个感觉很不错,先试用几天,谢谢啦
    KentY
        16
    KentY  
       2017-08-29 17:03:58 +08:00
    自动居中... 我个人觉得最佳的位置不是中间, 而是顶端往下几行(比如 5)的位置. 所以我弄了这个 map:

    https://github.com/sk1418/myConf/blob/master/common/.vimrc#L195


    "move current line to top+5 line (zt +5) zl -> zt lower
    nnoremap zl zt4<c-y>
    Epictus
        17
    Epictus  
       2024-08-27 19:13:11 +08:00   1
    @ashfinal #14 我不用查 nvim 文定 api ,我重新了使用 lua 的配置文以供使用 lazyvim 等用使用
    https://github.com/Zeuyel/nvim/blob/master/lua/config/autocmds.lua
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1559 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 16:30 PVG 00:30 LAX 09:30 JFK 12:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86