diff --git a/home/base/desktop/editors/README.md b/home/base/desktop/editors/README.md
index 8041439d..40c0d371 100644
--- a/home/base/desktop/editors/README.md
+++ b/home/base/desktop/editors/README.md
@@ -8,13 +8,26 @@ My editors:
And `Zellij` for a smooth and stable terminal experience.
+## Tips
+
+1. Many useful keys are already provided by vim, check vim/neovim's docs before you install a new plugin / reinvent the wheel.
+1. After using Emacs/Neovim more skillfully, I strongly recommend that you read the official documentation of Neovim/vim:
+ 1. : The official vim documentation.
+ 1. : Neovim's official user documentation.
+1. Use Zellij for terminal related operations, and use Neovim/Helix for editing.
+1. As for Emacs, Use its GUI version & terminal emulator `vterm` for terminal related operations.
+1. Two powerful file search & jump tools:
+1. Tree-view plugins are beginner-friendly and intuitive, but they're not very efficient.
+1. **Search by the file path**: Useful when you're familiar with the project structure, especially on a large project.
+1. **Search by the content**: Useful when you're familiar with the code.
+
## Tutorial
Type `:tutor`(`:Tutor` in Neovim) to learn the basics usage of vim/neovim.
## VIM's Cheetsheet
-> Here only record my commonly used keyboard keys, to see **a more comprehensive cheetsheet**:
+> Here only record my commonly used keys, to see **a more comprehensive cheetsheet**:
Both Emacs-Evil & Neovim are compatible with vim, sothe key-bindings described here are common in both Emacs-Evil, Neovim & vim.
@@ -27,15 +40,20 @@ I mainly use Zellij for terminal related operations, here is its terminal shortc
| Floating Terminal | `Ctrl + p + w` |
| Horizontal Split Terminal | `Ctrl + p + d` |
| Vertical Split Terminal | `Ctrl + p + n` |
+| Execute a command | `!xxx` |
### File Management
-| Action | |
-| --------------------------------- | -------------------------------------------- |
-| Save selected text to a file | `:w filename` (Will show `:'<,'>w filename`) |
-| Save and close the current buffer | `:wq` |
-| Save all buffers | `:wa` |
-| Save and close all buffers | `:wqa` |
+>
+
+| Action | |
+| --------------------------------- | ------------------------------------------------ |
+| Save selected text to a file | `:w filename` (Will show `:'<,'>w filename`) |
+| Save and close the current buffer | `:wq` |
+| Save all buffers | `:wa` |
+| Save and close all buffers | `:wqa` |
+| Edit a file | `:e filename`(or `:e ` to show a file list) |
+| Browse the file list | `:Ex` or `:e .` |
### Text Manipulation
@@ -48,12 +66,18 @@ Basics:
| Move left/down/up/right | h/j/k/l or `5h`/`5j`/`5k`/`5l` |
| Move to the matchpairs, default to `()`, `{}`, `[]` | `%` |
| Delete the current character | `x` |
+| Paste the copied text | `p` |
| Delete the selection | `d` |
+| Undo the last word | `CTRL-w`(in insert mode) |
+| Undo the last line | `CTRL-u`(in insert mode) |
| Undo the last change | `u` |
| Redo the last change | `Ctrl + r` |
-| Toggle text's case | `~` |
-| Convert to uppercase | `U` |
-| Convert to lowercase | `u` |
+| Inserts the text of the previous insert | `Ctrl + a` |
+| Repeat the last command | `.` |
+| Toggle text's case | `~` |
+| Convert to uppercase | `U` (visual mode) |
+| Convert to lowercase | `u` (visual mode) |
+| Align the selected conent | `:center`/`:left`/`:right` |
Misc:
@@ -70,6 +94,7 @@ Misc:
| Action | |
| ------------------------------------------------------------------------- | -------------- |
+| Sort tye selected lines | `:sort` |
| Join Selection of Lines With Space | `:join` or `J` |
| Join without spaces | `:join!` |
| Move to the start/end of the line | `0` / `$` |
@@ -108,12 +133,12 @@ Advance Techs:
### Find and Replace
-| Action | Command |
-| ------------------------ | ----------------------------------- |
-| Replace in selected area | `:s/old/new/g` |
-| Replace in current line | Same as above |
-| Replace in whole file | `:% s/old/new/g` |
-| Replace with regex | `:% s@\vhttp://(\w+)@https://\1@gc` |
+| Action | Command |
+| -------------------------------- | ----------------------------------- |
+| Replace in selected area | `:s/old/new/g` |
+| Replace in current line | Same as above |
+| Replace all the lines | `:% s/old/new/g` |
+| Replace all the lines with regex | `:% s@\vhttp://(\w+)@https://\1@gc` |
1. `\v` means means that in the regex pattern after it can be used without backslash escaping(similar to python's raw string).
2. `\1` means the first matched group in the pattern.
@@ -124,6 +149,7 @@ Advance Techs:
| ----------------------------------------- | -------------------------------------- |
| From the 10th line to the end of the file | `:10,$ s/old/new/g` or `:10,$ s@^@#@g` |
| From the 10th line to the 20th line | `:10,20 s/old/new/g` |
+| Remove the trailing spaces | `:% s/\s\+$//g` |
The postfix(flags) in the above commands:
@@ -133,15 +159,26 @@ The postfix(flags) in the above commands:
### Buffers, Windows and Tabs
+>
+
- A buffer is the in-memory text of a file.
- A window is a viewport on a buffer.
- A tab page is a collection of windows.
| Action | Command |
| ----------------------------------- | ----------------------------------- |
+| Split the window horizontally | `:sp[lit]` or `:sp filename` |
+| Split the window horizontally | `:vs[plit]` or `:vs filename` |
+| Switch to the next/previous window | `Ctrl-w + w` or `Ctrl-w + h/j/k/l` |
| Show all buffers | `:ls` |
| show next/previous buffer | `]b`/`[b` or `:bn[ext]` / `bp[rev]` |
-| Split the window horizontally | `:sp[lit]` |
-| Split the window horizontally | `:vs[plit]` |
| New Tab(New Workspace in DoomEmacs) | `:tabnew` |
| Next/Previews Tab | `gt`/`gT` |
+
+### History
+
+
+| Action | Command |
+| ----------------------------------- | ----------------------------------- |
+| Show the command history | `q:` |
+| Show the search history | `q/` |
diff --git a/home/base/desktop/editors/Structured-Editing.md b/home/base/desktop/editors/Structured-Editing.md
index 82be5238..601a724d 100644
--- a/home/base/desktop/editors/Structured-Editing.md
+++ b/home/base/desktop/editors/Structured-Editing.md
@@ -10,7 +10,7 @@
Some plugins:
- Emacs
- - [parinfer-rust-mode](https://github.com/justinbarclay/parinfer-rust-mode)
+ - [parinfer-rusT-mode](https://github.com/justinbarclay/parinfer-rust-mode)
- Neovim
- [parinfer-rust](https://github.com/eraserhd/parinfer-rust)
-