2013-02-02 20 views
5

Hãy tưởng tượng tôi có :Vex sau khi bắt đầu vim. Tôi muốn có thể nhấn t và có các tab được nối vào cửa sổ ngược lại thay vì cửa sổ Netrw. Điều này có thể không?Netrw mở tệp thành các tab trong cửa sổ thẳng đứng đối diện

Nếu tôi bấm P Tôi có thể mở tệp vào cửa sổ phân tách nhưng tôi muốn có thể duyệt qua các tệp theo chiều dọc trong khi hiển thị cửa sổ Netrw của tôi - giống như Sublime hoặc Komodo.

Có thể?

Và có, tôi đã xóa :h netrw!

Trả lời

2

Bạn có vẻ bối rối "tab" của Vim với "tab" bạn có thể tìm thấy trong hầu như mọi chương trình khác.

Không giống như các triển khai khác, các tab của Vim không được gắn với bộ đệm. Trong Vim, "tab" hoạt động giống như những gì bạn sẽ gọi là "không gian làm việc": chúng có nghĩa là giữ cùng một hoặc nhiều cửa sổ. Những cửa sổ đó có thể hiển thị bất kỳ bộ đệm nào và bạn có thể kết thúc với cùng một bộ đệm được hiển thị trong nhiều cửa sổ trong nhiều tab!

Với ý nghĩ đó, sẽ là rất sai khi sử dụng chúng như bạn muốn. "Tab" không đại diện cho tệp và nhảy sang "tab" khác không tương đương với chuyển sang tệp khác.

Cửa sổ được tạo bởi :Vex là cửa sổ bình thường. Giống như tất cả các cửa sổ khác, nó được chứa trong một "tab" và không thể sống bên ngoài một "tab". Và bạn không thể có "tab" bên trong cửa sổ.

Vì vậy, về cơ bản, những gì bạn yêu cầu là không thể.

Nếu bạn đang ở trên một máy Mac và điều này "tính năng khác-biên tập như" là thực sự quan trọng đối với bạn (quan trọng hơn, nói, nắm lấy cách Vim), bạn có thể thử this MacVim fork có thêm một "thường xuyên "tệp explorer bên ngoài bộ đệm/cửa sổ/tab. Bạn cũng có thể thử PIDA cố gắng xây dựng một IDE xung quanh Vim; bao gồm một trình thám hiểm tệp riêng biệt.

1

Như romainl đã nói, các tab không phải là tệp (hoặc bộ đệm). Vì vậy, nếu tôi diễn giải lại câu hỏi của bạn có nghĩa là: "Tôi muốn nhấn t và có tệp xuất hiện ở cửa sổ đối diện ...". Sau đó, tôi đề nghị đọc: giúp netrw-C. Nếu bạn thực sự có nghĩa là "nối thêm" và không "xuất hiện", thì điều đó có liên quan nhiều hơn và trước khi tôi nỗ lực tìm ra cách để làm như vậy, tôi muốn biết rằng đó là điều bạn thực sự muốn nói. Netrw mới nhất (tính đến hôm nay, đó là v153f) có các tùy chọn bổ sung được đề cập trong tài liệu tham khảo trợ giúp mà tôi đã đưa ra ở trên.

7

Hầu như đã nhận được một số khoản tiền và tùy chọn .vimrc.

Dường như http://i.imgur.com/rUf19SF.png

Cách sử dụng này:

  1. chạy vim.
  2. nhấn shift enter. điều này sẽ mở netrw như là một sidebar (một cửa sổ chia nhỏ bên phải) và tập trung nó.
  3. duyệt như bình thường và nhấn enter để mở tệp. điều này sẽ mở nó trong cửa sổ bên trái theo mặc định và tập trung vào nó.
  4. nhấn control-w control-w. điều này sẽ tập trung lại netrw.
  5. duyệt như bình thường nhưng lần này nhấn control-enter để mở tệp. điều này sẽ mở nó trong một tab mới cũng chứa thanh bên netrw.

Các vimrc config:

" netrw magic 
" enable mouse usage. makes it easier to browse multiple tabs 
set mouse=a 
" hide netrw top message 
let g:netrw_banner=0 
" tree listing by default 
let g:netrw_liststyle=3 
" hide vim swap files 
let g:netrw_list_hide='.*\.swp$' 
" open files in left window by default 
let g:netrw_chgwin=1 
" remap shift-enter to fire up the sidebar 
nnoremap <silent> <S-CR> :rightbelow 20vs<CR>:e .<CR> 
" the same remap as above - may be necessary in some distros 
nnoremap <silent> <C-M> :rightbelow 20vs<CR>:e .<CR> 
" remap control-enter to open files in new tab 
nmap <silent> <C-CR> t :rightbelow 20vs<CR>:e .<CR>:wincmd h<CR> 
" the same remap as above - may be necessary in some distros 
nmap <silent> <NL> t :rightbelow 20vs<CR>:e .<CR>:wincmd h<CR> 

Hãy cẩn thận:

Các netrw "sidebar" trong mỗi tab được độc lập, có nghĩa là thư mục hiện hành trong một tab có thể không phải giống nhau trong một tab khác. Gợi ý? Nghĩ đến việc sử dụng bộ đệm netrw trong mỗi cửa sổ "sidebar", nhưng netrw sử dụng một bộ đệm mới bất cứ khi nào thay đổi các thư mục.

+0

Có thể mở thanh bên này ở tải trọng không? 'autocmd VimEnter *: Vexplore' cho các netrw khác nhau. – Lanti

+2

@Làm có, chỉ cần chia autocmd trên hai dòng 'autocmd VimEnter * rightbelow 20vs' và sau đó' autocmd VimEnter * e .' ngay bên dưới nó – unione

+0

Cảm ơn bạn, đã bình chọn! Hoạt động tuyệt vời! Mã này là một trong những giải pháp netrw đẹp nhất! 1. Một điều nữa khiến tôi bị lỗi, nếu tôi mở một tập tin mới trong một tab mới, nó vẫn mở một bản thân netrw. Có thể thiết lập không mở một netrw mới tại mỗi tab mới, khi bạn mở một tệp bằng ENTER hoặc CTRL + ENTER? 2. Có thể tạo lối tắt để mở tệp mới trong nền không? Nó sẽ rất hữu ích để mở ra rất nhanh các tập tin trong nền, mà không có netrw. – Lanti

Các vấn đề liên quan