diff --git a/.obsidian/plugins/colored-tags/data.json b/.obsidian/plugins/colored-tags/data.json index d056fb57..f9322223 100755 --- a/.obsidian/plugins/colored-tags/data.json +++ b/.obsidian/plugins/colored-tags/data.json @@ -207,7 +207,9 @@ "Neo": 195, "subtask": 196, "Personal": 197, - "MARVEL": 198 + "MARVEL": 198, + "Vim": 199, + "Learning": 200 }, "_version": 3 } \ No newline at end of file diff --git a/3-99 Research/VIM/Folding.md b/3-99 Research/VIM/Folding.md index e69de29b..1c624d6e 100644 --- a/3-99 Research/VIM/Folding.md +++ b/3-99 Research/VIM/Folding.md @@ -0,0 +1,37 @@ +--- +date: 2025-03-21 +tags: + - Vim + - Learning +--- +#Vim #Learning +# What is code folding? +Code folding is when you can take several lines of code and collapse them. +Folding is super useful for situations where code takes up space when you +do not need to see it for your current editing. Common cases are things +like function definitions, for loops, or large tables. + +# How does Vim handle folding? +## Folding Modes + +Vim has several folding modes: +1. `manual` - you pick where folds go +2. `indent` - fold by indented blocks +3. `syntax` - fold by semantic markers in code +4. `expr` - fold by user expression +5. `marker` - fold based on [[Markers]] that are placed by a user +6. `diff` - used to fold unchanged text when using [[Views]] + +For the most part, I'm just going to use manual mode. I know enough of the +motions that I can get around easier, and plus since I write in a variety +of languages things like indent or syntax might not be sufficient or +expressive enough. + +## Folding Commands +To create a fold, use `zf{motion}`, where, you guessed it, you can use +just about any of the [[Motions]] you like. + +Folds can also be created using Visual mode. Select the text, then `zf`. + + +