doomemacs/modules/tools/vterm
Henrik Lissner 2dc52bc9be
💥 Replace exec-path-from-shell w/ 'bin/doom env'
IMPORTANT: This is a breaking update for Mac users, as your shell
environment will no longer be inherited correctly (with the removal of
exec-path-from-shell). The quick fix is: 'bin/doom env refresh'. Also,
the set-env! autodef now does nothing (and is deprecated), be sure to
remove calls to it in your config.

Smaller changes:
+ This update also adds --no-* switches to doom quickstart
+ Includes general improvements to the documentation of several bin/doom
  commands.
+ Moves doom/reload* commands to core/autoload/config.el
+ doom/reload-project has been removed (it didn't actually do anything)

The breaking change:
This update adds an "envvar file" to Doom Emacs. This file is generated
by `doom env refresh`, populated with variables scraped from your shell
environment (from both non-interactive and interactive sessions). This
file is then (inexpensively) loaded at startup, if it exists.

+ The file is manually generated with `doom env refresh`.
+ It can be regenerated automatically whenever `doom refresh` is run by
  running `doom env enable` (`doom env clear` will reverse this and
  delete the env file).
+ `doom quickstart` will ask if you want to auto-generate this envvar
  file. You won't need it if you're confident Emacs will always be
  started from the correct environment, however.
+ Your env file can be reloaded from a running Emacs session with `M-x
  doom/reload-env`. Note: this won't work if the Emacs session you're
  running it in doesn't have a correct SHELL set. i.e. don't use this to
  create your first env file!

The idea isn't mine -- it's borrowed from Spacemacs -- and was
introduced to me in #1053 by @yurimx. I was impressed with it. Prior to
this, I was unhappy with exec-path-from-shell (no hate to the dev, I
understand its necessity), and 'doom patch-macos' wasn't ideal for mac
users (needed to be reapplied every time you update Emacs). What's more,
many users (even Linux users) had to install exec-path-from-shell
anyway.

This solution suffers from none of their shortcomings. More reliable
than patch-macos, more performant and complete than
exec-path-from-shell, and easily handled by bin/doom.
2019-03-28 01:56:09 -04:00
..
autoload.el tools/vterm: minor refactor 2019-03-13 20:41:48 -04:00
config.el 💥 Replace exec-path-from-shell w/ 'bin/doom env' 2019-03-28 01:56:09 -04:00
doctor.el tools/vterm: minor refactor 2019-03-13 20:41:48 -04:00
packages.el Include all files with vterm package 2019-02-18 18:49:02 -05:00
readme.org More specific about "use vterm" 2019-02-22 00:58:31 +08:00

tools/vterm

Description

An emacs-libvterm module.

Prerequisites

Emacs requirement

You have to compile emacs with --with-modules option.

Check the system-configuration-options variable to see if your emacs has this option.

  • On Archlinux or Manjaro, if you install emacs with pacman, this option is enabled.
  • On macOS:

    • If you use Emacs For Mac OS X, this option is enabled.
    • If you use emacs-plus, this option is enabled by default.
    • If you use emacs-mac, this options is not enabled by default. You may have to reinstall emacs with the option:

      brew install emacs-mac --with-modules

System requirement

You need to have libvterm installed in your system.

On Ubuntu or Debian:

sudo apt install libvterm-dev

On ArchLinux or Manjaro:

sudo pacman -S libvterm

On macOS:

brew install libvterm

Module requirement

You have to compile and install the requied module vterm-module.so.

In order to compile it you need to have:

  • Compilation tools. This include make, cmake and a c compiler such as gcc.
  • Internet connection, because cmake will automatically download some requied libraries from the internet.

There are several ways to install the module:

  1. You can use M-x vterm-module-compile to let emacs automatically compile and install the module. WARNING: Emacs will hang during the compilation. It may take a while.
  2. A fully byte-compile will cause emacs to automatically compile and install the module if it cannot find an executable vterm-module.so file.
  3. You can compile and install the module yourself. Go to the vterm installation directory, which is usually ~/.emacs.d/.local/packages/elpa/vterm-<version>, and run the following:

    mkdir -p build
    cd build
    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
    make
  4. You can also compile the module at other place, and install the compiled vterm-module.so file to your vterm installation folder, which is usually ~/.emacs.d/.local/packages/elpa/vterm-<version>/. Also make sure the module file is executable.