Vim Netrw


Hôm này mình sẽ giới thiệu file manager mặc định trong vim đó là "Netrw". Lý do mình thích dùng Netrw hơn NERDTREE hay vim fern là vì đó là file manager mặc định có sẳn ta không cần phải cài đặt gì thêm. Ta chỉ cần cấu hình 1 số mapping key để thao tác nhanh hơn thôi. Hiện tại mình dùng netrw để quản lý file trong neovim.

Ta cấu hình trong neovim (.config/nvim/init.nvim):

let g:netrw_keepdir = 0

nnoremap <leader>f :Lexplore %:p:h<CR>
nnoremap <Leader>fc :Lexplore<CR>

function! NetrwMapping()

  nmap <buffer> . gh
  nmap <buffer> P <C-w>z

  nmap <buffer> FF :call NetrwRemoveRecursive()<CR>
endfunction

function! NetrwRemoveRecursive()
  if &filetype ==# 'netrw'
    cnoremap <buffer> <CR> rm -r<CR>
    normal mu
    normal mf
    
    try
      normal mx
    catch
      echo "Canceled"
    endtry

    cunmap <buffer> <CR>
  endif
endfunction

augroup netrw_mapping
  autocmd!
  autocmd filetype netrw call NetrwMapping()
augroup END


Save và update file (init.nvim):

:w
:so %

Ta làm quen với 1 số tổ hợp phím nhé.

1. % : tạo file.
2. d : tạo thư mục.
3. R : đổi tên file hoặc thư mục.
4. D : delete file hoặc thư mục rỗng.
   FF+enter: delete thư mục có chứa file bên trong.
   Cách khác để xóa thư mục chứa file là gõ 'mx': để có thể gõ command, 
   Gõ command 'rm -r': xóa tất cả file trong thư mục.
   Sau đó gõ D để xóa thư mục rỗng.
5. '.' hoặc 'gh' : để ẩn hiện file ẩn (File bắt đầu bằng dấu chấm).
6. \f  hoặc :Ex : mở netrw menu.
7. \fc : đóng netrw menu.
8. Enter : mở file xem.
9. t : mở file ra 1 tab mới.
10. p : xem nhanh  1 file.
11. P : tắt xem nhanh 1 file.

Để copy file hoặc move file trong netrw hơi khác 1 chút.

mt: target ( đích cần copy tới hoặc move file tới ).
mf: mark file (chọn file).
mc : copy file
mm : move file
mx : external command, dùng để chạy lệnh bên ngoài ví dụ như rm -r xóa file.

Ví dụ ta có cây thư mục sau:


|-abc
  |-a.txt 
|
|-b.txt

Ta muốn copy file b.txt vào thư mục abc.

Ta di chuyển vào thư mục abc gõ mt, để chọn nơi sẽ copy vào. 
sau đó chọn file b.txt gõ mf là chọn file này, 
gõ mc sẽ copy vào thư mục abc.

Như vậy ta đã biết cách dùng netrw trong vim rồi đó.