I want to get the file name without the file extension in Vim.
I wrote the following function in my .vimrc
file to compile and run the Java program:
:function! JAVA_RUN() :!javac %^M :endfunction map <F3> :execute JAVA_RUN()<CR> :source $HOME/.vimrc<CR>
How can I get the file name without the extension inside the function?
In command mode (after typing a colon), type Ctrl-R then % to insert the name of the current file. The inserted name can then be edited to create a similar name. In normal mode, type "%p to put the name of the current file after the cursor (or "%P to insert the name before the cursor).
GetFileNameWithoutExtension(ReadOnlySpan<Char>) Returns the file name without the extension of a file path that is represented by a read-only character span.
Pressing 1 followed by Ctrl + G shows the full path of the current file.
:help expand()
should give you the answer, see expand().
You should use the r
modifier for %, with %:r
instead of %
to get the file name without extension.
If you want to write functions to build and execute files, you should also have a look at the documentation for shellescape
, in order to prevent problems with spaces in file name or path.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With