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 :pwde 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/newnamee o Vim expandiria %para o nome do arquivo atual e %:hpara o diretório pai do nome do arquivo atual quando o comando for executado. Veja :help filename-modifiers.
<C-R>%:napenas 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.