doc(ubuntu/emacs): update installation instructions

This commit is contained in:
Floris van Doorn 2017-05-25 18:23:27 -04:00
parent e522343c88
commit d86284da63
3 changed files with 112 additions and 104 deletions

View file

@ -18,13 +18,9 @@ Requirements
- [GMP (GNU multiprecision library)](http://gmplib.org/) - [GMP (GNU multiprecision library)](http://gmplib.org/)
- [MPFR (GNU MPFR Library)](http://www.mpfr.org/) - [MPFR (GNU MPFR Library)](http://www.mpfr.org/)
- [Lua 5.2 or 5.1](http://www.lua.org), or [LuaJIT 2.0](http://luajit.org) - [Lua 5.2 or 5.1](http://www.lua.org), or [LuaJIT 2.0](http://luajit.org)
- (optional) [gperftools](https://code.google.com/p/gperftools/)
- (optional) [Boost](http://www.boost.org) (version >= 1.54), we can
build Lean using boost::thread instead of std::thread. When using
Boost, Lean can modify the thread stack size.
Installing required packages at Installing
-------------------------------- ----------
_Windows_ _Windows_
@ -32,8 +28,8 @@ _Windows_
_Linux_ _Linux_
- [Ubuntu 12.04 or newer](doc/make/ubuntu-12.04.md)
- [Ubuntu 12.04 or newer (detailed)](doc/make/ubuntu-12.04-detailed.md) - [Ubuntu 12.04 or newer (detailed)](doc/make/ubuntu-12.04-detailed.md)
- [Ubuntu 12.04 or newer (brief)](doc/make/ubuntu-12.04.md)
- [Fedora 19](doc/make/fedora-19.md) - [Fedora 19](doc/make/fedora-19.md)
_OS X_ _OS X_

View file

@ -3,12 +3,9 @@ Preparing working environment on Ubuntu 12.04
### Install basic packages ### Install basic packages
sudo apt-get install git sudo apt-get install git libgmp-dev libmpfr-dev emacs -y
sudo apt-get install libgmp-dev
sudo apt-get install libmpfr-dev
sudo add-apt-repository ppa:kalakris/cmake -y sudo add-apt-repository ppa:kalakris/cmake -y
sudo apt-get install cmake sudo apt-get install cmake liblua5.2.0 lua5.2-0 lua5.2-dev -y
sudo apt-get install liblua5.2.0 lua5.2-0 lua5.2-dev
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo update-alternatives --remove-all gcc sudo update-alternatives --remove-all gcc
@ -19,14 +16,10 @@ Preparing working environment on Ubuntu 12.04
### Optional packages ### Optional packages
sudo apt-get install gitg sudo apt-get install gitg ninja-build valgrind doxygen kcachegrind
sudo apt-get install valgrind
sudo apt-get install doxygen
sudo apt-get install kcachegrind
sudo add-apt-repository --yes ppa:boost-latest/ppa sudo add-apt-repository --yes ppa:boost-latest/ppa
sudo apt-get install libboost1.54-dev sudo apt-get install libboost1.54-dev libboost-thread1.54-dev
sudo apt-get install libboost-thread1.54-dev
### Fork Lean on github : https://github.com/leanprover/lean2 ### Fork Lean on github : https://github.com/leanprover/lean2
@ -48,12 +41,20 @@ Preparing working environment on Ubuntu 12.04
cmake -D CMAKE_BUILD_TYPE=Release ../src cmake -D CMAKE_BUILD_TYPE=Release ../src
make make
### Alternatively, build Lean using Boost ### Alternative ways to build
Using Ninja (to speed up build)
cmake -DCMAKE_BUILD_TYPE=RELEASE -G Ninja ../src
ninja
Using Boost (to speed up build)
cd lean2
mkdir -p build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D BOOST=ON ../src cmake -D CMAKE_BUILD_TYPE=Release -D BOOST=ON ../src
make make
Build in debug mode
cmake -DCMAKE_BUILD_TYPE=DEBUG ../src
make
### You need to also set up the [Emacs Mode](../../src/emacs/README.md). ### You need to also set up the [Emacs Mode](../../src/emacs/README.md).

View file

@ -1,63 +1,17 @@
Emacs mode for [lean theorem prover][Lean] Emacs mode for the [Lean 2 theorem prover][Lean2]. ``lean-mode`` requires [Emacs 24][emacs24]
[lean]: https://github.com/leanprover/lean
Requirements
============
``lean-mode`` requires [Emacs 24][emacs24] and the following
packages, which can be installed via <kbd>M-x package-install</kbd>.
- [dash][dash]
- [dash-functional][dash]
- [f][f]
- [s][s]
[emacs24]: http://www.gnu.org/software/emacs
[dash]: https://github.com/magnars/dash.el
[f]: https://github.com/rejeep/f.el
[s]: https://github.com/magnars/s.el
The following packages are optional, but strongly recommended.
- [company][company]
- [flycheck][flycheck]
- [fill-column-indicator][fci]
Both the optional and required packages will be installed for you
automatically the first time you use ``lean-mode``, if you follow the
installation instructions below.
[company]: http://company-mode.github.io/
[flycheck]: http://www.flycheck.org/manual/latest/index.html
[fci]: https://github.com/alpaker/Fill-Column-Indicator
[Lean2]: https://github.com/leanprover/lean2
Installation Installation
============ ============
When Emacs is started, it loads startup information from a special Open your emacs init file. Do this by running Emacs and go to the file using <kbd>C-c C-f</kbd>
initialization file, often called an "init file." The init file can be (control-C, control-F) and then entering ``~/.emacs``. Now paste the following code into this file (assuming you built Lean from source).
found in different places on different systems:
- Emacs will check for a file named ``.emacs`` in your home directory. Note: You paste text in Emacs using <kbd>C-y</kbd> (control-Y). See [this wiki page][emacs-copy-paste]. See [this reference sheet][emacs-ref] for other basic Emacs commands.
- With GNU Emacs, it is common to use ``.emacs.d/init.el`` instead.
- With Aquamacs, it is common to use ``~/Library/Preferences/Aquamacs Emacs/Preferences.el``.
On Windows, there are two additional complications: [emacs-ref]: https://www.emacswiki.org/emacs/EmacsNewbieKeyReference
[emacs-copy-paste]: https://www.emacswiki.org/emacs/CopyAndPaste
- It may be hard to figure out what Emacs considers to be your "home
directory".
- The file explorer may not let you create a file named ``.emacs``,
since it begins with a period.
One solution is to run Emacs itself and create the file using C-c C-f
(control-C, control-F) and then entering ``~/.emacs``. (The tilde
indicates your home directory.) On Windows, you can also name the file
``_emacs``.
Put the following code in your Emacs init file:
```elisp ```elisp
(require 'package) (require 'package)
@ -78,16 +32,7 @@ Put the following code in your Emacs init file:
(package-refresh-contents) (package-refresh-contents)
(setq need-to-refresh nil)) (setq need-to-refresh nil))
(package-install p)))) (package-install p))))
```
Then choose your installation method from the following scenarios, and add the corresponding code to
your init file: (note: you need to change the directory in the following code snippets to the
directory of your clone of the repository).
Case 1: Build Lean from source
-----------------------------
```elisp
;; Set up lean-root path ;; Set up lean-root path
(setq lean-rootdir "~/projects/lean2") ;; <=== YOU NEED TO MODIFY THIS (setq lean-rootdir "~/projects/lean2") ;; <=== YOU NEED TO MODIFY THIS
(setq-local lean-emacs-path (setq-local lean-emacs-path
@ -98,9 +43,14 @@ Case 1: Build Lean from source
(require 'lean-mode) (require 'lean-mode)
``` ```
Case 2: Install Lean via apt-get on Ubuntu or via dpkg on Debian Then modify the directory in `(setq lean-rootdir "~/projects/lean2")` to your Lean folder. Now close Emacs <kbd>C-x C-c</kbd> and open Emacs again.
---------------------------------------------------------------- Emacs will install all required packages now for you.
If you didn't build Lean 2 from source, but installed it, replace `;; Set up lean-root path` and everything below with the following snippets, depending on how you got Lean 2.
Installed Lean 2 via apt-get on Ubuntu or via dpkg on Debian
----------------------------------------------------------------
```elisp ```elisp
;; Set up lean-root path ;; Set up lean-root path
(setq lean-rootdir "/usr") (setq lean-rootdir "/usr")
@ -110,7 +60,7 @@ Case 2: Install Lean via apt-get on Ubuntu or via dpkg on Debian
``` ```
Case 3: Install Lean via homebrew on OS X Installed Lean 2 via homebrew on OS X
----------------------------------------- -----------------------------------------
```elisp ```elisp
@ -126,7 +76,7 @@ location, please run `brew info lean`, and it will tell you where the
lean-mode files are located. With that information, update the lean-mode files are located. With that information, update the
`lean-emacs-path` variable accordingly. `lean-emacs-path` variable accordingly.
Case 4: Install Lean in Windows Installed Lean 2 in Windows
------------------------------- -------------------------------
```elisp ```elisp
;; Set up lean-root path ;; Set up lean-root path
@ -136,30 +86,31 @@ Case 4: Install Lean in Windows
(require 'lean-mode) (require 'lean-mode)
``` ```
Trying It Out Trying It Out
============= =============
If things are working correctly, you should see the word ``Lean`` in the If things are working correctly, you should see the word ``Lean`` in the
Emacs mode line when you open a file with extension `.lean` (for the Emacs mode line (at the bottom of the window) when you open a file with extension `.lean` (for the
standard Lean mode) or `.hlean` (for hott mode). If you type standard Lean mode) or `.hlean` (for hott mode).
```lean
check id
```
the word ``check`` will be underlined, and hovering over it will show
you the type of ``id``. The mode line will show ``FlyC:0/1``, indicating
that there are no errors and one piece of information displayed. Whenever
you type, an asterisk should briefly appear after ``FlyC``, indicating that
your file is being checked.
If you get an error which contains `failed to lock file`, you need to create a `.project` file: If you create a new Lean file, you have to create a `.project` file in that folder:
- open a `.lean` or `.hlean` file - open a `.lean` or `.hlean` file
- go to menu-bar (top of screen) -> Lean -> Create a new project - go to menu-bar (top of screen) -> Lean -> Create a new project
- click open - click open
- it will ask "standard or hott": type which mode you want to use and press enter - it will ask "standard or hott": type which mode you want to use and press enter
- now it has created a project file (which manages imports and so on for files outside the library), and if you go back to your `.lean` or `.hlean` file these error messages will disappear. - Go back to your `.lean` or `.hlean` file (you can close the `.project` file using <kbd>C-x k RET</kbd> (RET is enter)). You might need to close and reopen Emacs for the error messages to disappear.
You can check a file using the shortcut <kbd>C-c C-x</kbd>. There is also on-the-fly checking, if you type in a new file
```lean
print id
```
the word ``print`` will be underlined, and hovering over it will show
you the type of ``id``. The mode line will show ``FlyC:0/1``, indicating
that there are 0 errors and 1 message. Whenever
you type, an asterisk should briefly appear after ``FlyC``, indicating that
your file is being checked.
Some unicode characters might look weird (or make a line very high). See below to fix that.
Key Bindings and Commands Key Bindings and Commands
========================= =========================
@ -190,7 +141,7 @@ To profile Lean performace on the file in the buffer, enter <kbd>M-x lean-execut
Some basic configurations (optional) Some basic configurations (optional)
==================================== ------------------------------------
```lisp ```lisp
(custom-set-variables (custom-set-variables
@ -222,6 +173,12 @@ Some basic configurations (optional)
'(("\\<\\(thread_local\\)\\>" . font-lock-warning-face) '(("\\<\\(thread_local\\)\\>" . font-lock-warning-face)
("\\<\\(constexpr\\)\\>" . font-lock-keyword-face) ("\\<\\(constexpr\\)\\>" . font-lock-keyword-face)
)) ))
(require 'ido)
(ido-mode t)
(setq completion-ignored-extensions
(append '(".ilean" ".olean" ".clean" ".d") completion-ignored-extensions))
``` ```
Known Issues and Possible Solutions Known Issues and Possible Solutions
@ -233,8 +190,11 @@ Unicode
If you experience a problem rendering unicode symbols on emacs, If you experience a problem rendering unicode symbols on emacs,
please download the following fonts and install them on your machine: please download the following fonts and install them on your machine:
- [Dejavu Fonts](https://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2/download)
Alternatively, download:
- [Quivira.ttf](http://www.quivira-font.com/files/Quivira.ttf) - [Quivira.ttf](http://www.quivira-font.com/files/Quivira.ttf)
- [Dejavu Fonts](http://sourceforge.net/projects/dejavu/files/dejavu/2.35/dejavu-fonts-ttf-2.35.tar.bz2)
- [NotoSans](https://github.com/googlei18n/noto-fonts/blob/master/hinted/NotoSans-Regular.ttc?raw=true) - [NotoSans](https://github.com/googlei18n/noto-fonts/blob/master/hinted/NotoSans-Regular.ttc?raw=true)
- [NotoSansSymbols](https://github.com/googlei18n/noto-fonts/blob/master/unhinted/NotoSansSymbols-Regular.ttf?raw=true) - [NotoSansSymbols](https://github.com/googlei18n/noto-fonts/blob/master/unhinted/NotoSansSymbols-Regular.ttf?raw=true)
@ -245,7 +205,7 @@ Then, have the following lines in your emacs setup to use `DejaVu Sans Mono` fon
(set-face-attribute 'default nil :font "DejaVu Sans Mono-11")) (set-face-attribute 'default nil :font "DejaVu Sans Mono-11"))
``` ```
You may also need to install [emacs-unicode-fonts](https://github.com/rolandwalker/unicode-fonts) package. Also install [emacs-unicode-fonts](https://github.com/rolandwalker/unicode-fonts) package.
- Run `M-x package-refresh-contents`, `M-x package-install`, and type `unicode-fonts`. - Run `M-x package-refresh-contents`, `M-x package-install`, and type `unicode-fonts`.
- Add the following lines in your emacs setup: - Add the following lines in your emacs setup:
@ -255,6 +215,57 @@ You may also need to install [emacs-unicode-fonts](https://github.com/rolandwalk
(unicode-fonts-setup) (unicode-fonts-setup)
``` ```
Installing packages manually
----------------------------
If you want to install the packages manually, you can use <kbd>M-x package-install</kbd> to install the following packages:
- [dash][dash]
- [dash-functional][dash]
- [f][f]
- [s][s]
[emacs24]: http://www.gnu.org/software/emacs
[dash]: https://github.com/magnars/dash.el
[f]: https://github.com/rejeep/f.el
[s]: https://github.com/magnars/s.el
The following packages are optional, but strongly recommended.
- [company][company]
- [flycheck][flycheck]
- [fill-column-indicator][fci]
Both the optional and required packages will be installed for you
automatically the first time you use ``lean-mode``, if you follow the
installation instructions below.
[company]: http://company-mode.github.io/
[flycheck]: http://www.flycheck.org/manual/latest/index.html
[fci]: https://github.com/alpaker/Fill-Column-Indicator
Init file
---------
The init file can be found in different places on different systems:
- Emacs will check for a file named ``.emacs`` in your home directory.
- With GNU Emacs, it is common to use ``.emacs.d/init.el`` instead.
- With Aquamacs, it is common to use ``~/Library/Preferences/Aquamacs Emacs/Preferences.el``.
On Windows, there are two additional complications:
- It may be hard to figure out what Emacs considers to be your "home
directory".
- The file explorer may not let you create a file named ``.emacs``,
since it begins with a period.
One solution is to run Emacs itself and create the file using C-c C-f
(control-C, control-F) and then entering ``~/.emacs``. (The tilde
indicates your home directory.) On Windows, you can also name the file
``_emacs``.
Contributions Contributions
============= =============