Session 03¶
Topic 1: Interfaces¶
- terminal
- SSH
- Zsh
- editors π
- Git
- AI
Today¶
Editors¶
- VS Code
- Vim keybindings
Why editors matter¶
Your editor is your workplace¶
- you spend hours/day inside it
- editing β typing β navigation, refactoring, thinking
- small frictions β big productivity loss
- a good editor setup results in fewer bugs, faster thinking
β the editor shapes how you think, debug, and experiment π§ͺ
What makes a βgoodβ editor?¶
- syntax, structure awareness π¨
- fast navigation, search π§
- integrated tools (terminal, debugger, Git) β‘
- extensible, customizable βοΈ
VS Code¶
Why VS Code stands out¶
- cross-platform
- large extension ecosystem
- has extensions for most languages
(Python, C/C++, Go, β¦) - SSH & remote development (via extension)
- Git integration
β
β probably the most popular editor
β¦ it is also owned by Microsoft
VS Code productivity shortcuts¶
Hands-on¶
Ctrl+pβ jump to any fileCtrl+Shift+pβ command palette- multi-cursor editing (
Alt+Click) - integrated terminal
VS Code with SSH¶
- Remote-SSH extension: edit code on the cluster
- same GUI, same shortcuts
- debug locally, run remotely
Hands-on¶
connect VS Code via SSH to Matrix
Vim editor¶
Vim - why bother?¶
π¬
Brilliant keybindings¶
- when coding, typing text happens rarely β¦ but
- browsing, inspecting, and modifying happens often
- using only the keyboard is the key to efficiency
- Vim letβs us edit code at the speed of thought
Vim works everywhere¶
- no installation: it comes with the π§ OS
- runs everywhere: laptop, SSH, remote data centers
- BYO Vim config: just copy
~/.vimrcfile elsewhere - instant startup, zero GUI dependencies
- themes, plugins
β frictionless editing in the terminal
Edit at the speed of thought¶
π§ β β¨οΈ
- Vim is a βlanguage for editingβ
- modal editing: different modes for different intentions
- operator + motion model: βwhat you do + whereβ
- donβt move the cursor to edit, describe the edit
Example¶
dw β delete "d" + word "w"
ci( β change "c" + inside parentheses "i("
yip β yank/copy "y" + an entire paragraph "ip"
Vim configuration¶
wiki β Vim β Configuration
vim wiki/vim.md # to quit Vim, type: ":q" <Enter>
Hands-on (on Matrix)¶
vim ~/.vimrc # switch mode: "i" (insert mode)
# type text as usual
# switch back: <Esc> (insert to normal mode)
Vim commands¶
Vim has modes:
- Normal β navigate & issue commands
- Insert β type text
- Visual β select text
- Command β save, quit, search, β¦
Vim in 60 seconds¶
# Typing: Normal mode β Insert mode β Normal mode
i β enter Insert mode, then type
Esc β back to Normal mode
# Move around (in Normal mode)
h β left
j β down
k β up
l β right
# Save & quit commands (in Normal mode)
:w β save
:q β quit
:wq β save and quit
:q! β quit without saving
What you can learn today (wiki β Vim)¶
Navigating¶
w,b,eβ three kinds of word-wise movementggorGβ go to the top or bottom of a file{or}β paragraph jumps (forward or backward)
Editing¶
ci"orci(β change inside quotes or parentheses.β repeat last changeuβ undoCtrl-rβ redo
Hands-on using the Vim graphical cheat sheet¶
- copy, delete, paste
- visual mode
- repeat, undo
- search
- indentation
Key takeaways¶
- editors are force multipliers β‘
- invest early in editor skills β the payoff compounds for years
Vim
- stay on the βhome rowβ β¨οΈ
- speed comes from composability β not shortcuts π§©
- broader picture: Vim keybindings are universal π
β use inside any IDE (VS Code) / Email client / β¦
Looking ahead¶
- version control is all you need to avoid code chaos
- Git β move fast without loosing trust in your work
- safe experimentation and collaboration