How to enter a tab character in gedit if replacement with spaces is set up?

Some programs require tab characters to work, e.g. make requires tabs in Makefiles. If gedit is configured to replace tabs with spaces, it's painful to change the settings every time or copy a character from another document.

I'm using 3.10.4 on Ubuntu 15.04.


Solution 1:

You can insert a literal Tab character in gedit by using the GNOME Unicode input mode:

Ctrl + Shift + U

and then enter 9 followed by Enter. The horizontal tab character is Unicode code point U+0009. This will insert a tab regardless of your preferences to expand tabs or not.

Solution 2:

You can create shortcuts to quickly change this setting:

gsettings set org.gnome.gedit.preferences.editor insert-spaces false

Solution 3:

Install a plugin for gedit

  1. Clone the repository git://git.gitano.org.uk/personal/liw/makefiletab3.git

    mkdir -p ~/src
    cd src
    git clone git://git.gitano.org.uk/personal/liw/makefiletab3.git
    
  2. Create the plugin folder for gedit

    mkdir -p ~/.local/share/gedit/plugins
    
  3. Create a symbolic link

    ln -s ~/src/makefiletab3 ~/.local/share/gedit/plugins/makefiletab3
    
  4. Change the Python version in makefiletab3.plugin

    Open the file

    nano ~/.local/share/gedit/plugins/makefiletab3/makefiletab3.plugin
    

    and replace

    Loader=python
    

    with

    Loader=python3
    
  5. Restart gedit and activate the plugin

    enter image description here

Solution 4:

If you wanted to insert a number of tabs into a script or document without changing the tab configuration in gedit:

  • Wherever a tab is required enter a unique string of characters (e.g. tab!) to be used as a replace token when needed.
  • When you need the actual tabs, use Find and Replace (CTRL+H) to find the tab! and replace with \t