32

I wanted to know if there is way to set keyboard shortcuts to make new files in Finder. For example, by default, you can create a new folder using CMD+Shift+N. Is there a keyboard shortcut to create a new text file? I'm a programmer so this would be extremely useful

I would also be interested in creating other file type using keyboard shortcuts.

I have attempted to use automator but I'm finding it quite confusing and I'm not sure how I would connect a keyboard shortcut to it.

10 Answers 10

37

Well, here you go with an AppleScript for that.

First, create the AppleScript:

  1. Open Automator
  2. Create a Quick Action
  3. Set the input to no input
  4. Drag and Drop the Run AppleScript workflow element onto the grey space.
  5. Paste the code from below into the AppleScript
  6. Save the workflow as Create new file
    If you have iCloud Drive activated, make sure you are saving the file under Library/Services/ in your Home Folder.

try
  tell application "Finder" to set the this_folder ¬
   to (folder of the front window) as alias
on error -- no open folder windows
  set the this_folder to path to desktop folder as alias
end try

set thefilename to text returned of (display dialog ¬
 "Create file named:" default answer "filename.txt")
set thefullpath to POSIX path of this_folder & thefilename
do shell script "touch \"" & thefullpath & "\""

To add it as a shortcut:

  • Go to System Preferences -> Keyboard -> Shortcuts -> Services
  • Scroll down until you find the Service Create new file
  • Assign a shortcut to it by clicking on the right side none, which turns into a Add Shortcut.
    Click the Button and type the shortcut you wish to use.
    I use ⌘ Command+⌥ Option+N
8
  • 3
    I don't understand how to set at shortcut to this specific script through the services tab
    – Harry
    Commented May 5, 2014 at 12:25
  • I added a more detailed way on how to add this script as a shortcut.
    – rwenz3l
    Commented May 5, 2014 at 12:27
  • Now it should work with empty folders also. At least it works for me. You can write your template file inside the script "filename.txt".
    – rwenz3l
    Commented May 5, 2014 at 12:32
  • See also superuser.com/questions/106943/…
    – mems
    Commented Dec 2, 2014 at 11:05
  • 10
    Why don't they have something like that by default? What is the matter with them? Commented May 7, 2015 at 9:58
16

I've created an AppleScript very similar to the @YoshiBotX's one, but with some improvements.

The idea is to create an Automator workflow and assigning a shortcut to it using the following steps:

  • Open Automator and create a Service;
  • Set the input to no input, and the application to Finder.app;
  • Drag and Drop the Run AppleScript workflow element onto the grey space;
  • Put the contents of this AppleScript in the textbox;
  • Save the workflow with a reasonable name (like New File);
  • Go to Settings -> Keyboard -> Shortcuts -> Services and assign a shortcut to it.

Now, let's show the AppleScript:

set file_name to "untitled"
set file_ext to ".txt"
set is_desktop to false

-- get folder path and if we are in desktop (no folder opened)
try
    tell application "Finder"
        set this_folder to (folder of the front Finder window) as alias
    end tell
on error
    -- no open folder windows
    set this_folder to path to desktop folder as alias
    set is_desktop to true
end try

-- get the new file name (do not override an already existing file)
tell application "System Events"
    set file_list to get the name of every disk item of this_folder
end tell
set new_file to file_name & file_ext
set x to 1
repeat
    if new_file is in file_list then
        set new_file to file_name & " " & x & file_ext
        set x to x + 1
    else
        exit repeat
    end if
end repeat

-- create and select the new file
tell application "Finder"

    activate
    set the_file to make new file at folder this_folder with properties {name:new_file}
    if is_desktop is false then
        reveal the_file
    else
        select window of desktop
        set selection to the_file
        delay 0.1
    end if
end tell

-- press enter (rename)
tell application "System Events"
    tell process "Finder"
        keystroke return
    end tell
end tell

For convenience, I'm putting this AppleScript in this GitHub Gist.

2
  • 1
    Excellent script, thank you. The only thing I'd add to this write-up to make it more complete is info instructing newer Automator users that the workflow script they create should be saved in ~/Library/Services. (My default was in iCloud Drive\Automator and it took me a little research to figure out where to save it so it would appear in under Services in Keyboard Shortcuts.) Commented Aug 1, 2016 at 21:35
  • By mentioning "Settings -> Keyboard -> Shortcuts -> Services" I do have the problem where to find that. What menu, what program, what ...? Probably it changed within the last 5 years... nevertheless there is a pattern that I miss the anchor point. Someone pls help... Commented Oct 5, 2020 at 9:00
5

You could also assign a shortcut to a script like this:

tell application "Finder"
    set selection to make new file at (get insertion location)
end tell

The insertion location is either the target of the frontmost Finder window or the desktop.

2
  • Your code is so simple and useful! I use the Automator to create a Application, which there is only one action: Run AppleScript with your code. Then I put this Application into the Finder Titlebar. That's OK. when I need, just click, and a new file will be create in current folder.
    – fantouch
    Commented Jan 15, 2016 at 17:50
  • Is there a simple way to enhance this so that when a folder in Finder is right-clicked > Quick Actions > This script runs, that the new file is created in that selected folder rather than the (root of the) open Finder window?
    – TT--
    Commented May 16, 2023 at 22:44
3

You can create an Automator Service yourself — it is rather simple to do. Then you can assign a keyboard shortcut to it so that you don't need to activate the service through the services menu (which you can do anyway).

Open Automator and select Service as the type of new document.

Set the service to receive no input in Finder.app and add the New TextEdit Document action to the workflow.

Workflow

Save the service, then open System Preferences → Keyboard → Shortcuts → Services where you will find the service listed under General with the name that you gave for the service when you saved it.

Services

Add a keyboard shortcut to the service by selecting the service then clicking 'add shortcut'.

Here you might have some problems if the shortcut is used already. So get creative to make one that works for you.

2

open terminal in the folder where you want to create file and type

touch filename

or

> filename
0
1

In the new macOS Shortcuts, you can use the "Run AppleScript" and below code. In case there already was a file with the same name then Shortcuts will show you a clear run error message that is legible to an end user.

on run {input, parameters}
    tell application "Finder"
        set selection to make new file at (get insertion location) with properties {name:"README.txt"}
    end tell
    return input
end run
0

This is a repost of a post that I made last year. I have had good experience with the following.

There are two useful utilities that you can download and install that will enable you to create a new text file (or RTF file) in a currently-open folder that you are viewing using the Finder.

The utilities are called NewTextFileHere and NewRTFHere and can be downloaded from

http://mac.softpedia.com/developer/Jonas-Wisser-37498.html

Icons for either of these apps can then be included on all of your Finder windows.

0

Just what I'd been looking for, Richard Fuhr. Thanks for this.

One note: that URL's link for the NewTextFileHere seems to load to an empty page. But I did a search and found the app here: http://mac.softpedia.com/progDownload/NewTextFileHere-Download-70374.html

0

An alternative, if you already have BetterTouchTools (it used to be a free app, now it has a pay-what-you-want model with a 30 day trial period), you can find the action on "Utility Actions > Create New File in Current Folder" which does exactly this, with a pop-up to let you pick the name. Assign the shortcut you want (I picked Option+Shift+N) and you're good to go.

0

In case you are using MacVim there is an option under Finder -> Services to create a new vim buffer:

enter image description here

I have mapped this to the short cut ShiftcmdM in System Preferences -> Keyboard -> Shortcuts:

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .