Cách vô hiệu hóa một phần tự động của zsh


36

Chức năng tự động sửa lỗi của zsh rất hữu ích cho tôi nhưng không phải lúc nào nó cũng cho kết quả đúng.

~$ sudo vim somefile
zsh: correct 'vim' to '.vim' [nyae]? 

Tuy nhiên, điều tôi muốn là một cái gì đó giống như một tùy chọn không bao giờ có thể dừng nó để sửa các lệnh như thế mãi mãi.

Tôi có thể làm cái này như thế nào?

Câu trả lời:


53

Bạn có thể thông báo cho zsh rằng nó không nên tự động sửa trên các lệnh cụ thể bằng cách đặt bí danh cho chúng với tiền tố 'noc chính xác' trong .zshrc của bạn (ví dụ ở đây: http://dzen.geekmode.org/wiki/wiki.cgi/-main/ZshConfiguration ) :

alias vim='nocorrect vim' 

Ngoài ra - nếu quy trình danh sách trắng này trở nên quá bực bội - bạn có thể tắt hoàn toàn tự động sửa lỗi với phần sau trong .zshrc của mình.

Đối với các phiên bản mới hơn của zsh sử dụng:

 unsetopt correct

cho các phiên bản cũ hơn của zsh sử dụng:

 unsetopt correct-all

Sửa đổi để thêm: đây là một cuộc thảo luận trước đây về chủ đề này - Ngoại lệ đối với tính năng chính xác của zsh?


1
Mặc dù điều này hoạt động khi lệnh vim bắt đầu, nhưng không hoạt động đối với các lệnh như bundle exec cucumber <some_specific_feature> && bundle exec rspec <some_specific_spec>. Tôi đã thêm một bí danh cho rspec. Bất cứ lời khuyên?
Martin Foot

@MartinFoot: nếu bạn sử dụng oh-my-zsh, plugin bundler có thể giúp bạn: coderwall.com/p/weixga
brafales

1
Trong các phiên bản mới được unsetopt correct_allđổi thànhunsetopt correct
chống độc

@antitoxic: Tôi muốn tra cứu "phiên bản mới" về mặt số phiên bản có nghĩa là gì, nhưng ngay cả trong kiểm tra git ngày nay (zsh 5.0.2 + 31433), zshoptionstrang manpage cho CORRECT_ALL: Cố gắng sửa lỗi chính tả của tất cả các đối số trong một dòng . Hơn nữa, cả hai mục nhập cho CORRECTCORRECT_ALLkhông thay đổi ít nhất kể từ năm 2008. Vì vậy, tôi đang thiếu quan điểm của bạn; bạn có thể vui lòng giải thích những gì bạn dẫn đến tuyên bố của bạn?!
mpy

Tôi muốn thêm: vấn đề thứ tự tải! Hãy chắc chắn rằng bạn thêm unsetopt sau khi tìm nguồn cung cấp oh-my-zsh ... Đã lãng phí rất nhiều thời gian của tôi.
oma

22

Tôi nghĩ rằng tôi đã tìm thấy một câu trả lời tốt hơn cho điều này.

Tôi không chắc chắn về các phiên bản và không có gì, nhưng có vẻ như nó correct_allđược cho là để sửa các lệnh đối số, trong khi correctchỉ sửa các lệnh, do đó loại bỏ hành vi gây phiền nhiễu này.

Đây là những gì tôi có trong tập tin cấu hình của mình

unsetopt correct_all  
setopt correct

Đây là câu trả lời thực tế. correct-alldường như không phải là một lựa chọn thực sự trong bất kỳ tài liệu nào tôi có thể tìm thấy, cũng như trong Real Life. Đó là correct_all. Cảm ơn!
Jamey

Tôi đã thiết lập chính xác từ zsh.sourceforge.net/Intro/intro_16.html
zzapper

Bạn là người hùng của tôi!
Martin K

Nếu bạn sử dụng oh-my-zsh, đảm bảo bạn đặt hai dòng sau source $ZSH/oh-my-zsh.shnếu không nó không hoạt động. Có vẻ như oh-my-zsh sẽ đặt lại tùy chọn đúng_all.
Matt

0

Tôi gặp vấn đề khi sử dụng rspecqua zeusvà tôi muốn giữ cài đặt tự động sửa vì chúng dường như hoạt động cho mọi thứ khác ngoại trừ rspec , vì vậy tôi chưa bao giờ thử bất kỳ đề xuất nào khác ở trên.

Những gì tôi phải làm là nocorrectchính zeus:

bí danh zeus = 'không đúng zeus'


0

Tôi đã có thể vô hiệu hóa tự động bằng cách sử dụng

ENABLE_CORRECTION="false"

Tôi đang sử dụng zsh phiên bản 5.7.1


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.