← Back to garden ⌨️

note

My Keybindings

What is the point of my keybindings

I’m a multidisciplinary developer, which is reflected by the amount of IDEs and environments that I usually work with, from CLI tools to fully fledge IDEs and other interfaces and having to switch between them usually results in a lot of “how do I do this in this X” and although I recognise that most softwares keybindings are well though it is also true that you spend the 90% switching between the same actions, and so I can risk that 10% of time to just look for that functionality that I want to do.

Structure

To be able to move effectively I fist have to define the layers and types of interface that I work with, these are:
Operating System
I use a Mac as an operating system and although this can be easily not be your case (or mine in a few years) it is important to consider your OS and how you move around it, so even tough you might not have the same OS the same principles can apply, just find the equivalent software.

  • Window Manger: The windows are something entirely reliant on the OS
  • Launcher: In the case of macOS spotlight allows you to quickly launch applications.

Applications / GUI
These are any software that comes with a graphical interface, in this case most of the keybindings are going to be meant to navigate between panels of the application on the XYZ axis and some miscellaneous configurations.

Terminal / CLI
The terminal is the most portable interface that you can bring with you, and I try to do most of my work on it, the most important feature of the CLIs is that it is simple and easily portable to other computers, and even, clouds.


OperatingSystem-level Keybindings

This section are the keybindings that are available on a **system-wide **mostly about managing windows and apps across monitors and layouts.

The keys responsible for this layer are:
⇪ - BlockMay (which is set as a combination of Shift, control and command)
⇪ + ⌥ - This is mostly used in combination with BlockMay

Action
Keybinding
Description (optional)
⌘ + Space

Spotlight / Raycast
On macOS this is Raycast
Moving between desktop/screens
⇪ + [number]
Switch to desktop
This can be set on Keyboard → Shotcuts → Mission control
⇪ + s
Focus Screen 1 / 2
I usually have two monitors, the laptop and the monitor one on top and one below.
Throwing Windows
⇪ + ⌥ + [number]
Throw focused window to desktop
Window Layout
⇪ + w
Rotate focus clockwise
⇪ + ⌥ + r
Rotate window layout
⇪ + m
Full screen focused window
⇪ + ⌥ + m
Floating layout
⇪ + e
Change main screen on current layout
⇪ + ⌥ + t›
Toggle floating or window management
Misc
⇪ + /
Toggle AI chat
⇪ + .
Toggle floating notes
⇪ + ,
Toggle translator window
⇪ + t
Toggle floating terminal
⇧ + ⌘ + 4
Screenshot area
⇧ + ⌘ + 5
Record Area
⇪ + f
Click with vim mode
⇪ + j
Scroll anywhere (j/k)

App-level Keybindings

This sections is for any GUI app installed on the system, although is mostly focused on code editors and IDEs it can be abstracted into other apps.

The main keys responsible for this layer are:
⌘ - Command
⌃ - Control
⌥ - Option

ACTIONS
General app actions
Keybinding
Action
Description (optional)
⌘ + p
Command palette
⌘ + ⇧ + p
Search Commands
⌘ + f
Find in window
⌘ + ⇧ + f
Find in space
⌘ + r
Run / Reload
MENU
This section is for general app menus
asdw = game-like
⌥ + a
Left side menu
⌥ + d
Right side menu
⌥ + w
Bottom side menu
⌥ + s
Search (files/tabs)
⌥ + w
Bottom menu
⌥ + t
Terminal
FILE MENU
⌘ + w
Close window
⌘ + n
Create file
⌘ + ]
Next tab
⌘ + [
Previous tab
⌃ + Tab

Switch recent tabs
EDDITING
⌘ + .
Toggle block fold
⌘ + ⇧ + .
Fold All
⌘ + ⇧ + ,
Unfold All
Rename file
⌘ + ↑
Move line
⌘ + ⇧ + ↓
Duplicate line
SPLIT PANELS
⌃ + |
Split to right
⌃ + ⟶
Focus to right
⌃ + ←
Focus left

Code-Edit / My Vim bindings

Action
Binding
NeoVim
Intellij
VSCode
XCode
Go to definition
g d


Go to type definition
g D
Show Usages
g i

Change Definition (Rename)
c d

Find Symbol in Current file
g s
Find Symbol in Entire Project
g S
Select next word
<C-n>

Hover / Show error
g h
Code actions
⌘ .
Insert cursor below/above
<C-↑>

Delete without saving
Move up / down selected line
Open Tmux projects
leader p s

Open Explorer
e
Open Explorer (Relative)
E
Open Command palette
P/K
Open Files
p
Open Git
1
Open terminal
2