summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2016-11-26 11:41:57 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2016-11-26 11:41:57 +0900
commitdffef3d9f33b1de54944493c386e4891624a2a4b (patch)
treeec1261002ce6e4fdab587cc407dc19126ce42ae6
parentde1c6b87272581eec4bfd39771e573c2bb772b60 (diff)
Update build instructions for ncurses 6 and tcell
Close #357 Close #738
-rw-r--r--src/README.md43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/README.md b/src/README.md
index e8b8debc..9f7a5588 100644
--- a/src/README.md
+++ b/src/README.md
@@ -61,6 +61,45 @@ make install
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
----
@@ -88,6 +127,8 @@ Third-party libraries used
- Licensed under [MIT](http://mattn.mit-license.org)
- [mattn/go-isatty](https://github.com/mattn/go-isatty)
- 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
-------
@@ -99,4 +140,4 @@ License
[gil]: http://en.wikipedia.org/wiki/Global_Interpreter_Lock
[ncurses]: https://www.gnu.org/software/ncurses/
[req]: http://golang.org/doc/install
-[termbox]: https://github.com/nsf/termbox-go
+[tcell]: https://github.com/gdamore/tcell