Chuyển đổi cấu hình bằng cách thay thế thư mục Symlink
Tôi có thiết lập sau:
❯ tree -L 2 ~/.vim-configs
~/.vim-configs
├── nathanl
│ ├── .git
│ ├── gvimrc
│ ├── pack
│ └── vimrc
├── ryanb
│ ├── autoload
│ ├── ...
│ └── vimrc
└── minimal
├── autoload
├── cache
├── doc
├── plugin
└── vimrc
❯ ls -l ~/.vim
lrwxr-xr-x 1 hotschke staff 42 Apr 3 16:35 .vim -> /Users/hotschke/.vim-configs/minimal
Nếu bạn muốn thay đổi thành một cấu hình khác, bạn chỉ cần thực hiện
❯ ln -snf ~/.vim-configs/configX ~/.vim
Tùy chọn: chức năng shell với tab hoàn tất để chuyển cấu hình
Nếu bạn có tham vọng, bạn có thể viết một hàm shell tối thiểu với tự động hoàn thành để tạo ra siêu tiện ích này. Ví dụ: nếu bạn sử dụng zsh, bạn có thể sử dụng
# Swim - Switch Vim Configs
compdef '_path_files -/ -W ~/.vim-configs' swim
function swim {
if [ $# -eq 0 ]
then
zmodload zsh/stat
active=$(stat +link "$HOME/.vim")
echo "Swimming with ${${active}:t}"
echo "$HOME/.vim -> $active"
zmodload -u zsh/stat
else
echo "Swimming with $1"
ln -snfv ~/.vim-configs/$1 ~/.vim
fi
}
Nó đã cung cấp hoàn thành tab và hoạt động ở mọi nơi trong hệ thống tệp của bạn:
❯ pwd
<somewhere in your filesystem not necessarily $HOME or $HOME/.vim>
❯ swim <Tab>
-- directory --
minimal/ nathanl/ ryanb/
❯ swim minimal
Swimming with minimal
/Users/hotschke/.vim -> /Users/hotschke/.vim-configs/minimal
❯ swim
Swimming with minimal
/Users/hotschke/.vim -> /Users/hotschke/.vim-configs/minimal
(tên hàm bị đánh cắp từ https://github.com/dawsbot/swim )