Here's how I installed and configured Sublime Text 2 on Fedora 22, 64-bit. This should also work for other fairly recent versions of Fedora.
Getting Sublime Text
For Linux, Sublime Text is available as a tarball which contains a pre-compiled executable. So all you have to do is download, extract and run it. You can download it directly from your web browser, or use the following command to download it from the terminal. Don't forget to escape the spaces in the file-name with a \
(backslash). Note that if your operating system is 32-bit, you should get the appropriate file.
$ wget http://c758482.r82.cf2.rackcdn.com/Sublime\ Text\ 2.0.2\ x64.tar.bz2
Extract it using your favorite archiving program. Or you can use tar
.
$ tar -vxjf Sublime\ Text\ 2.0.2\ x64.tar.bz2
You may also want to move it to another location, and/or rename it.
$ mv Sublime\ Text\ 2 ~/my/desired/path/Sublime_Text_2
You can now use Sublime Text to create/edit files.
$ ~/my/desired/path/Sublime_Text_2/sublime_text my_first_program.py
If you don't want to type the entire path every time (and I doubt that you do 😛 ), you can either add ~/my/desired/path/Sublime_Text_2/
to the PATH
, or symlink the executable to /usr/bin/
(I don't know if this is a good idea) by typing
$ ln -s ~/my/desired/path/Sublime_Text_2/sublime_text /usr/bin/sublime
Now you can run Sublime Text by opening a terminal and typing
$ sublime my-file-name.txt
Adding it to the Applications list
If you run Sublime Text now, you will probably notice that it has no application icon, and that it's not present in the Applications list.
To solve this, you have to add a desktop entry for Sublime Text in /usr/share/applications/
. To do this, open Sublime Text (or any other text editor) and type (yes, copy-paste) the following:
[Desktop Entry]
Version=1.0
Name=Sublime Text
GenericName=Text Editor
X-GNOME-FullName=Sublime Text 2
Comment=Open, view and edit a wide variety of text files
Keywords=edit;sublime;code;text;
Exec=sublime
Icon=/path/to/Sublime_Text_2/Icon/128x128/sublime_text.png
StartupNotify=true
Terminal=false
Type=Application
Categories=TextEditor;
X-GNOME-UsesNotifications=true
The options are pretty self-explanatory. A couple of important points here, though:
-
The
Exec
key should contain the command executed when you click on the application icon. If you added the Sublime Text folder to thePATH
, this will besublime_text
. If you symlinked it, for example to/usr/bin/sublime
, then usesublime
. -
The Icon directory inside the Sublime Text directory contains icons of various sizes. Choose one that looks neat on your screen. The
Icon
key contains the path to the image you want to use as the icon.
Save this file as sublime.desktop
in /usr/share/applications/
. Now you will be able to find it in the Applications list. The icon is also displayed.
Making life easier
Now that we are set, we are going to make a couple of adjustments to make life easier. On the menu bar, click on Preferences > Settings — Default. This opens a file named Preferences.sublime-settings
which contains various options that can be configured by the user.
First off, tell Sublime Text to convert tabs to spaces. Search for (Ctrl
+ F
) translate_tabs_to_spaces
and set it to true
.
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
If you don't want auto-complete to enter the suggestion when you hit Enter
, then search for auto_complete_commit_on_tab
and set it to true
. Now you can press Tab
to enter auto-complete suggestions, and Enter
to enter a newline.
// By default, auto complete will commit the current completion on enter.
// This setting can be used to make it complete on tab instead.
// Completing on tab is generally a superior option, as it removes
// ambiguity between committing the completion and inserting a newline.
"auto_complete_commit_on_tab": true,
If you found this useful, or spotted an error, please let me know in the comments 🙂 In a future post, we will see how to set certain file-types (like .php
or .py
) to open with Sublime Text by default.
This post used to be a part of my old blog, and was migrated here for legacy reasons.