Quy trình công việc nào sẽ sử dụng khi chỉnh sửa các dự án đa biến lớn


7

Gần đây tôi đã chuyển nhiều công việc hơn từ IntelliJ sang vim. Với một số bổ trợ và cài đặt chỉnh sửa, tôi không bỏ lỡ IDE nhiều.

Một điều tôi bỏ lỡ là dễ dàng điều hướng một cây thư mục lớn của các tệp nguồn.

Tôi đang làm việc trên một dự án cỡ trung bình với 39 tệp nguồn. chia ra một số ít các thư mục.

IntelliJ sẽ hiển thị thư mục dự án như điều này(không phải hình ảnh của tôi). Nếu bạn không quen thuộc với IDE, bạn có thể nhấp vào một trong các tệp để mở nó trong cửa sổ chỉnh sửa chính của bạn hoặc tách.

Ngay bây giờ tôi chỉ có một loạt các Tmux mở, nhưng điều đó chỉ hiệu quả đối với hai hoặc ba tệp trước khi các bảng quá nhỏ.

Thanh bên Tmux sao chép trực quan tính năng, nhưng bạn vẫn cần nhập thủ công tên tệp + đường dẫn để chỉnh sửa.

Vim là người bản địa :Ex:Sexhoạt động tốt, nhưng (theo như tôi có thể nói) không có cách nào để sử dụng chúng để mở một tệp trong một phân chia khác. Tôi muốn có thể mở nó và có thể sử dụng nó để mở các tệp trong bộ đệm / chia tách hiện có.


3
Hãy thử sử dụng otrên một tệp khi sử dụng netrw (netrw là những gì :Exmở ra).
Tumbler41

Câu trả lời:


6

Tôi đã sử dụng giấm trong một thời gian dài và nhờ "cách thức tpope" đã dạy cho tôi các netrwphím tắt riêng (có chế độ xem dạng cây bằng cách này, nhấn i3 lần). Tất cả những gì tôi nhớ trên một Vim trần là -ánh xạ để đi lên một thư mục.

Mặc dù tôi đã chuyển sang dirvish , tốc độ cực nhanh trên các thư mục lớn và có một cách tiếp cận thậm chí còn thành ngữ hơn; từ README:

Con đường hoa được thiết kế để làm việc với cơ chế tích hợp Vim và bổ sung plugin

Mỗi dòng là một filepath (ẩn bằng cách che giấu )

Không bao giờ sửa đổi hệ thống tập tin

Lựa chọn trực quan mở nhiều tệp

Không giống như NERDTree và các plugin khác bắt chước IDE cổ điển, hai plugin này sử dụng bộ đệm hiện tại để hiển thị danh sách tệp buộc một luồng công việc tập trung hơn và cuối cùng cho phép nhiều không gian hơn cho nội dung. Không có gì ngăn cản bạn mở netrw hoặc dirvish theo cách phân chia theo chiều dọc như ngăn kéo dự án.

Neovim w / dirvish & ctrlp

Tôi cũng được sử dụng để ctrlp (hiển thị ở trên) để nhanh chóng tìm thấy các tập tin trong thư mục hiện tại. Cấu hình này được lấy cảm hứng từ bài viết trên ifbot Grepping nhanh hơn trong Vim , thay thế grepbằng agkhi có sẵn:

if executable('ag')
  " Use Ag over Grep (additional options: --column, --ignore-case)
  set grepprg=ag\ --nocolor\ --nogroup\ --vimgrep

  " Use The Silver Searcher in CtrlP for listing files
  " Respect .gitignore and .agignore, ignores hidden files by default
  let g:ctrlp_user_command = 'ag --nogroup --nocolor --files-with-matches --hidden --ignore .git -g "" --literal %s'
  " Disable per-session caching
  let g:ctrlp_use_caching = 0
else
  " Exclude .gitignore patterns
  let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -co --exclude-standard']
endif

Nhưng một bản đồ đơn giản có thể thực hiện thủ thuật, chỉ cần gõ :e **/*theo mẫu và chu trình với <Tab>.

" Find a file in current working directory
nnoremap <Leader>e :e **/*

2

Tôi thực sự thích Ranger là một người chọn tập tin. Không giống như NERDTree, nó chỉ hiển thị khi bạn cần, có Vim như các ràng buộc chính và cũng có thể được sử dụng mà không cần Vim.

hình ảnh



1

Bạn có thể sử dụng trình duyệt tệp tích hợp netrw trong bảng điều khiển bên. Dưới đây là một giới thiệu nhanh:

  1. Mở thư mục trong netrw, có thể bằng vim .hoặc:e folder

  2. Chọn một tệp và nhấn vđể mở tệp trong phần tách dọc [v].

  3. Nhưng bạn có thể muốn trình duyệt tập tin ở bên trái. Lượt truy cập Ctrl-W x( sửa lỗi vĩnh viễn )

  4. Bạn có thể muốn cửa sổ hiện tại của bạn rộng hơn. Đánh20 Ctrl-W >

  5. Lần tới khi bạn muốn mở tệp, hãy nhấn Shift-Pthay vì vđể mở tệp trong bảng tệp hiện có (cửa sổ hiển thị [P]).

Phần thưởng: Như tên cho thấy, netrw thậm chí có thể hoạt động qua mạng (FTP, SFTP). Tôi không chắc liệu các plugin cây tập tin như NerdTree VTreeExplorer có cung cấp hành vi đó không.

Bạn có thể lấy netrw để hiển thị cây bằng cách bấm iphím vài lầ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.