CodeDrift
V2EX  ›  Vim

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

  •  
  •   CodeDrift · Jul 19, 2017 · 4348 views
    This topic created in 3395 days ago, the information mentioned may be changed or developed.

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

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


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

    Normal、Visual、Insert 模式下都自动居中。很完美。
    CodeDrift
    CodeDrift
    OP
    Aug 10, 2017
    15
    @ashfinal #14 哇。这个感觉很不错,先试用几天,谢谢啦
    KentY
    KentY
    Aug 29, 2017
    16
    自动居中... 我个人觉得最佳的位置不是中间, 而是顶端往下几行(比如 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
    Epictus
    Aug 27, 2024❤️1
    17
    @ashfinal #14 讓我不用查閲 nvim 文檔確定 api ,我重新寫了使用 lua 的配置文檔以供使用 lazyvim 等用戶使用
    https://github.com/Zeuyel/nvim/blob/master/lua/config/autocmds.lua
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1379 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 20:55 · PVG 04:55 · LAX 12:55 · JFK 15:55
    ♥ Do have faith in what you're doing.