≡ Menu

vi / vim Auto complete File Name While Editing Files

Q. I use vi / vim as IDE (Integrated development environment) a software development system using Ubuntu Linux. How do I auto complete file name under vim / vi text editor while editing text file or java / c / python program? I can auto complete file nameunder bash shell by hitting [TAB] key.

A. Yes, it is quite frustrating when you are not able to open files immediately. There is no need to add any special command for this task. All you have to do is press [Tab] key to complete directory or file names just like bash command. For example, while coding html file, if you would like to open email.php, just type following (ESC + : + em + hit [TAB] key):
:e em[TAB]
To auto complete directory name again hit [TAB]:
:cd /e[tab]
For further information see help page, by typing following command:
:help path
This works with vim version 6.1 and above. If you are using old version add following to your ~/.vimrc file:
map ,e :e <C-R>=expand("%:p:h") . "/" <CR>
Save and close the file. Then when you type ,e in normal mode you can use tab to complete to the file.

Share this tutorial on:

Like this? Follow us on Twitter OR support us by using Patreon

{ 6 comments… add one }
  • Frazer Kirkman January 31, 2009, 12:09 pm

    thanks for the tip.

    its also worth mentioning that
    set nocompatible
    will make this work.

    Not sure what versions this is apllicable to

  • rc3 November 9, 2009, 3:12 am

    Nice tips. Thanks and keep up with the good works.

  • joce September 21, 2011, 1:33 pm

    I believe the question was about doing it in EDIT mode, when you type e.g.

    #include “mycppheader.h”

    and you want auto-completion of this.

    It is possible in vim, check e.g. http://www.vim.org/scripts/script.php?script_id=169

    • joce September 21, 2011, 1:44 pm

      found it.
      Ctrl-X Ctrl-F will complete a filename.

      • gpgdx November 21, 2011, 8:38 am

        Exactly what I was looking for… great!

      • sai April 23, 2014, 10:11 am

        Thanks. This is what I was looking for. I think just Ctrl+F will work.

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , , , , , , , , , , , ,