Jak mogę zmienić nazwę edytowanego pliku?


Odpowiedzi:


35

Możesz zapisać plik pod inną nazwą, używając :w. Ale ta operacja nie usunie starego pliku, a „stary” plik pozostanie w buforze, więc wszelkie zmiany zostaną zastosowane w „starym” pliku.

:saveaszapisuje nowy plik i otwiera go w nowym buforze. Ale to nie usuwa starego pliku.

Używam tpope / vim-eneuch do :Moveplików.

: Przenieś: Zmień nazwę bufora i pliku na dysku jednocześnie.


Jedną wadą :wlub :saveasjest to, że utraci on uprawnienia do wykonywania, jeśli edytujesz skrypt. netrwZmień nazwę zachowa uprawnienia.
wisbucky

11

Możesz przejść do Netrw i zmienić tam nazwę pliku.

Jeśli edytowany plik znajduje się w bieżącym katalogu, wykonaj następujące czynności:

:edit .

Przejdź do pliku, naciśnij Ri zmień nazwę. Naciśnij, Enteraby edytować plik.

Jest jednak zastrzeżenie: oryginalny bufor pozostaje na liście buforów. Jeśli przełączysz się na to, będzie puste.

Jeśli edytowany plik znajduje się w innym katalogu, możesz przejść do katalogu pliku za pomocą:

:cd %:p:h

Jeśli nie chcesz zmieniać katalogu dla całej sesji Vima, ale tylko dla bieżącego bufora, możesz zamiast tego:

:lcd %:p:h

2
:edit %:p:hWydaje się, że pisanie na wprost też działa.
Mladen Jablanović

:Eotworzy również netrw
wisbucky

6

Byłem przy użyciu wtyczki Rename2 o tym od lat. Zmienia nazwę zarówno bieżącego bufora, jak i pliku na dysku:

:Rename {newname}

EDYCJA: Znalazłem ten .vimrcplik na github :

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

Najlepszym sposobem jest użycie :Move, jak powiedział OrangTux. Dla kompletności możesz także wykonywać polecenia terminalowe w edytorach vi za pomocą bang ( !) w trybie poleceń.

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

Jednak ta metoda nie usuwa starego bufora z listy buforów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.