Skip to main content
added 533 characters in body
Source Link
Vivian De Smedt
  • 24.9k
  • 5
  • 29
  • 48

I would add the following line to init.vim

let s:hasfolder=1 let g:foldertogo = '.' function s:parse_arguments() let i = 1 while i < len(v:argv) if v:argv[i][0] == '-' let i = i + 2 else let path = v:argv[i] if path[len(path)-1] == '\' || path[len(path)-1] == '/' let path = path[:-2] endif if finddir(escape(fnamemodify(path, ':t'), ' '), escape(fnamemodify(path, ':h'), ' ')) != '' let s:hasfolder = 1 let g:foldertogo = v:argv[i] break else let s:hasfolder = 0 endif let i = i + 1 endif endwhile endfunction call s:parse_arguments() if s:hasfolder augroup FolderToGo autocmd! autocmd VimEnter * :execute "cd " . g:foldertogo augroup END endif 

Here are my observation about the behavior of Vim and Neovim concerning that aspect:

  • Vim 9.1 on Windows change to directory
  • gVim 9.1 on Windows change to directory
  • Vim 9.1 on Linux don-t change to directory
  • gVim 9.1 on Linux don't change to directory
  • Vim 8.2 on Windows change to directory
  • gVim 8.2 on Windows change to directory
  • Neovim 0.95 on Windows don't change to directory
  • Neovim 0.95 on Linux don't change to directory

Summary:

  • It seems it change to folder only for Vim under Windows

I would add the following line to init.vim

let s:hasfolder=1 let g:foldertogo = '.' function s:parse_arguments() let i = 1 while i < len(v:argv) if v:argv[i][0] == '-' let i = i + 2 else let path = v:argv[i] if path[len(path)-1] == '\' || path[len(path)-1] == '/' let path = path[:-2] endif if finddir(escape(fnamemodify(path, ':t'), ' '), escape(fnamemodify(path, ':h'), ' ')) != '' let s:hasfolder = 1 let g:foldertogo = v:argv[i] break else let s:hasfolder = 0 endif let i = i + 1 endif endwhile endfunction call s:parse_arguments() if s:hasfolder augroup FolderToGo autocmd! autocmd VimEnter * :execute "cd " . g:foldertogo augroup END endif 

I would add the following line to init.vim

let s:hasfolder=1 let g:foldertogo = '.' function s:parse_arguments() let i = 1 while i < len(v:argv) if v:argv[i][0] == '-' let i = i + 2 else let path = v:argv[i] if path[len(path)-1] == '\' || path[len(path)-1] == '/' let path = path[:-2] endif if finddir(escape(fnamemodify(path, ':t'), ' '), escape(fnamemodify(path, ':h'), ' ')) != '' let s:hasfolder = 1 let g:foldertogo = v:argv[i] break else let s:hasfolder = 0 endif let i = i + 1 endif endwhile endfunction call s:parse_arguments() if s:hasfolder augroup FolderToGo autocmd! autocmd VimEnter * :execute "cd " . g:foldertogo augroup END endif 

Here are my observation about the behavior of Vim and Neovim concerning that aspect:

  • Vim 9.1 on Windows change to directory
  • gVim 9.1 on Windows change to directory
  • Vim 9.1 on Linux don-t change to directory
  • gVim 9.1 on Linux don't change to directory
  • Vim 8.2 on Windows change to directory
  • gVim 8.2 on Windows change to directory
  • Neovim 0.95 on Windows don't change to directory
  • Neovim 0.95 on Linux don't change to directory

Summary:

  • It seems it change to folder only for Vim under Windows
Source Link
Vivian De Smedt
  • 24.9k
  • 5
  • 29
  • 48

I would add the following line to init.vim

let s:hasfolder=1 let g:foldertogo = '.' function s:parse_arguments() let i = 1 while i < len(v:argv) if v:argv[i][0] == '-' let i = i + 2 else let path = v:argv[i] if path[len(path)-1] == '\' || path[len(path)-1] == '/' let path = path[:-2] endif if finddir(escape(fnamemodify(path, ':t'), ' '), escape(fnamemodify(path, ':h'), ' ')) != '' let s:hasfolder = 1 let g:foldertogo = v:argv[i] break else let s:hasfolder = 0 endif let i = i + 1 endif endwhile endfunction call s:parse_arguments() if s:hasfolder augroup FolderToGo autocmd! autocmd VimEnter * :execute "cd " . g:foldertogo augroup END endif