如何将所有点文件移动到自定义目录?

如何将所有点文件移动到自定义目录?

我是 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

相关内容