≡ 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.

Sysadmin because even developers need heroes!!!

Share this tutorial on:
{ 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: , , , , , , , , , , , ,