Find File (C-x C-f)

Find File provides Emacs-style file navigation in VS Code. It displays a filterable directory listing in a webview panel where you can quickly navigate directories, open files, and perform actions like inserting file paths or org-links.

Opening Find File

KeybindingCommandDescription
C-x C-fscimax.findFileOpen find-file (starts in current file's directory)
C-x 5 fscimax.findFileOtherWindowSame, but Enter opens the file in a new window
scimax.findFileHomeOpen find-file in home directory
scimax.findFileWorkspaceOpen find-file in workspace root

Navigation

KeyAction
Up / C-pMove selection up
Down / C-nMove selection down
TabEnter selected directory (navigate within panel)
BackspaceGo to parent directory (or delete filter character)
EnterOpen file in editor, or open directory as a project in a new window
PageUp / PageDownMove selection by 10
Home / EndJump to first/last entry

Filtering

Simply type to filter the file list. The filter uses fuzzy matching - characters must appear in order but don't need to be consecutive.

KeyAction
any characterAdd to filter
BackspaceRemove last filter character (or go to parent if empty)
C-uClear filter

Toggle Hidden Files

KeyAction
.Toggle showing hidden files (dotfiles)

Only works when filter is empty.

Actions Menu (M-o)

Press M-o (Option+O on Mac) to open the actions menu. Then press a speed key to execute the action, or click on an action.

KeyAction
oOpen file (default)
jOpen in split (side-by-side)
wOpen in a new window
pInsert relative path at original cursor
PInsert absolute path at original cursor
lInsert org-link with relative path
LInsert org-link with absolute path
cCopy relative path to clipboard
CCopy absolute path to clipboard
dOpen directory in dired
eOpen in Finder/Explorer
rRename file
DDelete file

Press M-o or Esc to cancel the actions menu.

New Windows (C-x 5)

The Emacs frame commands open VS Code floating editor windows: separate OS windows that belong to the same VS Code window, so they keep the project, sidebar and extensions.

KeyCommandEmacsAction
C-x 5 fscimax.findFileOtherWindowfind-file-other-frameFind a file and open it in a new window
C-x 5 C-fscimax.findFileOtherWindowfind-file-other-frameSame as C-x 5 f
C-x 5 bscimax.fuzzySearchRecentFilesOtherWindowswitch-to-buffer-other-framePick a recent org/md file and open it in a new window
C-x 5 dscimax.dired.openOtherWindowdired-other-framePick a directory and open dired on it in a new window
C-x 5 2workbench.action.copyEditorToNewWindowmake-frame-commandShow the current file in a new window
C-x 5 cworkbench.action.copyEditorToNewWindowclone-frameSame as C-x 5 2
C-x 5 0workbench.action.closeWindowdelete-frameClose the window you are in
C-x 5 oworkbench.action.switchWindowother-framePick an open window to switch to

C-x 5 0 in the main window closes the whole VS Code window, as delete-frame does for the last frame. There is no C-x 5 1 (delete-other-frames): VS Code has no command that closes the other floating windows. From a floating window, View: Restore Editors into Main Window closes that window and moves its editors back.

Path Insertion

When you invoke find-file from an editor, your cursor position is remembered. The insert actions (p, P, l, L) will insert the path at that original position.

Example workflow:

  1. In an org file, position cursor where you want a link

  2. Press C-x C-f to open find-file

  3. Navigate to the target file

  4. Press M-o l to insert an org-link with relative path

Result: [[file:relative/path/to/file.org][file.org]] is inserted at your cursor.

Clickable Status Bar

All status bar items are clickable:

  • Click Tab to enter directory

  • Click Enter to open

  • Click M-o to show actions menu

  • Click Backspace to go up/clear filter

  • Click . to toggle hidden files

  • Click Esc to quit

Display Format

Each entry shows:

  • Icon (folder or file)

  • Name (directories end with /)

  • Size (for files)

Directories are sorted before files, both alphabetically.

Quitting

KeyAction
EscClose find-file panel