例えば、ls しようとして sl って打っちゃった場合、通常はそんなコマンド無いと怒られるか、あるいは人によってはSLが走るかも知れませんが、zsh を使ってるとこんな風に nyae ? って言われることが有る
1 |
zsh: correct 'sl' to 'ls' [nyae]? |
…にゃえ?
なんかよくわからないので調べてみたよ。
nyae?
これは、zsh の correct という機能が有効なときに表示されるようです、というかこれが correct 機能。
correct というのは、「正しい」とか「ふさわしい」とか、そんな感じの意味ですが、これが動詞になると「訂正する」って意味になります。
つまり、correct 機能は、タイポコマンドを修正するかどうかを聞いてきてるわけですね。
さて、それじゃあ、さっきから言っている [nyae] てのはどんな意味なんでしょう?にゃえ?
とりあえず響きは可愛い。
nyae の意味
調べてみたところ、nyaeって言葉があるんじゃなくて、これはそれぞれ、
No / Yes / Abort / Edit の頭文字なんだそう。
それなら「n/y/a/e」とかになる気もするが、まぁそれもそれで微妙か…。
ちなみに何も指定しないでエンターを押すと普通にタイポコマンドがそのまま走るので、デフォルトは No のようだ。
ということは、「N/y/a/e」あるいは「Nyae」なのか?
うーん。見慣れてしまったこともあってかなんかしっくりこないなぁ…。
はい。わたくし nyae に見慣れてしまうほどのタイポ魔神なのです。
さて、それぞれの意味もみてみます。といってもまぁ、だいたいは想像つくと思いますが。
n | No | correct するか?に対して No と答える。 つまり、タイポのママコマンドが走ります。 SL見たいときはこれ。 |
y | Yes | zsh が考える「正しいと思われるコマンド」 (nyae の前に提示されます)に訂正して実行します。 どうもこれをやると、タイポコマンドがただ良いコマンドの エイリアスになるっぽい(後述) |
a | Abort | abour とは中止という意味。 訂正もしないし、実行もしない。Ctrl+C状態 |
e | Edit | 編集。タイポコマンドを打った後、Enterを押す直前に戻ります。 道を間違える直前まで戻ってやり直せるわけです |
nyaeるには?(使い方違います
そんな素敵なにゃえ機能…いや、correct 機能を有効化するには、 .zshrc などに以下を追加します。
1 |
setopt correct |
nyae で y するとSLはもう走らない?
※実はこれ最近全然発生しないので、もしかしたら勝手にエイリアスになるってのはまた別の話かもしれないです。
1 2 |
$ sl zsh: correct 'sl' to 'ls' [nyae]? |
これに「y」と答えると、それ以降、sl と打ってもファイルリストが出るようになった。
一体何が起こったんだ?と思って調べてみたところ…
1 2 |
$ type sl sl is an alias for ls |
なんということでしょう…。sl コマンドが ls のエイリアスになってるではありませんか。
きっとタイポ魔神はまたやらかすから空気読んでエイリアスにしてくれたんですね。
でも、これだともう二度と SL は走らないのでしょうか?
もちろんそんなことはなく、エイリアスを解除すればまたSLの姿を拝むことができます。
エイリアスの削除は以下のように行います。
1 |
$ unalias ${COMMAND} |
なので今回のように sl をエイリアス解除するならば
1 2 3 4 |
$ unalias sl $ sl zsh: correct 'sl' to 'ls' [nyae]? n zsh: command not found: sl |
というわけです。
これでまたSLを見物できますね。やったね!
コメントする