Core Java

Live Templates in IntelliJ

As described here, IntelliJ’s live templates let you easily insert predefined code fragments into your source code.

I have posted some of my most used templates below, a link to my complete list of template files on GitHub (as a reference for myself when I setup new IntelliJ environments) and the steps I took to add the IntelliJ settings file to GitHub.

For example, I set up a template such that I can type test, hit tab, and it will insert this JUnit code snippet for me:

public void $NAME$() {

It is a JUnit test method, with the cursor initially placed after “public void”, ready for typing the test name. The cursor then jumps to between the {}s, ready to start writing the test.

IntelliJ templates are stored in a user.xml file at

~/Library/Preferences/<product name><version number>/templates

For example, for IntelliJ13, it is


Some of my other templates are listed below, with the trigger in bold.
So that I can use these templates on any IntelliJ (e.g. work and home), I have checked my complete list in here at GitHub.


public void setup() {


public void tearDown() {


fail("Not yet implemented");


public void $NAME$() {


public static void main(String[] args){

Steps I took to add the IntelliJ settings to GitHub

First, I setup a new repo in GitHub at
Then, I followed some instructions from this StackOverflow posting on How to convert existing non-empty directory into a Git working directory:

cd ~/Library/Preferences/IntelliJIdea13
git init
git add templates/user.xml
git commit -m 'initial version of IntelliJ user.xml'
git remote add myIntelliJRepo

At this point, I got an error suggesting I needed to do a git pull first. But when I did a

git pull saIntelliJ

I got an error saying

You asked to pull from the remote 'saIntelliJ', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

So, I edited .git/config based on this posting, to include

[branch "master"]
remote = saIntelliJ
merge = refs/heads/master

Then I was able to do

git pull saIntelliJ    
git push -u saIntelliJ master

successfully, and can just use git pull and git push going forward, with no need to specify the repo name (saIntelliJ) each time.

Reference: Live Templates in IntelliJ from our JCG partner Shaun Abram at the Shaun Abram’s blog blog.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Newest Most Voted
Inline Feedbacks
View all comments
9 years ago

Live Templates are extremely useful and productive!

Back to top button