mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-25 02:08:29 +02:00
feat: emacs - copilot & docs
This commit is contained in:
@@ -14,4 +14,79 @@ After deploying this nix flake, run the following command to install or update e
|
|||||||
```bash
|
```bash
|
||||||
doom sync
|
doom sync
|
||||||
```
|
```
|
||||||
|
## Terminal Related
|
||||||
|
|
||||||
|
zellij provides a more powerful and stable terminal experience, so here is zellij's terminal shortcuts I use frequently now:
|
||||||
|
|
||||||
|
| Action | Zellij's Shortcut |
|
||||||
|
| ------------------------- | ------------------ |
|
||||||
|
| Floating Terminal | `Ctrl + <p> + <w>` |
|
||||||
|
| Horizontal Split Terminal | `Ctrl + <p> + <d>` |
|
||||||
|
| Vertical Split Terminal | `Ctrl + <p> + <n>` |
|
||||||
|
|
||||||
|
## Visual Modes
|
||||||
|
|
||||||
|
The same as neovim/vim:
|
||||||
|
|
||||||
|
| Action | Shortcut |
|
||||||
|
| ------------------------ | ---------------------------------------- |
|
||||||
|
| Toggle visual mode | `v` |
|
||||||
|
| Toggle visual block mode | `<Ctrl> + v` (select a block vertically) |
|
||||||
|
|
||||||
|
## Text Manipulation
|
||||||
|
|
||||||
|
- Add at the end of multiple lines: `:normal A<text>`
|
||||||
|
|
||||||
|
- Execublock: `:A<text>`
|
||||||
|
|
||||||
|
- visual block mode(ctrl + v)
|
||||||
|
- Append text at the end of each line in the selected block
|
||||||
|
- If position exceeds line end, neovim adds spaces automatically
|
||||||
|
|
||||||
|
- Delete the last char of multivle lines: `:normal $x`
|
||||||
|
|
||||||
|
- Execute `$x` on each line
|
||||||
|
- visual mode(v)
|
||||||
|
- `$` moves cursor to the end of line
|
||||||
|
- `x` deletes the character under the cursor
|
||||||
|
|
||||||
|
- Delete the last word of multiple lines: `:normal $bD`
|
||||||
|
- Execute `$bD` on each line
|
||||||
|
- visual mode(v)
|
||||||
|
- `$` moves cursor to the end of line
|
||||||
|
- `b` moves cursor to the beginning of the last word
|
||||||
|
- `D` deletes from cursor to the end of line
|
||||||
|
|
||||||
|
## Splitting and Buffers
|
||||||
|
|
||||||
|
| Action | Shortcut |
|
||||||
|
| --------------------- | ------------- |
|
||||||
|
| Next Buffer (Tab) | `]b` |
|
||||||
|
| Previous Buffer (Tab) | `[b` |
|
||||||
|
| Save all buffers(Tab) | `<Space> + b + S` |
|
||||||
|
|
||||||
|
## Editing and Formatting
|
||||||
|
|
||||||
|
| Action | Shortcut |
|
||||||
|
| ----------------------------------------------------- | -------------- |
|
||||||
|
| Format Document | `<Space> + cf` |
|
||||||
|
| Code Actions | `<Space> + ca` |
|
||||||
|
| Rename | `<Space> + cr` |
|
||||||
|
| Opening LSP symbols | `<Space> + cS` |
|
||||||
|
| Comment Line(support multiple lines) | `<Space> + /` |
|
||||||
|
| Open filepath/URL at cursor | `gf` |
|
||||||
|
| Find files by keyword in path | `<Space> + <Space>` |
|
||||||
|
| Grep string in files (vertico + ripgrep) | `<Space> + sd` |
|
||||||
|
|
||||||
|
## Search & replace
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
SPC s p foo C-; E C-c C-p :%s/foo/bar/g RET Z Z
|
||||||
|
```
|
||||||
|
|
||||||
|
1. `SPC s p`: search in project
|
||||||
|
1. `foo`: the keyword to search
|
||||||
|
1. `C-; E`: exports what you’re looking at into a new buffer in grep-mode
|
||||||
|
1. `C-c C-p` to run wgrep-change-to-wgrep-mode to make the search results writable.
|
||||||
|
1. `:%s/foo/bar/g RET`: replace in the current buffer(just like neovim/vim)
|
||||||
|
1. `Z Z`: to write all the changes to their respective files
|
||||||
|
|||||||
@@ -74,3 +74,12 @@
|
|||||||
;;
|
;;
|
||||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||||
;; they are implemented.
|
;; they are implemented.
|
||||||
|
|
||||||
|
;; accept completion from copilot and fallback to company
|
||||||
|
(use-package! copilot
|
||||||
|
:hook (prog-mode . copilot-mode)
|
||||||
|
:bind (:map copilot-completion-map
|
||||||
|
("<tab>" . 'copilot-accept-completion)
|
||||||
|
("TAB" . 'copilot-accept-completion)
|
||||||
|
("C-TAB" . 'copilot-accept-completion-by-word)
|
||||||
|
("C-<tab>" . 'copilot-accept-completion-by-word)))
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
;;layout ; auie,ctsrnm is the superior home row
|
;;layout ; auie,ctsrnm is the superior home row
|
||||||
|
|
||||||
:completion
|
:completion
|
||||||
company ; the ultimate code completion backend
|
(company +childframe) ; the ultimate code completion backend
|
||||||
;;helm ; the *other* search engine for love and life
|
;;helm ; the *other* search engine for love and life
|
||||||
;;ido ; the other *other* search engine...
|
;;ido ; the other *other* search engine...
|
||||||
;;ivy ; a search engine for love and life
|
;;ivy ; a search engine for love and life
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
;; debugger ; FIXME stepping through code, to help you add bugs
|
;; debugger ; FIXME stepping through code, to help you add bugs
|
||||||
;;direnv
|
;;direnv
|
||||||
(docker +lsp)
|
(docker +lsp)
|
||||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
editorconfig ; let someone else argue about tabs vs spaces
|
||||||
;;ein ; tame Jupyter notebooks with emacs
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
(eval +overlay) ; run code, run (also, repls)
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
;;gist ; interacting with github gists
|
;;gist ; interacting with github gists
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
;; on the command line, then restart Emacs for the changes to take effect -- or
|
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||||
;; use 'M-x doom/reload'.
|
;; use 'M-x doom/reload'.
|
||||||
|
|
||||||
|
(package! copilot
|
||||||
|
:recipe (:host github :repo "copilot-emacs/copilot.el" :files ("*.el" "dist")))
|
||||||
|
|
||||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||||
;; (package! some-package)
|
;; (package! some-package)
|
||||||
|
|||||||
Reference in New Issue
Block a user