I'm trying to take my vimscript to the next level. As a follow up to my other question about generating a class definition from a file path, how would you implement the following in vimscript?
Given I have a file at lib/foo/bar/buz.rb
that looks like this:
module Foo
module Bar
class Buz
...
end
end
end
If I move the file to lib/cat/dog/cow/buz.rb
, can I create a function to quickly update the file to look like this?
module Cat
module Dog
module Cow
class Buz
...
end
end
end
end
You can use
expand('%:p:h:t')
to get the current file's directory. Add additional:h
modifiers to get parent directories. See:help filename-modifiers
.substitute('foo', '^.', '\u&', '')
will upper-case the first letter.To do the replacement in the buffer, a
:substitute
, probably with a:help sub-replace-expression
will do.