.Vimrc tạm thời


8

Có cách nào để đọc một .vimrctệp chỉ cho một phiên ssh không? Đó là, khi tôi đăng nhập tôi thực hiện một số thao tác để vim sử dụng nói /tmp/myvimrccho đến khi tôi đăng xuất?

Tôi không muốn ghi đè vĩnh viễn .vimrc hiện tại, tôi chỉ cần sử dụng một bộ cài đặt khác trong khoảng thời gian đăng nhập mỗi lần.

Câu trả lời:


9

Giả sử bạn có bộ cài đặt khác này trong /tmp/myvimrc. Nếu cách đọc của tôi man vimlà chính xác, bạn có thể bắt đầu vim với bộ cài đặt này bằng cách sử dụng như sau:

$ vim -u /tmp/myvimrc

Vì vậy, để làm cho điều này trở thành một tùy chọn cho phần còn lại của phiên, tôi sẽ tạo một hàm đặt cái này làm bí danh cho vim. Vì vậy, trong bashtôi sẽ đặt một cái gì đó như thế này trong .bashrctập tin của tôi :

function vimswitch {
    alias vim='vim -u /tmp/myvimrc'
}

Sau đó, khi tôi muốn cài đặt vim mới của mình, tôi sẽ chạy:

$ vimswitch

Lưu ý rằng tôi sẽ không lưu trữ myvimrc /tmpvì điều này có thể dễ dàng bị xóa khi khởi động lại. Nếu bạn đang sử dụng một shell khác ngoài bashđiều này vẫn có thể, nhưng cú pháp có thể hơi khác nhau.


1
đẹp! Đó là những gì tôi gọi là đi cả 9 thước.
Robert Gowland

9

Bạn có thể sử dụng biến môi trường VIMINIT để ghi đè việc sử dụng thông thường .vimrctrong khi vẫn giữ các phần khác của quy trình khởi tạo. VIMINIT phải được đặt thành một hoặc nhiều lệnh ex- style (các lệnh của dấu hai chấm, sử dụng pipe ( |) để tách nhiều lệnh), không chỉ đường dẫn đến tệp khởi tạo khác.

VIMINIT='so /tmp/myvimrc'; export VIMINIT

vim whatever # uses /tmp/myvimrc, not ~/.vimrc

Sự khác biệt chính từ việc sử dụng -ulà VIMINIT vẫn sẽ cho phép các phần khác của quá trình khởi tạo được sử dụng (ví dụ: hệ thống vimrc, evim.vim(nếu có thể), et cetera).


2
Để tự động thiết lập VIMINITbiến trong khi đăng nhập qua ssh, bạn có thể sử dụng tệp ~/.ssh/environment. Tệp này chỉ có thể được sử dụng để đặt các biến môi trường, vì vậy chỉ mục bạn nên thêm là : VIMINIT='so /tmp/myvimrc'. Tệp này chỉ được xử lý khi tùy chọn cấu hình sshd PermitUserEnvironmentđược đặt thành yes, vì vậy bạn nên tự kiểm tra nếu nó hoạt động cho bạn hoặc hỏi quản trị viên của bạn nếu nó được bật.
pbm

4

Khi bạn đăng nhập thông qua ssh, ssh đặt biến $SSH_CONNECTION. Bạn .bashrccó thể kiểm tra var này và nếu nó được đặt bí danh mà bạn muốn:

if [ -n "$SSH_CONNECTION" ]
then
        alias vim='vim -u /tmp/myvimrc'
fi

+1 cho mẹo SSH_CONNECTION
anishsane
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.