Document everything about shell integration
* eat.texi (Shell Integration): Move to be the first chapter of Part III. Document everything about shell integration. * eat.texi (Directory Tracking): Merge with the node 'Shell Integration'.
This commit is contained in:
parent
b42687f146
commit
e287487b42
1 changed files with 107 additions and 54 deletions
161
eat.texi
161
eat.texi
|
@ -65,13 +65,12 @@ Basic Operations
|
||||||
* Input Modes:: Input modes for various use-cases.
|
* Input Modes:: Input modes for various use-cases.
|
||||||
|
|
||||||
Advanced Customizations
|
Advanced Customizations
|
||||||
|
* Shell Integration:: Getting the most from Eat and your shell.
|
||||||
* Display:: The region where everything is shown.
|
* Display:: The region where everything is shown.
|
||||||
* Scrollback:: Region for things that went out of display.
|
* Scrollback:: Region for things that went out of display.
|
||||||
* Cursor Types:: Cursor can displayed in many forms.
|
* Cursor Types:: Cursor can displayed in many forms.
|
||||||
* Mouse Tracking:: Eat tracks mouse, but this can be changed.
|
* Mouse Tracking:: Eat tracks mouse, but this can be changed.
|
||||||
* Clipboard:: Integrating kill ring with terminal.
|
* Clipboard:: Integrating kill ring with terminal.
|
||||||
* Directory Tracking:: Tracking the working directory of program.
|
|
||||||
* Shell Integration:: Getting the most from Eat and your shell.
|
|
||||||
* Colors:: Eat can show more than sixteen million colors.
|
* Colors:: Eat can show more than sixteen million colors.
|
||||||
* Fonts:: Eat can show up to sixty font different fonts.
|
* Fonts:: Eat can show up to sixty font different fonts.
|
||||||
* Blinking Text:: Annoying blinking texts.
|
* Blinking Text:: Annoying blinking texts.
|
||||||
|
@ -104,7 +103,7 @@ Firstly, it's in Emacs, which means you don't need to leave the
|
||||||
comfort of Emacs to use Emacs.
|
comfort of Emacs to use Emacs.
|
||||||
|
|
||||||
Secondly, it's easy and convenient to use. It is tries to stay out of
|
Secondly, it's easy and convenient to use. It is tries to stay out of
|
||||||
your way, allow you to maximize your productivity.
|
your way, allowing you to maximize your productivity.
|
||||||
|
|
||||||
Finally, special care has been taken while designing the keybindings,
|
Finally, special care has been taken while designing the keybindings,
|
||||||
so that the terminal doesn't conflict with Emacs default keybindings
|
so that the terminal doesn't conflict with Emacs default keybindings
|
||||||
|
@ -327,6 +326,111 @@ command @command{eshell-toggle-direct-send} is remapped to enable
|
||||||
|
|
||||||
@part Part III:@* Advanced Customizations
|
@part Part III:@* Advanced Customizations
|
||||||
|
|
||||||
|
@node Shell Integration
|
||||||
|
@cindex shell integration
|
||||||
|
@cindex integration, shell
|
||||||
|
@chapter Shell Integration
|
||||||
|
|
||||||
|
Eat comes with shell scripts to integrate your favorite shell with
|
||||||
|
Eat. When shell integration is enabled and the script is loaded in
|
||||||
|
your shell, it'll take care of everything and provide many useful
|
||||||
|
features.
|
||||||
|
|
||||||
|
Currently only GNU Bash is supported.
|
||||||
|
|
||||||
|
If you use GNU Bash, put the following in your @samp{.bashrc} file:
|
||||||
|
|
||||||
|
@example
|
||||||
|
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \
|
||||||
|
source "$EAT_SHELL_INTEGRATION_DIR/bash"
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@cindex directory tracking
|
||||||
|
@cindex tracking directory
|
||||||
|
@cindex working directory tracking
|
||||||
|
@cindex tracking working directory
|
||||||
|
@cindex cwd tracking
|
||||||
|
@cindex tracking cwd
|
||||||
|
After you've setup shell integration, the Eat will track the working
|
||||||
|
directory of your shell. That means @command{find-file} will start
|
||||||
|
from your shell's current working directory. This also works in
|
||||||
|
Eshell, but after the program exits, the current working directory is
|
||||||
|
changed back to the directory from where the program was invoked.
|
||||||
|
|
||||||
|
@vindex eat-enable-directory-tracking
|
||||||
|
@defopt eat-enable-directory-tracking
|
||||||
|
This controls directory tracking. When set to non-@code{nil}, Eat
|
||||||
|
tracks the current working directory of programs.
|
||||||
|
@end defopt
|
||||||
|
|
||||||
|
@cindex shell prompt navigation
|
||||||
|
@cindex shell navigation, shell prompt
|
||||||
|
@cindex prompt navigation
|
||||||
|
@cindex navigation, prompt
|
||||||
|
@kindex C-c C-p @r{(``emacs mode''})
|
||||||
|
@kindex C-c C-p @r{(``semi-char mode'')}
|
||||||
|
@findex eat-previous-shell-prompt
|
||||||
|
@kindex C-c C-n @r{(``emacs mode'')}
|
||||||
|
@kindex C-c C-n @r{(``semi-char mode'')}
|
||||||
|
@findex eat-next-shell-prompt
|
||||||
|
You can navigate shell prompts in ``emacs'' and ``semi-char'' mode.
|
||||||
|
@kbd{C-c C-p}, bound to @command{eat-previous-shell-prompt}, goes to
|
||||||
|
the previous shell prompt. @kbd{C-c C-n}, bound to
|
||||||
|
@command{eat-next-shell-prompt}, is the opposite, it goes to the next
|
||||||
|
shell prompt. This doesn't work in Eshell.
|
||||||
|
|
||||||
|
@cindex shell prompt annotation
|
||||||
|
@cindex annotation, shell prompt
|
||||||
|
@cindex annotate, shell prompt
|
||||||
|
@cindex prompt annotation
|
||||||
|
@cindex annotation, prompt
|
||||||
|
@cindex annotate, prompt
|
||||||
|
When shell integration is setup, Eat annotates each shell prompt. Eat
|
||||||
|
puts a mark on the shell prompt indicating the whether the command
|
||||||
|
entered in that prompt is running, exited successfully or exited with
|
||||||
|
non-zero status. This doesn't work in Eshell. You can disable this
|
||||||
|
feature if you want.
|
||||||
|
|
||||||
|
@vindex eat-enable-shell-prompt-annotation
|
||||||
|
@defopt eat-enable-shell-prompt-annotation
|
||||||
|
This controls shell prompt annotation by Eat. When set to
|
||||||
|
non-@code{nil}, Eat annotates shell prompts to indicate the status of
|
||||||
|
the command entered in that prompt.
|
||||||
|
@end defopt
|
||||||
|
|
||||||
|
Eat uses the marginal area
|
||||||
|
(@pxref{Display Margins,,, emacs, GNU Emacs Manual}) on the left side
|
||||||
|
to display the annotation. You also use the right margin.
|
||||||
|
|
||||||
|
@vindex eat-shell-prompt-annotation-position
|
||||||
|
@defopt eat-shell-prompt-annotation-position
|
||||||
|
This controls where the shell prompt annotations are displayed. When
|
||||||
|
set to @code{left-margin} (the default), Eat uses the left margin.
|
||||||
|
When set to @code{right-margin}, Eat uses the right margin.
|
||||||
|
@end defopt
|
||||||
|
|
||||||
|
@vindex eat-shell-prompt-annotation-running-margin-indicator
|
||||||
|
@vindex eat-shell-prompt-annotation-running
|
||||||
|
@vindex eat-shell-prompt-annotation-success-margin-indicator
|
||||||
|
@vindex eat-shell-prompt-annotation-success
|
||||||
|
@vindex eat-shell-prompt-annotation-failure-margin-indicator
|
||||||
|
@vindex eat-shell-prompt-annotation-failure
|
||||||
|
|
||||||
|
Eat uses the strings ``-'', ``0'' and ``X'' respectively to indicate
|
||||||
|
the command is running, the command has succeeded and the command has
|
||||||
|
failed. You can also customize the them. The user option
|
||||||
|
@code{eat-shell-prompt-annotation-running-margin-indicator} and the
|
||||||
|
face @code{eat-shell-prompt-annotation-running} control the indicator
|
||||||
|
used to indicate the command is running. The user option
|
||||||
|
@code{eat-shell-prompt-annotation-success-margin-indicator} and the
|
||||||
|
face @code{eat-shell-prompt-annotation-success} control the indicator
|
||||||
|
used to indicate the command has exited successfully. And finally
|
||||||
|
the user option
|
||||||
|
@code{eat-shell-prompt-annotation-failure-margin-indicator} and the
|
||||||
|
face @code{eat-shell-prompt-annotation-failure} control the indicator
|
||||||
|
used to indicate the command has exited unsuccessfully with non-zero
|
||||||
|
exit status.
|
||||||
|
|
||||||
@node Display
|
@node Display
|
||||||
@cindex display
|
@cindex display
|
||||||
@chapter Display
|
@chapter Display
|
||||||
|
@ -472,57 +576,6 @@ non-@code{nil}, programs can receive the kill ring contents. This is
|
||||||
disabled by default for security reasons.
|
disabled by default for security reasons.
|
||||||
@end defopt
|
@end defopt
|
||||||
|
|
||||||
@node Directory Tracking
|
|
||||||
@cindex directory tracking
|
|
||||||
@cindex tracking directory
|
|
||||||
@cindex working directory tracking
|
|
||||||
@cindex tracking working directory
|
|
||||||
@cindex cwd tracking
|
|
||||||
@cindex tracking cwd
|
|
||||||
@chapter Directory Tracking
|
|
||||||
|
|
||||||
Eat can track the current working directory of the program. This also
|
|
||||||
works in Eshell, but after the program exits, the current working
|
|
||||||
directory is changed back to the directory from where the program was
|
|
||||||
invoked.
|
|
||||||
|
|
||||||
To track, Eat needs the program to send this information. So, to
|
|
||||||
enable directory tracking, you'll need to setup your shell
|
|
||||||
(@pxref{Shell Integration}). You'll need to arrange that your shell
|
|
||||||
sends appropriate escape sequence at each prompt, for example with the
|
|
||||||
command:
|
|
||||||
|
|
||||||
@example
|
|
||||||
printf "\\e]7;file://%s%s\\e\\\\" "$HOSTNAME" "$PWD"
|
|
||||||
@end example
|
|
||||||
|
|
||||||
If you don't want Eat to track your program's working directory, you
|
|
||||||
can set the following to nil:
|
|
||||||
|
|
||||||
@vindex eat-enable-directory-tracking
|
|
||||||
@defopt eat-enable-directory-tracking
|
|
||||||
This controls directory tracking. When set to non-@code{nil}, Eat
|
|
||||||
tracks the current working directory of programs.
|
|
||||||
@end defopt
|
|
||||||
|
|
||||||
@node Shell Integration
|
|
||||||
@cindex shell integration
|
|
||||||
@cindex integration, shell
|
|
||||||
@chapter Shell Integration
|
|
||||||
|
|
||||||
Eat comes with shell scripts to integrate your favorite shell with
|
|
||||||
Eat. You can include the script in your shell configuration file,
|
|
||||||
it'll take care of everything.
|
|
||||||
|
|
||||||
Currently only GNU Bash is supported.
|
|
||||||
|
|
||||||
If you use GNU Bash, put the following in your @samp{.bashrc} file:
|
|
||||||
|
|
||||||
@example
|
|
||||||
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \
|
|
||||||
source "$EAT_SHELL_INTEGRATION_DIR/bash"
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@node Colors
|
@node Colors
|
||||||
@cindex colors
|
@cindex colors
|
||||||
@cindex customizing colors
|
@cindex customizing colors
|
||||||
|
|
Loading…
Add table
Reference in a new issue