User: emacs show eval history
Assistant:  InIn Emacs, when you evaluate expressions using commands like `M-:` (`eval-expression`), Emacs keeps a history of the evaluated expressions. There are several ways to view and reuse this eval history:

### 1. Using `M-:` (`eval-expression`) with History Navigation
- Press `M-:` to bring up the minibuffer prompt `Eval:`.
- You can navigate through previous expressions by pressing:
  - `M-p` (Meta + p) to go to the previous evaluated expression.
  - `M-n` (Meta + n) to go to the next evaluated expression.

This lets you browse through past eval expressions in the minibuffer directly.

---

### 2. View Eval History File
Emacs stores the eval-expression history in the variable `eval-expression-history` during the session. By default, it is not saved between sessions unless you customize Emacs to do so.

If you want to keep eval history persistently, you can save it when Emacs exits or use built-in packages like `savehist`.

Add the following to your Emacs config to save `eval-expression-history` automatically:

```elisp
(require 'savehist)
(setq savehist-additional-variables '(eval-expression-history))
(savehist-mode 1)
```

This will save the eval history and reload it next time you start Emacs.

---

### 3. Directly Access Eval History in Emacs Lisp
You can inspect the current eval history by evaluating:

```elisp
(eval-expression-history)
```

or just evaluate:

```elisp
M-: (print eval-expression-history)
```

This prints the list of previously evaluated expressions to the `*Messages*` buffer.

---

### Summary

- Use `M-:` then `M-p` / `M-n` to browse eval history interactively.
- Save eval history persistently with `savehist` and `(setq savehist-additional-variables '(eval-expression-history))`.
- Inspect the variable `eval-expression-history` programmatically.

Let me know if you want to see the history in a buffer or have other display preferences!
User: emacs reset package variables all to default,how ?
Assistant:  InIn Emacs, if you want to **reset package variables back to their default values**, there are a few approaches, depending on what exactly you want:

---

### 1. Reload the Package
The simplest way to reset package variables is to **reload the package**, which usually re-initializes its variables. You can do this with:

```elisp
M-x package-reload RET
```

However, this command requires `package-reload` function, which is available in Emacs 28 and later. Alternatively, you can manually unload and load the package:

```elisp
;; Replace `some-package` with the actual package name
(unload-feature 'some-package t)
(require 'some-package)
```

This restarts the package, which usually resets its variables.

---

### 2. Reset Variables Manually

If you know the specific variables you want to reset, you can simply set them back to their default values using `setq-default` or by assigning their default defined values.

For example:

```elisp
(setq some-package-variable default-value)
```

Or, if you want to reset a customizable variable to its default:

```elisp
(customize-reset 'some-package-variable)
```

You can invoke this interactively with:

```elisp
M-x customize-variable RET some-package-variable RET
```

and press the `Reset` button.

---

### 3. Reset All Package Variables on Emacs Restart

If your variables are set in your config file (`init.el` or `.emacs`), simply removing or commenting those lines and restarting Emacs will reset variables to package defaults.

---

### 4. Programmatic Reset: Use `custom-reset-variables`

Emacs provides a function `custom-reset-variables` that resets variables registered with the Customize system to their standard values.

```elisp
(custom-reset-variables)
```

This resets all "customized" variables to their default state, which may include package variables.

---

### 5. Reset All Variables for a Package (Advanced)

This is more involved because Emacs doesn't track variables on a per-package basis by default. You might:

- List all variables defined by a package by checking its source code.
- Reset those variables individually.

Or, if the package supports a reset or clear function, use it.

---

### Summary

| Method                  | Description                          |
|-------------------------|------------------------------------|
| Reload the package      | `(unload-feature ...)` + `(require ...)` |
| Customize system        | `M-x customize-variable` + Reset button |
| `custom-reset-variables` | Reset all customized variables     |
| Manual `setq`           | Set variables explicitly            |
| Remove config settings  | Restart Emacs without customizations |

---

If you want, I can help you write a function to reset certain variables or automate this process — just let me know the package and variables you want to reset!
User: how to disable emacs ligatures 
Assistant: