Wikia

Vim Tips Wiki

Changes: Insert current filename

Edit

Back to page

(References)
(Change <tt> to <code>, perhaps also minor tweak.)
 
Line 57: Line 57:
   
 
:Use single quotes instead of double quotes to avoid need for extra backslashes:
 
:Use single quotes instead of double quotes to avoid need for extra backslashes:
:<tt>'^.*[/\\]src[/\\]'</tt>
+
:<code>'^.*[/\\]src[/\\]'</code>
:BTW, <tt>matchstr(expand("%:p:h"), '^.*[/\\]src[/\\]\zs.*')</tt> is simpler.
+
:BTW, <code>matchstr(expand("%:p:h"), '^.*[/\\]src[/\\]\zs.*')</code> is simpler.
   
 
----
 
----

Latest revision as of 05:17, July 13, 2012

Duplicate tip

This tip is very similar to the following:

These tips need to be merged – see the merge guidelines.

Tip 193 Printable Monobook Previous Next

created 2002 · complexity basic · author Steve Downing · version 5.7


I found this useful when I was learning Java: it simply inserts the current filename without the extension at the cursor position, when you are in insert mode.

:inoremap \fn <C-R>=expand("%:t:r")<CR>

To keep the extension use:

:inoremap \fn <C-R>=expand("%:t")<CR>

To insert the absolute path of the directory the file is in use:

:inoremap \fn <C-R>=expand("%:p:h")<CR>

To insert the relative path of the directory the file is in use:

:inoremap \fn <C-R>=expand("%:h")<CR>

ReferencesEdit

CommentsEdit

I often use <C-R>% when in insert mode. It does the same thing, except you also get your file extension.


The % variable for file name is also helpful from the command prompt (: at the bottom). I use it for checking the syntax of source code before using it. For example, if I am editing a perl module, this is helpful:

:w|!perl -c %

This saves the file (w), and executes perl -c on the current file which runs a syntax check.


Yet another useful % application: suppose your source-files reside in a '.../src' (or '...\src') directory. Now this line will insert the package-structure of you current Java-file at the cursor position:

:inoremap \jip <C-R>=substitute(substitute(expand("%:p:h"), "^.*[/\\\\]src[/\\\\]", "", ""), "[/\\\\]", ".", "g")<CR>

(Four backslashes because you need to escape them twice.)

Use single quotes instead of double quotes to avoid need for extra backslashes:
'^.*[/\\]src[/\\]'
BTW, matchstr(expand("%:p:h"), '^.*[/\\]src[/\\]\zs.*') is simpler.

Around Wikia's network

Random Wiki