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 é umh
, não umn
) 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 oCtrl-R
. Seu mapeamento poderia ser algo comonnoremap <F6> :!mv % <C-R>=expand("%:h")<CR>/
. Note que eu escolhi não expandir o primeiro%
até que o comando seja executado.Respostas:
O Vim mantém o nome do arquivo atual no
%
registro. Você pode inserir o valor de um registro na linha de comando digitandoCtrl-R
seguido pelo nome do registrador. Portanto, você deve ser capaz de digitar<F6>
Ctrl-R
%
(sem os espaços intervenientes) e ver algo assim na linha de comando:Você pode então editar o último componente do caminho completo para alterar o nome.
Observe que o Vim se expande
%
para o nome do caminho completo somente se o diretório de trabalho atual for diferente do diretório pai do arquivo. Caso contrário, o Vim se expande%
para apenas o nome do arquivo.Veja também
fonte
nnoremap <F6> :Rename <Ctrl>R %
mas isso apenas imprime literalmente em vez de simular as teclas pressionadas.<C-R>%