Eu estou usando este plugin para renomear arquivos, mas eu queria saber se é possível especificar apenas uma mudança de nome. Por exemplo, se eu renomear um arquivo que não esteja no :pwd
e não especificar seu caminho, ele será movido para o diretório atual.
Estou usando este mapeamento: nnoremap <F6> :Rename
Então, talvez eu possa colocar alguma variável após o comando: Rename que colocará o caminho relativo e o nome do arquivo atual?
Obrigado!
:!mv <oldname> <newname>
. De fato, no seu caso, você poderia executar :!mv % %:h/newname
e o Vim expandiria %
para o nome do arquivo atual e %:h
para o diretório pai do nome do arquivo atual quando o comando for executado. Veja :help filename-modifiers
.
<C-R>%:n
apenas parece levar% em conta e: n é impresso literalmente.
%:h
(isso é um h
, não um n
) antes que o comando seja executado, use <C-R>=expand("%:h")<CR>
. O =
refere-se ao registrador de expressão (consulte :help c_CTRL-R_=
), que solicita uma expressão. Uma expressão pode ser uma chamada de função; expand()
é uma função que expande seu argumento. (Veja :help expand()
.) O <CR>
termina a expressão para que seu valor seja colocado onde você digitou o Ctrl-R
. Seu mapeamento poderia ser algo como nnoremap <F6> :!mv % <C-R>=expand("%:h")<CR>/
. Note que eu escolhi não expandir o primeiro %
até que o comando seja executado.