Tại sao các chuyên gia Vim thích bộ đệm hơn các tab?


243

Tôi không hiểu bộ đệm. Khi tôi mở 3 tệp trên cùng một tab và đóng cửa sổ của mình, tôi thường thấy khó chịu khi phát hiện lần sau tôi mở một trong những tệp đó có các tệp hoán đổi lạ kéo dài và gửi cho tôi những tin nhắn phiền phức. Nhưng hết lần này đến lần khác tôi đọc rằng những thứ này là niết bàn năng suất mà tôi đang bỏ lỡ và các tab được tạo ra cho người plebeian sử dụng.

Vì vậy, tôi hỏi bạn, chuyên gia Vim: những lợi thế của việc sử dụng bộ đệm trên các tab là gì? Tôi không thấy sự khác biệt có thể khác biệt sâu sắc như thế nào, nhưng tôi chỉ xem xét bản thân mình ở cấp độ trung cấp cho người mới bắt đầu vận hành Vim. Có :ls :b#thực sự là nhanh hơn nhiều so với gting xung quanh? Tôi cảm thấy nó phải đi sâu hơn thế này.


6
Đối với những người học Vim hoặc đến Vim chịu ảnh hưởng lớn từ các biên tập viên dựa trên GUI khác, tôi khuyên bạn nên đọc câu trả lời đầu tiên của @Jonathan Brink và sau đó quay lại câu trả lời hàng đầu tại đây.
icc97

1
Đừng lo lắng quá nhiều về nó. Tôi sử dụng các tab làm cách điều hướng chính giữa các tệp. Như bạn nói, <#> gt rất dễ gõ. Để làm cho nó dễ sử dụng hơn, tôi tùy chỉnh dữ liệu tab của mình để bao gồm số tab. Nếu tôi cần xem nhiều bộ đệm cùng một lúc, tôi sẽ chia một cửa sổ mới trong tab. Bất chấp những gì @romaini tuyên bố, cách sử dụng Vim này khiến tôi rất năng suất vì nó phù hợp với những ẩn dụ cá nhân của tôi. Cũng lưu ý rằng trong sự nghiệp lập trình viên 37 năm (cho đến nay), tôi chưa phải mở hơn năm hoặc sáu tệp cùng một lúc - và điều đó rất hiếm khi. Hãy làm những gì cho bạn. :)
Tony

Làm những gì hoạt động. Một số người sử dụng rất nhiều tệp trong một phiên để bộ đệm quan trọng hơn rất nhiều. Ngay cả Bram Moolenaar cũng nói "sắp xếp chúng theo ý muốn". Mở 20 tab không phải là cách đúng, nhưng các tab cho một vài tệp không phải là kết thúc của thế giới. Giải pháp của Bram để quản lý nhiều tệp đang mở một số phiên cuối. Anh ấy nói rằng đó là cách anh ấy làm điều đó, nhưng không phải đây là cách mọi người nên làm điều đó.
thủ công

Sự khác biệt rõ ràng nhất dường như không được làm nổi bật chính xác là nếu bạn ở trong một tab, bạn có thể xem nhiều bộ đệm cùng một lúc bằng cách :splitnhét vào "cửa sổ". Nếu bạn có tất cả bộ đệm (tệp) trong các tab riêng biệt, bạn sẽ không có chế độ xem đồng thời. Tôi khuyên bạn nên học vim bằng cách sử dụng 1 tab để bắt đầu và làm quen với việc chia tách.
NeilG

Câu trả lời:


500

Như ZyX đã nói trên #vim, câu hỏi này nghe có vẻ như "Tại sao các chuyên gia của Vim thích ngon hơn ấm?" .

"Chuyên gia Vim" không thích bộ đệm hơn các tab: họ sử dụng bộ đệm làm proxy cho tệp và trang tab làm không gian làm việc. Bộ đệm và trang tab có các mục đích khác nhau, vì vậy việc ưu tiên cái này không có ý nghĩa gì.

Vấn đề với bộ đệm và tab là một trong những nhầm lẫn , gây ra bởi sự kết hợp của các sự kiện độc lập.

  1. Hầu hết các trình soạn thảo văn bản và IDE "hiện đại" đều sử dụng phép ẩn dụ tab để thể hiện các tệp được tải. Ẩn dụ đó hoạt động như một hệ thống thông tin - nó cho người dùng thấy những tập tin nào được mở và trạng thái của chúng - và như một thiết bị tương tác - nó cho phép người dùng thao tác (sắp xếp lại, chọn, đóng, những tập tin đã mở. Mặc dù có nhiều hạn chế, các tab ở khắp mọi nơi và mọi người đã quen với chúng và mong đợi chúng ở mọi nơi.

  2. Vim đã giới thiệu các trang tab trong 7.0 như một cách để người dùng của nó tạo ra "không gian làm việc" đặc biệt. Không có gì trong các tính năng của chúng, các tùy chọn cụ thể, các lệnh cụ thể hoặc các :helpphần của chúng cho thấy rằng các trang tab có thể hoặc nên được sử dụng làm proxy tệp.

    Tất nhiên, không có gì ngoại trừ tên sự xuất hiện của "trang tab", điều này dẫn đến nhiều nhầm lẫn.

  3. Không có :set hidden, được tắt theo mặc định và không dễ tìm, Vim làm cho không thể chuyển sang bộ đệm khác mà không ghi bộ đệm hiện tại hoặc từ bỏ các thay đổi của nó. Người dùng mới, không biết về tùy chọn đó, không có lựa chọn nào khác ngoài việc chuyển sang sử dụng các cửa sổ nặng hoặc sử dụng tính năng "giống như tab" gần nhất mà họ có thể tìm thấy: các trang tab.

"Trang tab" là một lựa chọn tên không may cho tính năng đó, đặc biệt là trong thời đại bị chi phối bởi ý tưởng rằng đọc tài liệu là một sự lãng phí thời gian.

Trong Vim, các trang tab là một sự trừu tượng được xây dựng trên đỉnh của các cửa sổ, bản thân nó là một sự trừu tượng được xây dựng trên các bộ đệm. Mỗi cấp độ mới thêm các tính năng hữu ích nhưng hạn chế quy trình làm việc của bạn.

"Cách đệm"

Với quy trình làm việc dựa trên bộ đệm, các tệp bạn đang làm việc được phân phối dọc theo một chiều. Bạn có thể chuyển qua bộ đệm của mình, bạn có thể truy cập vào bộ đệm cụ thể bằng cách nhập một phần tên của nó (đã hoàn thành) hoặc số của nó, bạn có thể xen kẽ giữa các bộ đệm, bạn có thể nhắm mục tiêu chúng khá dễ dàng. Về cơ bản không có ma sát.

  1. Tám bộ đệm mở, chỉ có một cái nhìn thấy:

    Tám bộ đệm mở

  2. Chuyển đổi theo số:

    Chuyển đổi theo số

  3. Chuyển đổi theo tên:

    Chuyển đổi theo tên

Bộ đệm là proxy của tập tin Vim. Nếu bạn nghĩ về các tập tin, bạn nghĩ về bộ đệm.

"Cách cửa sổ"

Với quy trình làm việc dựa trên cửa sổ, các "tệp" của bạn đều được phân phối dọc theo cùng một chiều "ảo" giống như khi bạn chỉ sử dụng bộ đệm dọc theo hai kích thước "vật lý" khác. Nhưng các không gian cartesian trong đó các kích thước đó được tìm thấy gần như tách biệt hoàn toàn: di chuyển sang bộ đệm khác vẫn có nghĩa là "di chuyển sang tệp khác" nhưng di chuyển sang cửa sổ khác thì không. Bộ đệm tương ứng với tệp mong muốn có thể được hiển thị trong cửa sổ đó nhưng nó cũng có thể được hiển thị trong một tệp khác, có thể trong trang tab khác hoặc hoàn toàn không.

Với các cửa sổ, việc điều hướng giữa các tệp đang mở trở nên quá phức tạp hoặc quá đơn giản, ngay cả với 'switchbuf':sb. Chủ yếu là vì bạn buộc phải sử dụng hai bộ lệnh cho những gì về cơ bản là giống nhau: truy cập bộ đệm.

Windows có công dụng của chúng, như được mô tả dưới đây, nhưng chúng không có những gì cần thiết để thay thế bộ đệm trong quy trình làm việc của bất kỳ ai.

Ở đây tôi đang làm việc trên một màu sắc Vim. Hai cửa sổ là các khung nhìn khác nhau của cùng một bộ đệm: cửa sổ trên cùng đóng vai trò tham chiếu, với một bảng mã màu được sử dụng trong bảng màu và cửa sổ dưới cùng là nơi tôi làm việc:

Làm việc trên một màu sắc

Windows không được thiết kế dưới dạng proxy và không thể tạo thành các tệp: chúng là "thùng chứa" hoặc "khung nhìn" được thiết kế để cung cấp cho bạn chế độ xem vào bộ đệm. Không nhiều không ít.

"Cách tab"

Với quy trình làm việc dựa trên tab, về cơ bản, bạn cố gắng bắt chước trải nghiệm người dùng mà bạn đã quen với trình chỉnh sửa trước đó trong khi hoàn toàn bỏ qua bản chất của các trang tab của Vim. Nếu chúng ta quên trong chốc lát rằng chiến lược này nói chung là rất không hiệu quả, nó cũng là bất khả thi, giống như với các cửa sổ, để buộc Vim để tuân thủ với "một file = một tab" mô hình mà không làm mất rất nhiều tính linh hoạt.

Vẫn làm việc với các tệp giống như trên, tabline chiếm một không gian đáng kể mà hầu như không có lợi ích. Tất cả các tệp của tôi và tất cả các tab của tôi đều được gọi javascript*.vimvì vậy tôi không thể làm 3gtđược và tự tin rằng tôi sẽ kết thúc ở đúng nơi và không thể truy cập một tab cụ thể theo tên. Thêm vào đó, thực tế là nhãn của nó rất có thể rất hữu ích nhưng hoàn toàn hợp lý [Quickfix List]. Vì không có cách nào thực tế để buộc tệp / bộ đệm vào trang tab, về cơ bản bạn chỉ còn một cách thực tế để điều hướng giữa các trang tab / bộ đệm / tập tin: đi xe đạp.

Và vâng, tabline của tôi bị ghi đè chỉ với 8 tab, hãy tưởng tượng nếu tôi có 20!

  1. Tám bộ đệm mở trong tám trang tab (sai)

    Sai lầm

  2. Hai tab cho hai nhiệm vụ cụ thể (phải)

    Đúng

Các trang tab là "vùng chứa" hoặc "khung nhìn" được thiết kế để chứa một hoặc nhiều cửa sổ, bản thân chúng cũng là "vùng chứa" được thiết kế để chứa bộ đệm.

Tóm lại là

"Chuyên gia Vim" (giả sử tôi có thể nói như thể tôi là một người) không thích bộ đệm hơn các tab: họ chỉ sử dụng Vim vì nó được thiết kế và hoàn toàn thoải mái với thiết kế đó:

  • "Chuyên gia Vim" có 2, 30 hoặc 97 bộ đệm được tải và rất vui khi họ không phải đối phó với phân phối không gian;

  • khi họ cần so sánh hai tệp hoặc làm việc trong một phần của bộ đệm hiện tại trong khi vẫn giữ một tệp khác làm tài liệu tham khảo, "chuyên gia Vim" sử dụng các cửa sổ vì đó là cách chúng được sử dụng;

  • khi họ cần làm việc một thời gian trên một phần riêng biệt của dự án mà không gây rối với chế độ xem hiện tại của họ, "chuyên gia Vim" tải một trang tab hoàn toàn mới.


10
Đối với một số liên kết bổ sung thấy tôi sử dụng bộ đệm hiệu quả bài
Peter Rincker

7
@DavidEG, có 20 bộ đệm hoàn toàn không có vấn đề gì nên thực sự không cần một plugin nào. Mặt khác, 20 trang tab - cho dù chúng có thuyết phục được tệp proxy hay không - không thể phù hợp với hầu hết các màn hình, plugin hay không.
romainl

2
@Kache, vâng, đó chính xác là cốt lõi của quan điểm của tôi: bạn có thể sử dụng các cửa sổ và trang tab cho những gì chúng là nhưng không phải là proxy tệp. Vì vậy, đối số không phải là mọi người nên sử dụng trang tab hay bộ đệm mà là mọi người có nên sử dụng trang tab làm proxy tệp hay không.
romainl

14
Là một “chuyên gia Vim” Tôi có thể nói rằng hơn 4 trăm bộ đệm “mở” (thực sự “được liệt kê, nhưng bốc dỡ, ngoại trừ một số ít những người”) là một tình huống thường xuyên khi tôi đối phó với dự án như NeoVim (Tôi chỉ đơn giản là mở tất cả *.c, *.h, scripts/*test/**/*.luacác tập tin). Cho rằng thiết bị đầu cuối của tôi chỉ có 239 cột rộng một tệp trên mỗi tab Cách tiếp cận không thể sử dụng.
ZyX

3
Và cho rằng có một số bổ trợ (Command-T, Hoài) giúp cho việc chuyển đổi giữa bộ đệm và / hoặc tệp dễ dàng hơn bằng cách sử dụng các tab cho bất kỳ dự án tương đối lớn nào cũng không có ý nghĩa. Và neovim với các tập tin thú vị của ≈500 là một dự án lớn, nhưng không phải là lớn nhất. Khi bạn phải đối mặt với sự cần thiết phải xử lý các dự án như vậy, bạn luôn sử dụng một số loại tìm kiếm để điều hướng nó (tìm kiếm tệp / thẻ với Command-T và bạn bè, nhiều cách khác nhau để đi đến định nghĩa biểu tượng) và do đó bạn hoàn toàn không có lý do gì để sử dụng các tab bằng cách này: trong mọi trường hợp, bạn sẽ không sử dụng chức năng giới hạn tab để điều hướng dự án.
ZyX

88

Tôi đã từng giữ mọi bộ đệm trong một tab riêng biệt, nhưng tôi đã mệt mỏi vì liên tục gtgTđi khắp nơi.

Tôi cũng cảm thấy rằng bộ đệm quá khó để quản lý.

Dưới đây là một số kỹ thuật hoàn toàn thay đổi quan điểm trước đây của tôi:

Đây là quy trình làm việc điển hình của tôi:

  • Mở Vim và sử dụng :e(thường là với biểu thức chính quy :e src/**/F*Bar.js) để mở bộ đệm
  • Nhận ra tôi cần mở một tập tin khác. Sử dụng :echo điều đó là tốt. Nếu tôi muốn chuyển đổi giữa bộ đệm này và bộ đệm hiện đang mở, tôi sẽ sử dụng :sphoặc :vspđể mở nó trong một cửa sổ riêng biệt.
  • Lặp lại cho đến khi tôi nhận được 3-5 tệp mà tôi sẽ chuyển đổi giữa việc sử dụng các kỹ thuật trong danh sách dấu đầu dòng ở trên để bay giữa các bộ đệm của bạn.
  • Nếu tôi muốn "bắt đầu lại" với bộ đệm của mình, chỉ cần đóng Vim và mở lại.

Tôi cảm thấy rằng sau một tuần buộc phải sử dụng các mẫu mới này, việc hình dung bộ đệm nào tôi đã mở trở nên dễ dàng hơn và làm thế nào để truy cập bất kỳ một trong số chúng chỉ trong một vài nét tự động.


24
Thật xấu hổ khi những lời giải thích thân thiện với người dùng / người mới như thế này nhận được khoảng 3% trong số những câu trả lời rất phức tạp, xúc phạm đến những câu trả lời quá phức tạp như câu trả lời hàng đầu ở đây. Tôi thậm chí không biết đó gTlà lệnh để chuyển đổi các tab, tôi đã tìm kiếm sự thay thế cho ctrl+tab. Vì vậy, cảm ơn bạn đã thực sự giúp đỡ một người dùng mới thay vì chỉ khiến họ cảm thấy ngu ngốc.
icc97

11
Tôi phải nói rằng nhận xét của tôi không công bằng với câu trả lời của @ romainl, anh ấy rất vui khi trả lời những câu hỏi tôi có về nó. Nhưng chắc chắn là ai đó đang cố gắng học Vim, câu trả lời của bạn dễ hiểu hơn nhiều, nhưng câu trả lời của anh ấy hoàn chỉnh hơn một khi bạn thực sự biết thêm một chút.
icc97

3
Tôi nghĩ rằng câu trả lời của @ romainl cực kỳ hữu ích và cho chúng ta một bức tranh rõ ràng về cách bộ đệm, cửa sổ và tab được thiết kế và cách chúng được sử dụng. Mặc dù vậy, tôi nghĩ rằng người dùng Vim có cơ hội trả lời các câu hỏi theo cách bạn không làm phiền thời trang và điều đó có thể gây nản lòng.
keyofnight 16/12/18

3
Không thể nhớ tôi đã lấy nó từ đâu, nhưng nnoremap <leader>b :ls<CR>:b<space>khá hay để chuyển đổi bộ đệm nhanh chóng, vì nó hiển thị cho bạn một danh sách các bộ đệm hiện đang mở. Ngoài ra, tên một phần được chấp nhận (miễn là chỉ có một trận đấu).
ness101

1
Phương pháp này cũng có lợi ích thực sự tuyệt vời của tính năng tự động hoàn thành của vim (mặc định, không có bổ sung). Vì bạn đang sử dụng nhiều bộ đệm, khi bạn ở chế độ chèn và thực hiện ctrl Nhoặc ctrl P(P là những gì tôi thường sử dụng), nó sẽ cung cấp cho bạn một danh sách các từ để hoàn thành những gì bạn đang gõ ... Nó thông minh dựa trên hiện tại của bạn bộ đệm, những cái trong phần tách, những cái bạn vừa xem, và mọi tệp đang mở khác!
g19fanatic

12

Nhược điểm của các tab là bạn chỉ có thể nhìn thấy nội dung của một lần. Vì vậy, nếu bạn sử dụng chúng như trong trình duyệt, bạn sẽ mất việc xem nhiều bộ đệm cạnh nhau hoặc thậm chí xem các phần riêng biệt của cùng một tệp trong phần tách. Do đó, nhiều người khuyên chỉ nên sử dụng các tab để tách riêng các không gian làm việc khác nhau (ví dụ: có một cho một dự án Java, một cái khác cho danh sách việc cần làm, một phần ba để hack một tập lệnh ở bên cạnh).

Các vấn đề bạn mô tả cho thấy có vẻ như bạn đang sử dụng Vim sai. Hoặc có (hầu hết) một ví dụ duy nhất, dành riêng. Sau đó, bộ đệm bị ẩn sẽ chỉ đơn giản là "xuất hiện lại" nếu bạn chỉnh sửa lại chúng (và bây giờ bạn có thể sử dụng danh sách bộ đệm để gọi lại chúng) và sẽ không có thông báo tệp hoán đổi. Hoặc, sử dụng các phiên bản Vim riêng cho mỗi dự án / tệp / chỉnh sửa phiên, nhưng sau đó tạo thói quen cho :quittừng phiên bản đầy đủ khi bạn thực hiện với tệp.


Tôi sử dụng chia đôi khi. Tôi không biết họ đã được coi là "sử dụng bộ đệm". Đó thực sự là một khái niệm bí ẩn.
2c2c

1
Là một khám phá lại các tab thú vị, tabman có thể tạo bảng điều khiển bên giống NerdTree, chi tiết tất cả các bộ đệm khi chúng được hiển thị trong mỗi tab.
llinfeng

7

Một mẹo khác, khi sử dụng tên bộ đệm làm đối số cho: bộ đệm, bạn không phải chỉ định toàn bộ tên. Tuy nhiên, nếu có nhiều bộ đệm khớp với đối số đã cho, bộ đệm sẽ không được chuyển.

Bất kỳ đoạn nào của tên bộ đệm có thể được sử dụng để khớp. Ví dụ: nếu bạn có bộ đệm request_manager.javaqueue_manager.javasau đó :buffer quehoặc :b quekhớp cả hai, nhưng sẽ chuyển sang queue_manager.java khi nó khớp với lúc đầu.


3

Tôi sử dụng các tab, Ctrl- Pvà các phiên Vim trong quy trình làm việc của tôi và đã hơn một năm nay:

  • Tôi đã )(ánh xạ tới "đi tới tab tiếp theo" và "chuyển đến tab trước" tương ứng. tnmở một tab mới. Tôi cũng sử dụng tabm để giúp giữ mọi thứ ngăn nắp.

  • Tôi sử dụng phiên Vim cho các nhóm tệp liên quan đến câu chuyện / lỗi hiện tại tôi đang làm việc, thường được thực hiện theo thể loại. Các phiên này được ghi đè trong quá trình của quá trình.

  • Tôi vẫn chưa tìm thấy bất cứ điều gì tốt hơn Ctrl- Pnhưng phải mất một chút để xử lý tất cả các tệp để tìm.


1

Tung 2c vào đống.

TLDR; :b *part-of-filename*là cách tốt nhất để tìm một tệp bạn cần trong danh sách bộ đệm, tức là nó NHANH CHÓNG và có tải nhận thức LESS hơn số bộ đệm, tab hoặc cửa sổ để theo dõi tệp.

Không có gì cho tôi khi mở 30 bộ đệm (Tức là tôi chưa từng dọn phòng) và vẻ đẹp của bộ đệm được sử dụng - tốt là nó không làm tôi chậm lại chút nào. Trên thực tế, nó tăng tốc mọi thứ khi bốn ngày sau khi tôi mở tập tin tôi cần, gọi :b *part-of-filename*và nó xuất hiện một cách kỳ diệu, gây ấn tượng với đồng nghiệp và cả những người theo chủ nghĩa tập thể mờ ám.

Bộ đệm là cho các tập tin.

Có hiệu quả:

  • Mở một tập tin quan trọng đầu tiên từ một thư mục gốc được chọn rất tốt
  • Mở các tệp tiếp theo bằng :e
  • Sử dụng lsTẤT CẢ thời gian khi bạn lần đầu tiên bắt đầu để có được một mô hình tinh thần tốt (bạn không thể tìm hiểu những gì bạn không thể nhìn thấy, về mặt tinh thần hoặc nghĩa đen)
  • Không bao giờ :q, nó thổi
  • Nhập :bvào bộ nhớ cơ bắp của bạn
  • :b1 là tốt cho tập tin đầu tiên bạn biết bạn đã mở, nếu không, số và chữ nhanh chóng vụng về
  • :b# tốt cho việc chuyển sang tập tin cuối cùng của bạn, đây là một nhu cầu phổ biến
  • :bd#phù hợp khi bạn chuyển sang tệp tạm thời, thực hiện những gì bạn cần làm, chuyển lại :b#và bây giờ muốn đóng tệp tạm thời đó
  • :b *part-of-filename* nếu không thì là cách tốt nhất để tìm một tệp bạn cần trong danh sách, tức là nó NHANH CHÓNG và có tải nhận thức LESS hơn số bộ đệm, tab hoặc cửa sổ để theo dõi tệp.

Khó chịu duy nhất :b *part-of-filename*là đôi khi bạn chưa mở tệp và bạn cần quay lại :e path/to/full-filenametrước.

Tab là để phân biệt các tập tin thực sự không liên quan.

Hoặc giữ một bố cục cửa sổ cụ thể tiện dụng (từ chối trách nhiệm: Tôi chưa bao giờ sử dụng nó cho việc này).

Hoặc cho các tập tin hiếm khi được sử dụng, nhưng cần dự đoán. Đối với tôi, đó thường là một commitMessagetập tin mà tôi chú thích khi tôi làm việc vì vậy tôi không phải suy nghĩ quá nhiều khi đến lúc phải thực hiện một cam kết. gtnhanh hơn :b com<enter>(nếu bạn cảm thấy may mắn, nếu không :b com<tab><enter>)

  • :tabe commitMessage
  • gthoặc gTcũng là một bộ nhớ cơ yêu thích

Phân chia cửa sổ là để so sánh trực quan thông tin

Hoặc có quyền truy cập ngay vào thông tin quan trọng (trung thực, trừ khi thông tin đó là thứ gì đó tôi cần cập nhật trực tiếp với :etức là tệp nhật ký, tôi thường chỉ cần kéo nội dung vào tệp hiện tại và xử lý ở đó).

  • :vsphoặc C-w vmở một phân chia dọc tức là trái | đúng, sau đó sử dụng :bhoặc :eđể có được tập tin bạn muốn
  • :sphoặc C-w smở một phân chia ngang tức là trên / dưới
  • C-w C-w tức là gấp đôi Ctrl-w, xoay bạn xung quanh các cửa sổ có sẵn
  • C-w c đóng cửa sổ hiện tại
  • C-w o đóng tất cả các cửa sổ khác, giữ CHỈ hiện tại

Câu trả lời cực kỳ hữu ích, nên có nhiều cách nâng cao hơn. Cảm ơn những lời khuyên, đặc biệt là cái nhìn sâu sắc về quy trình làm việc của bạn với :b#:bd#!
Alacritas

0

Thêm chúng vào .vimrcvà bắt đầu yêu bộ đệm:

:nnoremap <Tab> :n<cr>
:nnoremap <S-Tab> :N<cr>

Bằng cách đó, bạn có thể quay vòng tiến / lùi thông qua chúng ở chế độ bình thường thông qua Tab/ ShiftTab.


5
Đừng làm vậy. Bạn sẽ mất bản đồ cho <C-I>. Bản đồ <C-Tab>thay vì nếu bạn thực sự muốn.

6
Ngoài ra, :n:Nliên quan đến danh sách đối số, không mở bộ đệm. Bạn muốn :bn:bp( :bnext:bprev). tpope's không có kinh nghiệm cung cấp ánh xạ ]b[bcho điều này (và những thứ tốt khác) nếu bạn muốn. (), hay <left><right>mũi tên, được cho là sẽ là chìa khóa ít hữu ích để ghi đè lên hơn tab, nếu bạn thực sự muốn có một bản đồ ngắn.
Vaz

1
@jeyoung đồng ý - nó cũng có ý nghĩa hơn khi sử dụng Ctrl + Tabvì đó là điều mà hầu hết các trình soạn thảo và trình duyệt GUI khác sử dụng.
icc97

0

Tôi muốn đề xuất một triển khai sáng chói từ một số năm trước: kien / tabman.vim . Nó làm rõ như sau:

  • Người ta có thể có nhiều bộ đệm được giấu cẩn thận, ở đâu đó;
  • Theo thiết kế, các tab có nghĩa là hiển thị bộ đệm theo những cách sáng tạo.
    • Với một số plugin tabline thích hợp, người ta có thể hiển thị tất cả các bộ đệm ẩn ở hàng trên cùng (tabline);
    • Theo kinh nghiệm của tôi với vim- air, tabline sẽ hiển thị rất ít thông tin liên quan khi tôi tạo một tab mới.
    • Hai thẻ sẽ chiếm vị trí tabline, cạnh nhau, lãng phí phần còn lại của không gian ngang
    • Tệ nhất vẫn là tôi không còn ý tưởng nào về bộ đệm bị ẩn.

Nó đã là một sự khám phá tuyệt vời của plugin ma thuật này, nó đã tồn tại trong cấu hình Vim của tôi trong một số năm tốt. Mặc dù tôi sẽ tiếp tục tìm kiếm một số thứ cũng hiển thị tất cả các bộ đệm ẩn, Tabman là siêu nhân của tôi khi nói đến việc có một cái nhìn toàn cảnh về cách các bộ đệm được sắp xếp trên các tab khác nhau.



0

Tôi tải bộ đệm "đã chọn" dưới dạng các tab để nhanh chóng chuyển đổi (TAB / S-TAB) giữa chúng. Khung không gian làm việc phù hợp ở đây vì đối với tôi, bộ đệm VS chủ yếu là điều hiển thị. Tôi có thể bật các tệp quan trọng / công việc trong cửa sổ và tab và ẩn những tệp tôi hiện không cần sử dụng trong nền mà không cần phải nhớ đường dẫn hoặc mất thời gian để tìm kiếm và tải lại chúng sau khi có nhu cầu. Điều này cho phép xử lý một số tác vụ hoặc dự án trong một phiên VIM, tôi đoán điều này từng rất quan trọng trong các máy có bộ nhớ thấp nhưng cũng tốt cho việc tập trung tất cả các tác vụ chỉnh sửa trong một khung ứng dụng. Tôi cũng có các phím tắt dịch chuyển bộ đệm được đặt thành Ctrl-Right / Left để tôi có thể nhanh chóng chuyển qua các bộ đệm khác nhau.

Tóm lại, người ta chỉ có thể chia ra một số cửa sổ để sử dụng nhiều như màn hình di động, nhưng người ta có thể giữ nhiều cài đặt cửa sổ trong một số tab để mở rộng không gian làm việc của một người và cải thiện quy trình làm việc thuận tiện cho nhiều công việc phức tạp xoay quanh nhiều tệp .

Đối với các tệp hoán đổi, bạn có thể yêu cầu VIM giữ tất cả chúng trong một thư mục chỉ định của bạn. Đối với việc sử dụng này :set directory.

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.