2012-07-10 37 views
10

Cấu hình đầu cuối vim của tôi không tải ~/.zshrc. Zsh là shell đăng nhập môi trường. Cấu hình thích hợp cho tình huống này là gì?thiết bị đầu cuối vim không tải .zshrc

Dưới đây là một số biện pháp tôi đã thực hiện và kể từ khi loại bỏ:

set shell=zsh
(sử dụng zsh như vỏ nhưng không nguồn rc)

set shellcmdflag=-ci
(tất cả các ngõ ra lơ lửng)

cat ~/.zshenv
$ source ~/.zshrc
(nhiều lỗi khi mở vim)

Trả lời

8

Từ hướng dẫn:

Commands are first read from /etc/zshenv; this cannot be overridden. 

[...] 

Commands are then read from $ZDOTDIR/.zshenv. If the shell is a 
login shell, commands are read from /etc/zprofile and then 
$ZDOTDIR/.zprofile. Then, if the shell is interactive, 
commands are read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, 
if the shell is a login shell, /etc/zlogin and $ZDOTDIR/.zlogin are 
read. 

Từ những gì tôi hiểu,

set shell=zsh\ -i 

nên làm việc.

+3

là lệnh thứ hai trong 'set shellcmdflag = -ci'. khi tôi thử điều đó, tất cả đầu ra bị treo. –

+0

'-ci' hoặc' -i' là các cờ chính xác. Bạn có nghĩa là vim bị đình chỉ và bạn đang ở dấu nhắc của trình bao? Đó là hành vi mong đợi và bình thường của Vim trong một thiết bị đầu cuối. Bạn sẽ không thể thay đổi nó. Trong GVim/MacVim, làm ':! 'mở rộng dòng lệnh thành một loại thiết bị đầu cuối câm để bạn đọc đầu ra của' '. Nếu đó là hành vi của bạn sau khi bạn sẽ phải chuyển sang GVim/MacVim. – romainl

+8

Với cờ 'ci' hoặc' c', các lệnh kết thúc bằng một cái gì đó giống như '21195 bị treo (tty output) vim' và tôi bị bỏ lại ở dấu nhắc shell zsh. Sau đó tôi phải gõ 'fg' để có kết quả mong đợi. –

6

Câu trả lời được chấp nhận không hoạt động như mong đợi. Giải pháp thực tế nên đặt bí danh và nội dung ~/.zshrc khác vào ~/.zshenv. Điều duy nhất cần thiết trong ~/.vimrcset shell=zsh mà không có bất kỳ cờ nào.

+0

mục nhập thủ công cung cấp thông tin chi tiết bạn cần để giải quyết vấn đề. vấn đề của tôi liên quan đến thứ tự đọc lệnh. không nơi nào là bí danh được đề cập như là một vấn đề. –

+2

Một chút mượt mà hơn. Thêm liên kết tượng trưng 'ln -s ~/.zshrc ~/.zshenv' –

0

Tôi đã tìm thấy giải pháp hữu ích. Như điều duy nhất tôi thực sự cần là tất cả các bí danh của tôi, tôi đã thêm một chức năng để tập ~/.zshrc tôi:

function zshalias() 
{ 
    grep "^alias" ~/.zshrc > ~/.zshenv 
} 

Sau đó thực hiện source ~/.zshrc && zshalias.

Trong vimrc của bạn, bạn chỉ cần:

shell=zsh 

Tất cả mọi thứ sau đó hoạt động hoàn hảo với không có đầu ra tty lơ lửng!

Các vấn đề liên quan