Làm cách nào để đổi tên tập tin tôi đang chỉnh sửa?


Câu trả lời:


35

Bạn có thể lưu tệp dưới một tên khác bằng cách sử dụng :w. Nhưng thao tác này sẽ không xóa tệp cũ và tệp 'cũ' vẫn nằm trong bộ đệm của bạn, vì vậy mọi thay đổi sẽ được áp dụng cho tệp 'cũ' của bạn.

:saveaslưu tập tin mới của bạn và mở nó trong một bộ đệm mới. Nhưng nó không xóa tập tin cũ.

Tôi sử dụng tpope / vim-eneuch để :Movetập tin.

: Move: Đổi tên bộ đệm và tệp trên đĩa cùng một lúc.


Một nhược điểm của :whoặc :saveaslà nó sẽ mất quyền thực thi nếu bạn đang chỉnh sửa tập lệnh. netrwĐổi tên sẽ giữ quyền.
wvducky

11

Bạn có thể thả xuống Netrw và đổi tên tệp ở đó.

Nếu tệp bạn đang chỉnh sửa nằm trong thư mục hiện tại, thì hãy làm:

:edit .

Điều hướng đến tệp, nhấn Rvà thay đổi tên. Nhấn Enterđể chỉnh sửa tập tin.

Mặc dù có một cảnh báo: bộ đệm ban đầu vẫn nằm trong danh sách bộ đệm. Nếu bạn chuyển sang nó, nó trống rỗng.

Nếu tệp bạn đang chỉnh sửa nằm trong một thư mục khác, bạn có thể thay đổi thành thư mục của tệp bằng:

:cd %:p:h

Nếu bạn không muốn thay đổi thư mục cho toàn bộ phiên Vim nhưng chỉ cho bộ đệm hiện tại, thì bạn có thể thực hiện thay thế:

:lcd %:p:h

2
Gõ thẳng :edit %:p:hcũng có vẻ hiệu quả.
Mladen Jablanović

:Ecũng sẽ mở netrw
wvducky

6

Tôi đã sử dụng plugin Rename2 trong nhiều năm. Nó đổi tên cả bộ đệm hiện tại và tệp trên đĩa:

:Rename {newname}

EDIT: Tôi tìm thấy đây là một .vimrctập tin trên 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

Cách tốt nhất là sử dụng :Move, như OrangTux đã nói. Để hoàn thiện, bạn cũng có thể thực hiện các lệnh đầu cuối trong trình soạn thảo vi bằng cách sử dụng tiếng nổ ( !) trong chế độ lệnh.

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

Tuy nhiên, phương pháp này không xóa bộ đệm cũ khỏi danh sách bộ đệm của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.