Update build instructions for ncurses 6 and tcell

Close #357
Close #738
This commit is contained in:
Junegunn Choi 2016-11-26 11:41:57 +09:00
parent de1c6b8727
commit dffef3d9f3
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627

View File

@ -61,6 +61,45 @@ make install
make linux make linux
``` ```
### With ncurses 6
The official binaries of fzf are built with ncurses 5 because it's widely
supported by different platforms. However ncurses 5 is old and has a number of
limitations.
1. Does not support more than 256 color pairs (See [357][357])
2. Does not support italics
3. Does not support 24-bit color
[357]: https://github.com/junegunn/fzf/issues/357
But you can manually build fzf with ncurses 6 to overcome some of these
limitations. ncurses 6 supports up to 32767 color pairs (1), and supports
italics (2). To build fzf with ncurses 6, you have to install it first. On
macOS, you can use Homebrew to install it.
```sh
brew install homebrew/dupes/ncurses
LDFLAGS="-L/usr/local/opt/ncurses/lib" make install
```
### With tcell
[tcell][tcell] is a portable alternative to ncurses and we currently use it to
build Windows binaries. tcell has many benefits but most importantly, it
supports 24-bit colors. To build fzf with tcell:
```sh
TAGS=tcell make install
```
However, note that tcell has its own issues.
- Poor rendering performance compared to ncurses
- Does not support bracketed-paste mode
- Does not support italics unlike ncurses 6
- Some wide characters are not correctly displayed
Test Test
---- ----
@ -88,6 +127,8 @@ Third-party libraries used
- Licensed under [MIT](http://mattn.mit-license.org) - Licensed under [MIT](http://mattn.mit-license.org)
- [mattn/go-isatty](https://github.com/mattn/go-isatty) - [mattn/go-isatty](https://github.com/mattn/go-isatty)
- Licensed under [MIT](http://mattn.mit-license.org) - Licensed under [MIT](http://mattn.mit-license.org)
- [tcell](https://github.com/gdamore/tcell)
- Licensed under [Apache License 2.0](https://github.com/gdamore/tcell/blob/master/LICENSE)
License License
------- -------
@ -99,4 +140,4 @@ License
[gil]: http://en.wikipedia.org/wiki/Global_Interpreter_Lock [gil]: http://en.wikipedia.org/wiki/Global_Interpreter_Lock
[ncurses]: https://www.gnu.org/software/ncurses/ [ncurses]: https://www.gnu.org/software/ncurses/
[req]: http://golang.org/doc/install [req]: http://golang.org/doc/install
[termbox]: https://github.com/nsf/termbox-go [tcell]: https://github.com/gdamore/tcell