Chuyển đổi giữa hai cấu hình vim khác nhau?


9

Tôi đã có một thư mục .vimrc và .vim Tôi đã điều chỉnh được một lúc, nhưng trên máy của tôi ở một công việc mới, tôi vừa cài đặt các dotfiles của ryanb (chứa các tệp cấu hình cho vim, git và hơn thế nữa). Có những thứ tôi thích trong mỗi cấu hình, vì vậy cuối cùng tôi muốn kết hợp chúng thành một cấu hình cá nhân mới. Trong khi đó, tôi muốn có thể chuyển đổi qua lại.

Có một lệnh dễ dàng cho điều này trong vim - "sử dụng thư mục .vimrc và .vim sau" - hoặc sẽ đơn giản hơn để tự trao đổi các tệp khi tôi muốn chuyển đổi?

Câu trả lời:


7

Các -utùy chọn sẽ cho phép bạn chỉ định một tập tin cấu hình khác hơn ~ / vimrc, nhưng không có tùy chọn để chỉ một sự thay thế cho ~ / thư mục .vim. Tuy nhiên, bạn có thể yêu cầu Vim sử dụng một thư mục khác bằng cách sửa đổi tùy chọn 'runtimepath' ('rtp') trong mỗi tệp cấu hình của bạn. Ví dụ: bạn có thể sử dụng lệnh này

let &rtp = substitute(&rtp, '\.vim\>', '.vim1', 'g')

trong một trong các tệp cấu hình của bạn để báo cho Vim sử dụng thư mục ~ / .vim1 thay vì thư mục ~ / .vim.


Tôi đoán tôi có thể sử dụng điều này để giữ mọi thứ trong Dropbox :)
Michael Caron

1
@ Michael Caron - bạn có thể giữ bạn .vimrc.vimbất cứ nơi nào mà bạn thích, miễn là bạn có liên kết tượng trưng trong thư mục nhà của bạn để mọi lúc mọi nơi đặt chúng. Cá nhân, tôi sử dụng thủ thuật này để giữ tất cả các cấu hình của mình trong một .dotfilesthư mục mà tôi có thể đồng bộ hóa với Github.
Nathan Long

3

-u bảo vim sử dụng tệp vimrc thay thế.


Gần đây tôi đã biết rằng vim -u "NONE"mở vanilla vim, không có cấu hình. Điều đó có thể hữu ích nếu bạn có một cấu hình phức tạp và muốn biết liệu một số hành vi có nguồn gốc từ Vim hay không. (Điều này cũng hoạt động với MacVim - Tôi chưa thử Gvim trên Linux.)
Nathan Long

1

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 )


Giải pháp tốt, tôi đề nghị thêm một bí danh cho mỗi cấu hình như thế nào alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim", để bạn có thể thay đổi cấu hình của mình chỉ cần nhập bí danh như thế nào vimbasic.
tấn

1

Trình quản lý plugin Vim Volt

https://github.com/vim-volt/volt

Cài đặt trên macOS: $ brew install volt

Tính năng của hồ sơ cá nhân, lưu lại một tập hợp các plugin, vimrc và gvimrc.

Bạn có thể chuyển đổi kết hợp với một lệnh. Ví dụ: bạn có thể chuyển từ thiết lập phát triển web sang các plugin thiết yếu + vimrc hoặc vanilla vim.

Điều này cũng hữu ích khi tạo cấu hình tối thiểu khi đặt câu hỏi trên mạng stackexchange hoặc các sự cố trên github cho plugin vim / vim.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.