How to print current path and similar stuff in vimscript?

Table of Contents

File expansions

Get help from Vim about filename and path expansion modifiers:

:help filename-modifiers

Path of file. % expands into current file path.

echo expand("%")
  ## /Users/mertnuhoglu/projects/study/vim/ex_viml_file_expansion.Rmd

Path of directory. h: head. p: path. :p:h head of path of file

echo expand("%:p:h")
  ## /Users/mertnuhoglu/projects/study/vim

Path of file. p: path of file

echo expand("%:p")
  ## /Users/mertnuhoglu/projects/study/vim/ex_viml_file_expansion.Rmd

Path of file without extension. r: root of file name

echo expand("%:r")
  ## /Users/mertnuhoglu/projects/study/vim/ex_viml_file_expansion

Run an R command to render rmarkdown files from within Vim

In bash, the following command renders an .Rmd file to .html file

R -e 'rmarkdown::render("%")'

To run this command from within Vim easily, I defined a custom command in .vimrc file:

command! Rmarkdown :!R -e 'rmarkdown::render("%")'

Now simply typing the following auto-completable command inside Vim is enough:


Open the generated html file after rendering rmarkdown

:Rmarkdown command above renders .Rmd file into .html file. Now, I want to open it from within Vim easily.

The following custom command let’s me open generated html file easily:

command! OpenHtml :execute '!open ' . expand("%:r") . '.html'
command! Ohtml OpenHtml