VIM: Làm cách nào để mở một tệp ở bên phải dưới dạng vsplit từ bảng điều khiển NerdTree bên trái?


83

Tôi đã cài đặt plugin NerdTree.

Làm cách nào để mở tệp ở bên phải dưới dạng vsplit từ bảng điều khiển NerdTree bên trái?

Câu trả lời:


86

Có một slệnh, nhưng nó sẽ mở một phần tách tệp ở bên trái bộ đệm hiện tại. Mặc dù sau đó bạn có thể nhấn Ctrl+ W rđể hoán đổi các cửa sổ.


3
Không sao cả, nhưng nếu tôi muốn mở một tệp khác đang nhập s, thì tôi nhận được một cửa sổ được chia nhỏ khác, nhưng tôi muốn thay thế cửa sổ được chia cũ hơn bằng tệp đã mở hiện tại, tôi có thể làm thế nào?
rùng mình

5
Có vẻ như sau khi thêm set splitright, như @PrinceGoulash đã đề xuất, strên một tệp bên trong NerdTree sẽ mở phần tách ở bên phải mà không cần thực hiện Ctrl-W r. Nếu tôi hiểu bạn đúng, nếu bạn chỉ muốn sử dụng hai cửa sổ được chia theo chiều dọc, bạn có thể chuyển sang cửa sổ cũ hơn và mở một tệp mới bên trong nó thông qua NerdTree bằng cách nhấn Enter.
grimgav

Không, điều tôi muốn nói là, có hai cửa sổ vsplit, bên trái là menu nerdtree, nếu tôi nhấn "s" thì nó sẽ chuyển sang phía bên phải. không còn cửa sổ vsplitted sẽ xuất hiện.
rùng mình

@guru Sau đó, bạn muốn 'mở' cửa sổ mới, không phải 'chia nhỏ' nó. Một cửa sổ luôn được mở trong / thay thế bộ đệm được chọn cuối cùng. Thật không may, nó rất có thể sẽ là trái một trong hai cái đã mở của bạn. Không lý tưởng, nhưng một tùy chọn có thể là xoay các cửa sổ xung quanh Ctrl+W R, sau đó mở tệp và xoay ngược lại.
JHannes

159

Để vsplitđặt bộ đệm mới ở bên phải bộ đệm hiện tại:

set splitright

Tương tự, để splitđặt bộ đệm mới bên dưới bộ đệm hiện tại:

set splitbelow

Tuy nhiên, tôi chưa thử điều này với NerdTree.


3
được, nhưng làm cách nào để mở tệp vsplited thay thế tệp cũ hơn?
shibly

1
@shibly Nếu bạn đã splitrightthiết lập, thì bạn có thể thoát khỏi tệp hiện đang ở bên phải vsplit newfilenamevà điều đó sẽ đặt tệp mới vào vị trí cũ. Bạn cũng có thể làm những người trong một dòng như thế này: q | vsplit newfilename. Điều này giả định rằng tệp bên phải là tệp đang hoạt động.
SunSparc

1
vừa được thử nghiệm, splitright hoạt động tốt với nerdtree. Do lưu ý rằng điều này sẽ làm cho tất cả chia rẽ hơn nữa ngang thay vì dọc trừ khi một công dụngvsplit
Dwight Spencer

3

Đây là một chút hack, nhưng cách tôi làm là như thế này:

  1. Đặt con trỏ vào cửa sổ tôi muốn mở tệp vào
  2. Nhấn <leader>n<leader>n(thao tác này đóng NERDtree và sau đó mở lại bằng con trỏ trong NERDtree)
  3. Chọn tệp

Trên hệ thống của tôi, tính năng này sẽ mở ra trên cửa sổ cuối cùng tôi vừa mở nếu tệp chưa mở trên màn hình của tôi. Bắt đầu trong cửa sổ bạn muốn mở tệp của mình

Bắt đầu trong cửa sổ bạn muốn mở tệp của mình vào.

Sau <code> <leader> n <leader> n </code>, bạn sẽ quay lại NERDTree

Nhấn <leader>n<leader>nđể đóng và mở lại NERDTree

Chọn tệp bạn muốn mở!

Chọn tệp bạn muốn!

Nhanh chóng C-w =sẽ đưa cửa sổ của bạn trở lại tỷ lệ thích hợp.


giải pháp tuyệt vời. bởi <leader>nbạn có ý nghĩa <C-n>?
Hafenkranich

3

Không chắc liệu có ai khác vẫn đang đấu tranh với điều này hay không, nhưng đây là cách tôi xử lý nó.

Bạn có thể dùng

:ls 

để liệt kê các bộ đệm có sẵn. Nó sẽ trông giống như sau:

1 "foo.txt"
2 "blame_the_user.java"

:b1 để chọn foo.txt

:b2 vì blu_the_user.java

Phương pháp này có thể được thực hiện từ bất kỳ thiết lập cửa sổ nào bằng cách sử dụng :sphoặc :vs.

Mở bộ đệm bạn muốn tách trước.

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.