Tên hiển thị của tập tin hiện tại trong vim?


157

Làm thế nào để bạn hiển thị tên tệp của tệp bạn đang làm việc trong vim?


1
Nếu thiết bị đầu cuối của bạn được thiết lập chính xác, bạn sẽ nhận được tên tệp trong tiêu đề cửa sổ.
Cascabel



2
ctrl + g có thể hiển thị thông tin tệp
Dhiren Hamal

Câu trả lời:


200

:f( :file) sẽ làm tương tự như <C-G>. :f!sẽ đưa ra một phiên bản chưa được đánh dấu, nếu có.


2
Đẹp, nhưng có thể hiển thị nó trong thanh trên cùng của thiết bị đầu cuối? (hoặc terminator) hoặc một nơi nào đó mà không cần gõ lệnh.
eMarine

21
:f!không phải lúc nào cũng hoạt động, nhấn 1, sau đó Ctrl-G để có đường dẫn đầy đủ.
ives

1
Làm thế nào về một con đường đầy đủ? Khi tôi bắt đầu vim từ ~/dev/file.pyvà thực thi :ftrong vim, tôi nhận file.pylàm đầu ra thay vì ~/dev/file.py.
gxyd

1
@ives 1 và Ctrl + g có nghĩa gì riêng biệt?
jobima

2
@jobima: nó sửa đổi ctrl-gđể trả về đường dẫn + tập tin. :fsẽ trả về tên tệp mà không có đường dẫn ctrl-g. Một 1trước ctrl-gsẽ hiển thị đường dẫn & tên (không nhất thiết phải mở rộng mặc dù). tức là nó sẽ hiển thị ~/dev/file.pythay vì file.py. 2tiếp theo ctrl-gsẽ bao gồm bộ đệm nào : buf 1: "~/dev/file.py".
ives

71

ctrl+ gsẽ làm điều đó.

Ngoài ra, tôi muốn có:

set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"

Sản xuất:

foo.c [C] [0x23] <code / foo.c 1, 1 2% của 50

Ngoài ra, như ai đó đã đề cập (nhưng hiện đã bị xóa) %sẽ được thay thế bằng tên tệp hiện tại. Ví dụ:

:! echo "tệp hiện tại:%"
tập tin hiện tại: foo.c
Nhấn ENTER hoặc gõ lệnh để tiếp tục

2
Những gì [C][0x23]các bộ phận có nghĩa là gì?
LangeHaare

@LangeHaare Giá trị Filetype và hex của ký tự theo con trỏ tương ứng

'statusline'là một chuỗi, nhưng bạn không bao gồm các trích dẫn trong tập hợp: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linescũng cần các khoảng trắng được thoát
D. Ben Knoble 13/07/19

18

đặt dòng trạng thái. thêm thông tin với:help statusline

Các lệnh này có thể đi vào tệp .vimrc của bạn hoặc bạn có thể nhập chúng dưới dạng các lệnh trong khi ở vim bằng cách nhập ':' trong chế độ lệnh.

Đầu tiên, đặt trạng thái cuối cùng thành 2 bằng cách sử dụng như sau:

set laststatus=2

Sau đó đặt dòng trạng thái thành% f cho tên tệp ngắn.

set statusline=%f

Đối với đường dẫn đầy đủ đến tệp, sử dụng% F.


E518: Tùy chọn không xác định:% f
Isius

Tôi đã cập nhật câu trả lời, Isius. Hy vọng rằng làm cho nó rõ ràng hơn.
Brian Clements

5

:set title để hiển thị tên tập tin trong thanh tiêu đề cửa sổ.


5

Sao lại phức tạp thế? Control-G sẽ thực hiện công việc


4

Để hiển thị đường dẫn đầy đủ cho bất kỳ tệp nào, bao gồm các liên kết tượng trưng được giải quyết, hãy sử dụng như sau.

:echo resolve(expand('%:p'))

Điều này có thể được thêm vào thanh trạng thái của bạn bằng cách thêm dòng dưới đây vào ~./vimrc

set statusline +=%{resolve(expand('%:p'))}\ %*

2

Một trong những gợi ý trên phải được đổi thành

set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines

để làm cho nó hoạt động. Cũng thế

set laststatus=2

đã được dùng.


Chào mừng bạn đến với Stack Overflow ! Đây có lẽ nên là một chỉnh sửa hoặc nhận xét được đề xuất cho (các) câu trả lời có liên quan, bạn không có đủ danh tiếng để bình luận hoặc chỉnh sửa, nhưng bạn sẽ sớm làm được nếu bạn đặt câu hỏi hay và viết câu trả lời hay! Trong khi đó, tôi sẽ đề xuất các bản sửa lỗi có liên quan cho các tác giả của câu trả lời. Nắm bắt tốt!
D. Ben Knoble

1

Tôi sử dụng tuyệt vời vimrctừ amix: https://github.com/amix/vimrc

Nó sử dụng lightline.vimphích cắm và hiển thị tên tệp trên thanh trạng thái.

Điều tuyệt vời khi sử dụng amix/vimrclà plugin này đảm nhiệm hầu hết các tùy chỉnh, rất ổn định và đã được 1000 người thử nghiệm, vì bạn có thể kiểm tra bằng cách xem số lượng sao github .. và các vấn đề không thường xuyên.

Nó cũng được cập nhật khá thường xuyên.

PS: không phải là tác giả của một trong hai plugin .. chỉ là một người hâm mộ :)


1

Tôi cũng cần phải đặt cái này trong tệp .vimrc của mình:

set noruler
set laststatus=2

Sau đó, tôi có thể đặt một cái gì đó giống như set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"trong tệp .vimrc của mình và sau khi khởi động lại thiết bị đầu cuối của mình, dòng trạng thái hiển thị đúng.


'statusline'là một chuỗi, nhưng bạn không bao gồm các trích dẫn trong tập hợp: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linescũng cần các khoảng trắng được thoát
D. Ben Knoble 13/07/19
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.