我是 Mac 用户,我想知道是否有办法将我的所有点文件放入一个.config
文件夹中来存储它们(类似于 Linux 上的 XDG 目录)。
我试图建立一个.vimrc
文件,但当我将其移动时,~/.config
就会创建一个新文件~/
。
谢谢你!
答案1
vim 早于 XDG 规范,并且不遵循它。您可以使用 shell 配置文件中的 VIMINIT 变量覆盖配置文件的路径,如下所示https://tlvince.com/vim-respect-xdg
我发现只需符号链接.vimrc
->.config/vimrc
并称之为好就更容易了。
答案2
自从7.3.1178~/.vim/vimrc
如果~/.vimrc
没有找到,vim 将会进行搜索。
$ cat "$XDG_CONFIG_HOME"/vim/vimrc
set runtimepath^=$XDG_CONFIG_HOME/vim
set runtimepath+=$XDG_DATA_HOME/vim
set runtimepath+=$XDG_CONFIG_HOME/vim/after
set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim
set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after
let g:netrw_home = $XDG_DATA_HOME."/vim"
call mkdir($XDG_DATA_HOME."/vim/spell", 'p')
set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p')
set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p')
set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p')
set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p')
if !has('nvim') | set viminfofile=$XDG_STATE_HOME/vim/viminfo | endif
$ cat ~/.profile
export GVIMINIT='let $MYGVIMRC="$XDG_CONFIG_HOME/vim/gvimrc" | source $MYGVIMRC'
export VIMINIT='let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc" | source $MYVIMRC'
[G]VIMINIT 环境变量也会影响 Neovim。如果需要对 Vim 和 Neovim 进行单独配置,则以下将是更好的选择:
export GVIMINIT='let $MYGVIMRC = !has("nvim") ? "$XDG_CONFIG_HOME/vim/gvimrc" : "$XDG_CONFIG_HOME/nvim/init.gvim" | so $MYGVIMRC'
export VIMINIT='let $MYVIMRC = !has("nvim") ? "$XDG_CONFIG_HOME/vim/vimrc" : "$XDG_CONFIG_HOME/nvim/init.vim" | so $MYVIMRC'
链接:
有关更多 XDG 目录支持,请参阅https://wiki.archlinux.org/title/XDG_Base_Directory