Loading ...
Sorry, an error occurred while loading the content.

Re: Use current file name in the current file?

Expand Messages
  • stosss
    ... Ben thanks! I will read those help sections and mess around with your examples. I think you just gave me what I was looking for. You Rock! -- You received
    Message 1 of 6 , Jan 14, 2013
    • 0 Attachment
      On Mon, Jan 14, 2013 at 11:51 AM, Ben Fritz <fritzophrenic@...> wrote:
      > On Monday, January 14, 2013 10:32:04 AM UTC-6, Jack Gates wrote:
      >>
      >> > In what context? Do you want to insert the file name into the file? Access the file name on the command-line? Something else? If you tell us what you're trying to accomplish we can help better.
      >>
      >> I was thinking about using the file name in a mapping doing s///
      >> editing a chunk of text dumped in the file from a register. I really
      >> don't know what to ask because I don't really understand this enough
      >> to figure out how I might use it. In one of my emails I was asking
      >> about doing s/// and using the contents from a register on the RHS.
      >>
      >
      > What would you need the filename for? Do you need to change it at all?
      >
      > You can put the filename unchanged into the command-line or the file text using CTRL-R followed by % (if you're in the command-line, or in insert mode).
      >
      > You can access the filename in a script using expand("%"). You can add modifiers, for example if the current file is /a/b/c.txt, you can get "/a/b" with expand("%:p:h").
      >
      > You can use the filename without ever expanding it in certain commands, for example if you're editing myfile.c and want to also view myfile.h you can use a command like:
      >
      > :split %:r.h
      >
      > See :help filename-modifiers, :help expand(), :help fnamemodify()
      >
      >> Doing this manually is easier to accomplish than it is trying to get a
      >> mapping to do things automated so I don't have to do it manually.
      >>
      >> Figuring out how to use "% will probably also answer my question in
      >> the newest post I made today.
      >>
      >> I have a series of commands that are nearly complete. So I can yank
      >> some text execute the mapping and have it create a new file from start
      >> to finish with the yanked text.
      >>
      >
      > If you build the name of the new file from the current file's name, it's probably easiest to use the last method I show.
      >
      > For example, when editing a.txt, if you want to create file a.1.txt and a.2.txt, you can use:
      >
      > :new %:r.1.%:e
      >
      > If it's more complex, for example if you want to include today's date in the filename, you probably want to use the :execute and expand() instead:
      >
      > :execute "new" expand("%:r").strftime(".%Y-%m-%d.").expand("%:e")
      >
      > Also see my comment about using :write on your other thread. Maybe you don't need to yank anything.
      >

      Ben thanks! I will read those help sections and mess around with your
      examples. I think you just gave me what I was looking for. You Rock!

      --
      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.