2013-06-11 32 views
6

Tôi cần phải nhảy qua lại giữa hai tệp trong Vim.Trong Vim cách nhảy giữa hai tệp

Tôi có thể thực hiện việc này theo cách thủ công dưới dạng :e file1.txt theo sau là :e file2.txt. Có lối tắt để chuyển trực tiếp đến tệp đã mở trước đó không?

Lưu ý: Tôi không muốn mở hai tệp trong cửa sổ phân tách hoặc nhiều tab.

Tôi đang tìm một cái gì đó giống như [ctrl + o], chỉ nhảy nên để tập tin trước đó, không phải vị trí trước đó trong cùng một tập tin

nhờ cho bất kỳ gợi ý

Trả lời

8

Sử dụng <C-^> hoặc <C-6>.

Từ :h ctrl-^:

Edit the alternate file. Mostly the alternate file is 
the previously edited file. This is a quick way to 
toggle between two files. It is equivalent to ":e #", 
except that it also works when there is no file name. 

If the 'autowrite' or 'autowriteall' option is on and 
the buffer was changed, write it. 
Mostly the^character is positioned on the 6 key, 
pressing CTRL and 6 then gets you what we call CTRL-^. 
But on some non-US keyboards CTRL-^ is produced in 
another way. 
2

Tôi không biết một giải pháp tốt hơn, nhưng một người có thể chỉ cần thực hiện theo các bước sau:

:e file1.txt 
:e file2.txt 
: <commands commands> 
:e <UP_ARROW>/<DOWN_ARROW> to switch between the files 

Đây không phải là điều bạn đã yêu cầu, nhưng tận dụng tính năng tự động hoàn tất.

6

Tôi không chắc mình hiểu chính xác, nhưng chỉ có hai tệp được mở có thể buffer next:bn sẽ là đủ?

+0

Điều đó thực hiện chính xác những gì tôi đang tìm kiếm. Cảm ơn. –

3

Đây là một chủ đề của tập tin và quản lý bộ đệm. Bạn có thể kiểm tra các tài liệu liên quan. Tôi đưa ra một số lệnh mà bạn có thể quan tâm:

CTRL+^: chuyển đến tệp được chỉnh sửa cuối cùng trong cùng một cửa sổ.

gf: chuyển đến tệp nếu liên kết bên dưới con trỏ có thể được đặt.

:bn:bp: chuyển đến bộ đệm tiếp theo hoặc trước đó.

:n:N: chuyển đến tệp arg tiếp theo hoặc trước đó.

Và có plugin được gọi là unimpaired giúp bạn hài lòng hơn!

Nếu bạn muốn nhảy vào một tập tin như bạn muốn:

:b partial_word sau đó nhấn Tab, bạn sẽ nhận được hoàn thành tự động.

:ls rồi :b a_number để chuyển đến bộ đệm đó.

Một số plugin như bufexplorer, nerdtree rất hữu ích. Nhưng trong tình huống này, bạn có thể xem xét CtrlP, tìm kiếm tất cả các tệp rất nhanh chóng!

+0

+1. Cảm ơn. Đó là một bản tóm tắt hữu ích –

2

Nếu tôi có được quyền hỏi của bạn, đây là :e#

5

Để thực sự chuyển đổi giữa hai tập tin, sử dụng :b#: đây là tiện dụng hơn khi bạn có nhiều hơn hai tập tin mở.

Này, bạn có file1, file2, file3 nạp và muốn lật giữa 23:

  • :b file2 mở file2
  • :b file3 mở file3
  • từ giờ trở đi, :b# công tắc từ 3 đến 2 và ngược lại.

Trong tình huống này, :bn sẽ lặp qua 1, 2, 3, 1, 2, 3, ...

0

tôi sử dụng: tỷ để goto tập tin mở tiếp theo, nhưng kể từ khi tôi là lười biếng Tôi remap N vì vậy tất cả những gì tôi phải làm là một ca-n ... rất nhanh!

(Bonus câu hỏi: là gì mà^Z cho ? A: Đó là một mang sang từ ngày SCO của tôi khi tôi sẽ ngón tay béo ctrl-z và bật vi vào một công việc nền ... Tôi nên loại bỏ nó, nhưng ký ức ...)

Đây là gvimrc tôi sử dụng để tùy chỉnh Vim trên mỗi hộp Windows tôi làm việc trên:

"tùy chỉnh gvimrc " các lệnh trong này được thực hiện khi GUI được bắt đầu. "slc 2013/07/05 - mặc định (thường là c: \ program files \ Vim)

bộ cai trị

bộ tabstop = 3

bộ shiftwidth = 3

bộ expandtab

thiết nobackup

bộ backupdir = C: \ Windows \ Temp

bộ dir = C: \ Windows \ Temp

colorschem torte

bộ nohlsearch

đồ N: tỷ

đồ ZZ: xa

đồ^Z: Không Jobs. ..Không được sử dụng trong Vim ...

cú pháp trên

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