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

2019-02-23 14:41:03 +08:00
 Taigacute

FAQ

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

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

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

摆脱冗长的配置文件

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

结构

插件管理

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

dein.vim

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

deinlazy.toml

初始化

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

let $CONFIG = expand('~/.config')


if !isdirectory(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

5028 次点击
所在节点    Vim
4 条回复
chemzqm
2019-02-23 17:25:44 +08:00
dein 这个插件我用了不到两天就放弃了,主要是修改插件调试太麻烦,另外需要 lazyload 只能说明有些插件实现比较差,vim 的 autoload 和异步没使用到位。
Taigacute
2019-02-23 17:56:56 +08:00
@chemzqm 装多了难免需要 lazyload 这个。相比 vim-plug 确实费劲不少。但是功能上确实好一丢丢。。还没那么深入了解大概知道 vim 的几个文件夹的作用。。。以后有空好好研究一下
iwishwp
2019-02-23 18:53:19 +08:00
我在 B 站也看到视频了,本人?
Taigacute
2019-02-23 18:58:18 +08:00
@iwishwp 本人啊。。。方便想用的人就出了一些视频。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/537934

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX