Jan Hudec
Jan Hudec

Reputation: 76236

Is it possible to make vim use forward slashes on windows?

Native build of ViM on Windows uses backslashes in file paths including for completion, though it works fine if I use forward slashes manually (in fact all Windows API understand them, cmd.exe is the only exception) and backslashes cause various problems, because they double as escape and the "dwim" logic does not really work. For example:

:vimgrep /Foo/ src/*

works just fine, but

:vimgrep /Foo/ src\*

does not, because the \ escapes the *. Manually I just write forward slash, but tab completion always gives me backslash at the end, so I have to change it all the time.

Is it possible to reconfigure ViM to use forward slashes by default (preferably without recompiling it)?

Upvotes: 8

Views: 4354

Answers (1)

FDinoff
FDinoff

Reputation: 31419

This should do what you want

:set shellslash

Help (:h shellslash) copied below

                        'shellslash' 'ssl' 'noshellslash' 'nossl'
'shellslash' 'ssl'      boolean (default off)
                        global 
                        {not in Vi} {only for MSDOS, MS-Windows and OS/2}
        When set, a forward slash is used when expanding file names.  This is
        useful when a Unix-like shell is used instead of command.com or
        cmd.exe.  Backward slashes can still be typed, but they are changed to
        forward slashes by Vim.
        Note that setting or resetting this option has no effect for some
        existing file names, thus this option needs to be set before opening
        any file for best results.  This might change in the future.
        'shellslash' only works when a backslash can be used as a path
        separator.  To test if this is so use: 
                if exists('+shellslash')

Upvotes: 12

Related Questions