Cách mở tệp trong các cửa sổ chia theo chiều dọc / ngang trong Vim từ dòng lệnh


400

Phải có một cách, một cái gì đó như thế này:

vim -[option] <file-list>

để mở file từ dấu nhắc lệnhkhông từ bên trong Vim.

  • chia cửa sổ theo chiều dọc hoặc / và theo chiều ngang
  • trong các tab riêng biệt

Câu trả lời:


389

Tôi giả sử bạn có nghĩa là từ dòng lệnh. Từ vim --help:

-o[N]                Open N windows (default: one for each file)
-O[N]                Like -o but split vertically

Vì vậy, gõ này để mở các tệp được chia theo chiều ngang, ví dụ:

vim -o file1.txt file2.txt file3.txt

14
Có thật không? Tôi chưa bao giờ phải cung cấp một N.
Cascabel

3
Thật vậy, nó dường như là một cái gì đó trong .vimrc của tôi gây ra rắc rối. Nếu tôi di chuyển nó sang một bên, -o mà không có N hoạt động như tài liệu.
Laurence Gonsalves

22
-ogiống như :split, -Ogiống như:vsplit
Evgeni Sergeev

@Cascabel -whatever[N]có nghĩa Nlà tùy chọn và có thể được bỏ qua, tôi tin rằng nó xuất phát từ cú pháp ebnf
user3338098

@ user3338098 Tôi nghĩ rằng có thể đã có một bình luận bị xóa ở đây; Nhận xét "Thật vậy ..." của Laurence ngụ ý rằng nó đã gây ra vấn đề khi bị bỏ qua.
Cascabel

441

Ctrl+ W, S(chữ hoa) để chia ngang

Ctrl+ W, v(chữ thường) để chia dọc

Ctrl+ W, Qđể đóng một

Ctrl+ W, Ctrl+ Wđể chuyển giữa các cửa sổ

Ctrl+ W, J(Xor K, H, L) để chuyển sang cửa sổ liền kề (bằng trực giác lên, xuống, trái, phải)


10
Để chuyển đổi màn hình, Bấm Ctrl-wvà sau đó up arrowhoặc down arrowđể chuyển đổi màn hình.
Eric Leschinski

7
@EricLeschinski, tôi thích ctrl+w ctrl+wđạp xe qua các cửa sổ vì các phím mũi tên cảm thấy hơi chống vi
Lucas

6
Ah nhưng bạn có thể sử dụng các chuyển động vim thông thường, ví dụ ctrl+w jđể nhảy đến bộ đệm bên dưới bộ đệm hiện tại.
mitjak

4
:qcũng đóng cửa sổ
Alexandre Bour trước

1
Ctrl + w để chuyển đổi các cửa sổ dường như không hoạt động trên thiết bị đầu cuối mac. Ctrl + w, w làm mặc dù
slashdottir

325

Trong khi chạy vim:

  1. :sp filename cho một phân chia ngang
  2. :vsp filenamehoặc :vs filenamecho một phân chia dọc

61
Điều này không trả lời câu hỏi được nêu ra ... nhưng nó đã giúp tôi hiểu: D Cảm ơn!
Abel

1
Rất cám ơn cho nó. Đó chính xác là những gì tôi cần nó!
mapcuk

7
cảm ơn, chỉ là những gì tôi đang tìm kiếm. Tôi cũng vậy:set splitright
zack

4
ctrl-ww để chuyển đổi giữa các phần tách
Nerrve

:vsplit filenamegiống như :vsp filename:vs filename, nhưng có lẽ dễ nhớ hơn đối với một số người
b_dev

21

một mẹo thú vị khác là đối số CLI -p - mở chúng trong các tab riêng cho các phiên bản gần đây của vim và gvim.

gvim -p file1.txt file2.txt

1

Một mẹo hữu ích khác mà tôi vừa tìm ra, đó là bạn có thể sử dụng các ký tự đại diện trong filelist để mở nhiều tệp. Giả sử bạn muốn mở file1.txt, file2.txt và file3.txt trong các tab riêng biệt nhưng không cảm thấy như gõ tất cả những gì bạn có thể làm:

vim -p file*

Tôi thường xuyên thấy mình cần phải mở rất nhiều tệp có tiền tố tương tự và điều này khá hữu ích


12
Điều đó không liên quan đến chính Vim nhưng với lớp vỏ bạn đang sử dụng. Nó là vỏ mở rộng ảm đạm.
Kazark
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.