Düzenlediğim dosyayı nasıl yeniden adlandırabilirim?


Yanıtlar:


34

Dosyayı kullanarak farklı bir adla kaydedebilirsiniz :w. Ancak bu işlem eski dosyayı kaldırmaz ve 'eski' dosya arabelleğinizde kalır, bu nedenle herhangi bir değişiklik 'eski' dosyanıza uygulanır.

:saveasyeni dosyanızı kaydeder ve yeni bir tamponda açar. Ancak eski dosyayı silmez.

Kullandığım tpope / vim-eneuch için :Movedosyaları.

: Taşı: Bir arabellek ve dosyayı aynı anda diskte yeniden adlandırın.


Bir dezavantajı :wveya :saveasbir senaryo düzenliyorsanız yürütme iznini kaybedecek olmasıdır. netrwYeniden adlandır, izinleri koruyacaktır.
wisbucky

10

Netrw'e bırakabilir ve oradaki dosyayı yeniden adlandırabilirsiniz.

Düzenlemekte olduğunuz dosya geçerli dizindeyse, şunları yapın:

:edit .

Dosyaya gidin, tuşuna basın Rve ismi değiştirin. EnterDosyayı düzenlemek için basın .

Yine de bir uyarı var: orijinal arabellek arabellek listesinde kalır. Geçerseniz, boş.

Düzenlemekte olduğunuz dosya farklı bir dizindeyse, dosya dizini ile şu şekilde değiştirebilirsiniz:

:cd %:p:h

Dizinin tamamını tüm Vim oturumu için değiştirmek istemiyorsanız, yalnızca geçerli arabellek için değiştirmek istiyorsanız, bunun yerine şunları yapabilirsiniz:

:lcd %:p:h

2
Düz yazarak :edit %:p:hda iş gibi görünüyor.
Mladen Jablanović

:Enetrw da açacak
wisbucky

6

Bunun için Rename2 eklentisini yıllardır kullanıyorum . Hem geçerli arabelleği hem de diskteki dosyayı yeniden adlandırır:

:Rename {newname}

EDIT: Bu github bir .vimrcdosya buldum :

function! RenameFile()
    let old_name = expand('%')
    let new_name = input('New file name: ', expand('%'), 'file')
    if new_name != '' && new_name != old_name
        exec ':saveas ' . new_name
        exec ':silent !rm ' . old_name
        redraw!
    endif
endfunction
map <leader>n :call RenameFile()<cr>

3

:MoveOrangTux’un dediği gibi en iyi yol kullanmak . Tamamlanmak için !komut modundaki bir bang ( ) komutunu kullanarak vi editörlerinde terminal komutları da gerçekleştirebilirsiniz .

:!mv {current_file} {new_name}
:e {new_name}

Ancak, bu yöntem eski arabelleği arabellek listenizden kaldırmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.