mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 08:24:40 +01:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
de50a09a6c
7 changed files with 60 additions and 39 deletions
|
@ -201,7 +201,7 @@ The problem might be:
|
||||||
- Your locale is not set to utf-8, to check this you can set the content of the
|
- Your locale is not set to utf-8, to check this you can set the content of the
|
||||||
environment variable ``LC_TYPE``
|
environment variable ``LC_TYPE``
|
||||||
- Your locale is correctly set but **after** xonsh started. This is typically
|
- Your locale is correctly set but **after** xonsh started. This is typically
|
||||||
the case if you set your ``LC_TYPE`` inside your ``.xonshrc`` and xonsh is
|
the case if you set your ``LC_TYPE`` inside your `xonshrc <xonshrc.rst>`_ and xonsh is
|
||||||
your default/login shell. To fix this you should see the documentation of your
|
your default/login shell. To fix this you should see the documentation of your
|
||||||
operating system to know how to correctly setup environment variables before
|
operating system to know how to correctly setup environment variables before
|
||||||
the shell start (``~/.pam_environment`` for example)
|
the shell start (``~/.pam_environment`` for example)
|
||||||
|
|
|
@ -84,7 +84,7 @@ or highlight syntax or set process title, respectively.
|
||||||
If it does not find ``prompt-toolkit`` package, it will
|
If it does not find ``prompt-toolkit`` package, it will
|
||||||
use the Python ``readline`` module (which reads configuration file ``.inputrc`` in a manner compatible with ``GNU readline``).
|
use the Python ``readline`` module (which reads configuration file ``.inputrc`` in a manner compatible with ``GNU readline``).
|
||||||
To ensure xonsh uses ``readline`` even if ``prompt-toolkit`` is installed, configure this in your
|
To ensure xonsh uses ``readline`` even if ``prompt-toolkit`` is installed, configure this in your
|
||||||
``.xonshrc`` file:
|
`xonshrc <xonshrc.rst>`_ (e.g. ``~/.xonshrc``) file:
|
||||||
|
|
||||||
.. code-block:: xonshcon
|
.. code-block:: xonshcon
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,36 @@ lines to your ``~/.bashrc file``:
|
||||||
unset module
|
unset module
|
||||||
unset scl
|
unset scl
|
||||||
|
|
||||||
|
Use the Nix Package manager with Xonsh
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
To users of the `Nix Package Manager <https://www.nixos.org/>`_ these few lines might be life-savers:
|
||||||
|
|
||||||
|
.. code-block:: xonshcon
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
if os.path.exists(f"{$HOME}/.nix-profile") and not __xonsh__.env.get("NIX_PATH"):
|
||||||
|
$NIX_REMOTE="daemon"
|
||||||
|
$NIX_USER_PROFILE_DIR="/nix/var/nix/profiles/per-user/" + $USER
|
||||||
|
$NIX_PROFILES="/nix/var/nix/profiles/default " + $HOME + "/.nix-profile"
|
||||||
|
$NIX_SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"
|
||||||
|
$NIX_PATH="nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs:/nix/var/nix/profiles/per-user/root/channels"
|
||||||
|
$PATH += [f"{$HOME}/.nix-profile/bin", "/nix/var/nix/profiles/default/bin"]
|
||||||
|
|
||||||
|
Btw. a hacky solution to install xontribs that do not yet ship with ``nixpkgs`` is:
|
||||||
|
|
||||||
|
.. code-block:: xonshcon
|
||||||
|
|
||||||
|
for p in map(lambda s: str(s.resolve()), p"~/.local/lib/".glob("python*/site-packages")):
|
||||||
|
if p not in sys.path:
|
||||||
|
sys.path.append(p)
|
||||||
|
|
||||||
|
$PYTHONPATH = "$USER/.local/lib/python3.7/site-packages"
|
||||||
|
|
||||||
|
python -m ensurepip --user
|
||||||
|
xonsh
|
||||||
|
python -m pip install --user -U pip xontrib-z xonsh-direnv
|
||||||
|
|
||||||
|
Just run the last three lines, do not put them in your `xonshrc`!
|
||||||
|
|
||||||
MacOS, OSX
|
MacOS, OSX
|
||||||
----------
|
----------
|
||||||
|
@ -237,7 +267,7 @@ typing and avoid the ambiguity altogether:
|
||||||
|
|
||||||
>>> aliases['d'] = ['cmd', '/c', 'dir']
|
>>> aliases['d'] = ['cmd', '/c', 'dir']
|
||||||
|
|
||||||
You can add aliases to your ``~/.xonshrc`` to have it always
|
You can add aliases to your `xonshrc <xonshrc.rst>`_ to have it always
|
||||||
available when xonsh starts.
|
available when xonsh starts.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ content above into it.
|
||||||
|
|
||||||
Now we need to tell xonsh to use it as the history backend. To do this
|
Now we need to tell xonsh to use it as the history backend. To do this
|
||||||
we need xonsh to be able to find our file and this ``CouchDBHistory`` class.
|
we need xonsh to be able to find our file and this ``CouchDBHistory`` class.
|
||||||
Putting the following code into ``~/.xonshrc`` file can achieve this.
|
Putting the following code into `xonshrc <xonshrc.rst>`_ file can achieve this.
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
|
|
|
@ -104,12 +104,11 @@ create the layout for your xontrib package.
|
||||||
|
|
||||||
Loading Xontribs
|
Loading Xontribs
|
||||||
================
|
================
|
||||||
Xontribs may be loaded in a few different ways: from the config file
|
Xontribs may be loaded in a few different ways: from the `xonshrc <xonshrc.rst>`_ file
|
||||||
(e.g. ``~/.config/xonsh/rc.xsh``), dynamically at runtime with
|
(e.g. ``~/.xonshrc``), dynamically at runtime with the ``xontrib`` command, or its Python API.
|
||||||
the ``xontrib`` command, or its Python API.
|
|
||||||
|
|
||||||
Extensions are loaded via the ``xontrib load`` command.
|
Extensions are loaded via the ``xontrib load`` command.
|
||||||
This command may be run from anywhere in a xonshrc file or at any point
|
This command may be run from anywhere in a `xonshrc <xonshrc.rst>`_ file or at any point
|
||||||
after xonsh has started up.
|
after xonsh has started up.
|
||||||
|
|
||||||
.. code-block:: xonsh
|
.. code-block:: xonsh
|
||||||
|
|
|
@ -249,34 +249,3 @@ For a compact shell prompts, some people prefer a very condensed time format. Bu
|
||||||
get_shelldate.fulldate = 0
|
get_shelldate.fulldate = 0
|
||||||
|
|
||||||
$PROMPT_FIELDS['shelldate'] = get_shelldate
|
$PROMPT_FIELDS['shelldate'] = get_shelldate
|
||||||
|
|
||||||
Use the Nix Package manager with Xonsh
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
To users of the `Nix Package Manager <https://www.nixos.org/>`_ these few lines might be life-savers:
|
|
||||||
|
|
||||||
.. code-block:: xonshcon
|
|
||||||
|
|
||||||
import os.path
|
|
||||||
if os.path.exists(f"{$HOME}/.nix-profile") and not __xonsh__.env.get("NIX_PATH"):
|
|
||||||
$NIX_REMOTE="daemon"
|
|
||||||
$NIX_USER_PROFILE_DIR="/nix/var/nix/profiles/per-user/" + $USER
|
|
||||||
$NIX_PROFILES="/nix/var/nix/profiles/default " + $HOME + "/.nix-profile"
|
|
||||||
$NIX_SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"
|
|
||||||
$NIX_PATH="nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs:/nix/var/nix/profiles/per-user/root/channels"
|
|
||||||
$PATH += [f"{$HOME}/.nix-profile/bin", "/nix/var/nix/profiles/default/bin"]
|
|
||||||
|
|
||||||
Btw. a hacky solution to install xontribs that do not yet ship with ``nixpkgs`` is:
|
|
||||||
|
|
||||||
.. code-block:: xonshcon
|
|
||||||
|
|
||||||
for p in map(lambda s: str(s.resolve()), p"~/.local/lib/".glob("python*/site-packages")):
|
|
||||||
if p not in sys.path:
|
|
||||||
sys.path.append(p)
|
|
||||||
|
|
||||||
$PYTHONPATH = "$USER/.local/lib/python3.7/site-packages"
|
|
||||||
|
|
||||||
python -m ensurepip --user
|
|
||||||
xonsh
|
|
||||||
python -m pip install --user -U pip xontrib-z xonsh-direnv
|
|
||||||
|
|
||||||
Just run the last three lines, do not put them in your `xonshrc`!
|
|
||||||
|
|
23
news/docs_nix.rst
Normal file
23
news/docs_nix.rst
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
**Added:**
|
||||||
|
|
||||||
|
* Added section "Use the Nix Package manager with Xonsh" to "Platform-specific tips and tricks".
|
||||||
|
|
||||||
|
**Changed:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Deprecated:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Removed:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Fixed:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Security:**
|
||||||
|
|
||||||
|
* <news item>
|
Loading…
Add table
Reference in a new issue