之前分享了下我的配置然后有些问题我在这里说明一下--我的配置不是项目级别个人折腾级别
因为 init.vim 或 vimrc 太长导致维护的时候很麻烦,所以看到了一些模块化的配置,就想着模块化一下。
最开始使用的 vim-plug,然后发现 dein 提供了更多的功能更好的懒加载,所以切换到了 dein,dein 提供了用 toml 文件来管理插件,很棒。但是 dein 对新手比较不友好。文档齐全但是你也有可能看不懂,google 很多例子 和说明。总算入门了。
$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 居然没有高亮???? 我姿势不对?)
我通过 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')
插件如果配置项比较多就用单独的 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
主题这个东西就像女朋友,换来换去的。所以我把主题单独抽出来。方便修改。然后对一些配色不满意自己调高亮的组。都放在 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 提供的方法你使用不对插件就会没法使用。
完整的配置在---->>>传送门
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.