分享一些我折腾 vim 到现在的 thinkvim 配置的过程希望能帮助到你 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Taigacute
V2EX    Vim

分享一些我折腾 vim 到现在的 thinkvim 配置的过程希望能帮助到你

  •  3
     
  •   Taigacute 2019 年 2 月 23 日 6006 次点击
    这是一个创建于 2617 天前的主题,其中的信息可能已经有所发展或是发生改变。

    FAQ

    之前分享了下我的配置然后有些问题我在这里说明一下--我的配置不是项目级别个人折腾级别

    1.和 Spacevim,Space-vim,或者其他配置有什么区别?

    • 这个配置只是我自己的配置。与 Spacevim Space-vim 不同,它们可以说是个项目了。我的有很多需要你自己改。我只是提供一个模块的小巧以管理的配置。只是取了个名字,然后我的配置没那么多方便的功能,比如简单的管理想添加什么只需要设置 layer 或者其他 easy 的操作,我的要你自己添加插件配置插件改动文件。大家的触发点不一样。但是都是 vim 的爱好者。
    • 我的出发点是我觉得 vim 不折腾就没了意义。追求 vim 是把它打造成自己喜欢的工具。包括它的每一寸肌肤。对吗??我相信应该有和我一样不愿意使用别人配置的人你们应该能明白的。

    2.我自己的配置就很好,为什么要看你的配置?

    • 你的配置你很满意的情况下你完全可以不用看我的配置。如果你想拆分一下变得模块化组件化易于管理摆脱冗长的 init.vim ,你可以参考我的配置或许对你有帮助

    摆脱冗长的配置文件

    因为 init.vim 或 vimrc 太长导致维护的时候很麻烦,所以看到了一些模块化的配置,就想着模块化一下。

    结构

    插件管理

    最开始使用的 vim-plug,然后发现 dein 提供了更多的功能更好的懒加载,所以切换到了 dein,dein 提供了用 toml 文件来管理插件,很棒。但是 dein 对新手比较不友好。文档齐全但是你也有可能看不懂,google 很多例子 和说明。总算入门了。

    dein.vim

    • 我将 dein 的配置脚本通过 dein.vim 进行管理。设置一个$CACHE变量为.cache 文件夹作为插件的安装目录。如果涉及需要文件路径的,我都建议通过添加一个变量来设置,这样切换电脑也很方便。其实 toml 的路径最好的方式也是通过变量来。那时候偷懒了,有空改一下。。
    let g:dein#install_progress_type = 'title' let g:dein#enable_notification = 1 let g:dein#install_log_filename = '~/.tmp/dein.log' let $CACHE = expand('~/.cache') let s:path = expand('$CACHE/dein') if !dein#load_state(s:path) finish endif call dein#begin(s:path, expand('<sfile>')) call dein#load_toml('~/.config/nvim/rc/dein/dein.toml', {'lazy': 0}) call dein#load_toml('~/.config/nvim/rc/dein/deinlazy.toml', {'lazy' : 1}) call dein#end() call dein#save_state() if dein#check_install() " Installation check. call dein#install() endif 

    (诶诶 V2EX 居然没有高亮???? 我姿势不对?)

    dein.toml

    • 我通过 dein.toml 配置正常加载的插件一般是 ui 方面的比如 startify 之类的。我想打开 vim 的时候就能看到他们

    deinlazy.toml

    • 主要是添加需要懒加载的插件。大部分插件我都设置到了这里,这样我的 vim 启动速度不会被拖慢。使用起来也不会因为插件过多导致卡顿。thinkvim 的启动时间在 110ms 左右。插件数量 41.

    初始化

    我通过 vimrc 这个文件进行文件的加载。外部的 neovim 的入口文件加载这个 vimrc 就可以了。init.vim 来检查 dein 是否已经安装。如果没有安装就进行自动下载 dein。方便更换电脑的时候配置环境,也方便大家使用的时候安装。init.vim 部分代码

    let $COnFIG= expand('~/.config') if !isdiretory(expand($CONFIG)) call mkdir(expand($CONFIG), 'p') endif " Load dein. let s:dein_dir = finddir('dein.vim', '.;') if s:dein_dir != '' || &runtimepath !~ '/dein.vim' if s:dein_dir == '' && &runtimepath !~ '/dein.vim' let s:dein_dir = expand('$CONFIG/nvim') \. '/repos/github.com/Shougo/dein.vim' if !isdirectory(s:dein_dir) execute '!git clone https://github.com/Shougo/dein.vim' s:dein_dir endif endif execute 'set runtimepath^=' . substitute( \ fnamemodify(s:dein_dir, ':p') , '/$', '', '') endif 

    其他文件就很 easy 了,vim 的基础设置,vim 的键位映射,然后在 vimrc 控制加载的顺序。搞定。vimrc 部分代码

    if has('vim_starting') call s:source_rc('init.vim') endif call s:source_rc('dein.vim') call s:source_rc('plugins/allkey.vim') syntax enable filetype plugin indent on call dein#call_hook('source') call dein#call_hook('post_source') " Loading configuration modules call s:source_rc('general.vim') call s:source_rc('mappings.vim') call s:source_rc('/themes/theme.vim') 

    Plugins

    插件如果配置项比较多就用单独的 vim 文件来设置,然后在 dein 的 toml 文件里加载。这样就比较清晰明了了。为了更好的管理。把插件的目录都放到 allkey 里面去。这样如果其他人使用也看的清楚。上手快。自己也好维护。 比如这样的 allkey.vim 部分代码

    if dein#tap('fzf.vim') nnoremap <silent> <leader>f :call Fzf_dev()<CR> nnoremap <silent> <leader>r :Rg<CR> endif if dein#tap('nerdtree') "nerdtree nnoremap <leader>e :NERDTreeToggle <CR> endif 

    主题 colorscheme

    主题这个东西就像女朋友,换来换去的。所以我把主题单独抽出来。方便修改。然后对一些配色不满意自己调高亮的组。都放在 theme.vim 里

    " Enable 256 color terminal set t_Co=256 " Enable true color if has('termguicolors') set termguicolors endif set background=dark "colorscheme hybrid_reverse colorscheme space_vim_theme hi Whitespace ctermfg=96 guifg=#725972 guibg=NONE ctermbg=NONE 

    这样搞一下是不是你的文件就会很清爽了?你可以试试折腾自己的。坑的话就是 dein。dein 提供的方法你使用不对插件就会没法使用。

    ThinkVim

    完整的配置在---->>>传送门

    SCREENSHOT

    4 条回复
    chemzqm
        1
    chemzqm  
       2019 年 2 月 23 日
    dein 这个插件我用了不到两天就放弃了,主要是修改插件调试太麻烦,另外需要 lazyload 只能说明有些插件实现比较差,vim 的 autoload 和异步没使用到位。
    Taigacute
        2
    Taigacute  
    OP
       2019 年 2 月 23 日
    @chemzqm 装多了难免需要 lazyload 这个。相比 vim-plug 确实费劲不少。但是功能上确实好一丢丢。。还没那么深入了解大概知道 vim 的几个文件夹的作用。。。以后有空好好研究一下
    iwishwp
        3
    iwishwp  
       2019 年 2 月 23 日
    我在 B 站也看到视频了,本人?
    Taigacute
        4
    Taigacute  
    OP
       2019 年 2 月 23 日
    @iwishwp 本人啊。。。方便想用的人就出了一些视频。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2880 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 14:13 PVG 22:13 LAX 07:13 JFK 10:13
    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