なんか熱そうなので手を出してみた、ってだけです。
設定なんかはとりあえず置いといて、とにかくインストールしてみます。
環境:
Windows8 64bit
参考URL:http://superuser.com/questions/328340/how-to-use-fish-shell-in-cygwin
必要なライブラリを持ってくる
どうやって持ってくるのかはお好みで。apt-cygなりsetup.exeなり。
- libncurses-devel
- libiconv
- libiconv-devel
- autoconf
- gcc
- util-linux
fish-shell持ってくる
stableな2.0.0ではiconvとかsys/sysctl.hとかでごちゃごちゃエラー出たので、仕方なく最新をcloneしてくることにします。
iconvは特に追跡してないですけど、sys/sysctl.hはPR上がってて、mergeもされてます。しかし、結果から鑑みるに2.0.0には含まれてないみたいです。
$ git clone https://github.com/fish-shell/fish-shell.git
あとは普通に
$ autoconf && ./configure
$ make && make install
動かしてみる
$ fish
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
agen@laptop /u/l/s/fish-shell>
おお、動いた!
んですけど...
fishもzshに負けず劣らず補完機能が凄くて(と聞いてて)、さっそくそれを体感しようと適当にいくつかコマンド入力してみました。
$ ls -[TAB]
--all (Show hidden)
--almost-all (Show hidden except . and ..)
...
-x (List entries by lines)
-Z (Display security context so it fits on most displays)
すばら! じゃあ次は
agen@laptop ~> ge[TAB]fish: Unknown command 'x86'
in command substitution
called on standard input,
fish: Unknown command 'x86'
in command substitution
called on standard input,
fish: Unknown command 'R'
in command substitution
called on standard input,
fish: Unknown command 'R'
in command substitution
called on standard input,
fish: Unknown command 'x86'
in command substitution
called on standard input,
fish: Unknown command 'R'
in command substitution
called on standard input,
fish: Unknown command 'x86'
in command substitution
called on standard input,
fish: Unknown command 'R'
in command substitution
called on standard input,
fish: Unknown command 'x86'
in command substitution
called on standard input,
fish: Unknown command 'x86'
in command substitution
called on standard input,
fish: Unknown command 'x86'
in command substitution
called on standard input,
agen@laptop ~> ge
gem (File, 582B) gemlock.bat (Executable, 63B)
gem.bat (Unknown, 157B) gemri (Executable, 91B)
gem_mirror (Executable, 104B) gemri.bat (Executable, 55B)
gem_mirror.bat (Executable, 68B) gemwhich (Executable, 101B)
gem_server (Executable, 104B) gemwhich.bat (Executable, 65B)
gem_server.bat (Executable, 68B) getconf.exe (Executable, 23kB)
gemhelp.bat (Executable, 35B) getfacl.exe (Executable, 11kB)
gemlock (Executable, 99B) getopt.exe (Executable, 12kB)
!?
概ね正常に動いてるっぽいんですけど、[TAB]押してコマンドの補完をかけようとすると上記のエラーが出ます。
推測ですけど、PATHに /cygdrive/c/Program Files (x86)/...
みたいなのが混ざってるからかなー、とかとか。
<追記>
issueを確認すると、カッコが含まれてるのがまずい? ようです。
refs: https://github.com/fish-shell/fish-shell/issues/952