Làm cách nào để hiển thị tên của tệp mà tôi hiện đang chỉnh sửa với vim trên tiêu đề đầu cuối?


20

Tôi đang chỉnh sửa nhiều tệp nằm trong cùng một thư mục, trong nhiều tab, trên một thiết bị đầu cuối.

pwd(thư mục mà tôi hiện đang làm việc) được hiển thị trên đỉnh của tiêu đề của thiết bị đầu cuối, nhưng không phải tên của tệp tôi đang chỉnh sửa. Nó gây nhầm lẫn khi làm việc với nhiều tệp trong cùng một thư mục.

Cách hiển thị tên của tệp hiện tại trên đỉnh của thiết bị đầu cuối ngoài pwd .

Tôi đang chạy vimtrong bash shell gnome-terminal, vào ngày 12.04 LTS.


1
Chỉnh sửa bằng trình soạn thảo gì? Trong vỏ nào? Trình giả lập thiết bị đầu cuối nào?
terdon

@terdon - Chỉnh sửa bằng Vim, bash Shell, trình giả lập xterm
malhar

2
Vui lòng chỉnh sửa câu hỏi của bạn để thêm thông tin, rất khó đọc và dễ bỏ lỡ trong các bình luận. Sau đó, bạn có thể ping người dùng đã yêu cầu thông tin bằng cách để lại nhận xét và bao gồm cả @trước tên người dùng của họ. Ví dụ: để ping tôi : @terdon.
terdon

xtermkhông có tab. Bạn có chắc chắn đây là xterm? echo $TERMthường không trả về tên của trình giả lập thiết bị đầu cuối của bạn nếu đó là những gì bạn đã làm.
terdon

@terdon Có, tôi đã sử dụng echo $ HẠN. nó xuất ra "xterm". Tôi đang sử dụng thiết bị đầu cuối mặc định 64 bit ub Ubuntu 12.04 LTS. Có cách nào khác để kiểm tra chi tiết về trình giả lập.
malhar

Câu trả lời:


13

Bạn phải có / tạo một tệp có tên .vimrctrong thư mục chính của bạn với mã sau đây:

let &titlestring = $USER . "@" . hostname() . " " . expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif

nhập mô tả hình ảnh ở đây

Nguồn: gnome-terminal không cho phép thay đổi tiêu đề


Để tạo ^ [, đó là lối thoát, bạn cần nhập CTRL + V <Esc>
tinmarino

8

Câu trả lời hiện tại (được chấp nhận) không hoạt động nếu bạn chuyển đổi tập tin / bộ đệm trong một trong các phiên vim của bạn. Tiêu đề sẽ không được cập nhật.

Sau đây là đủ để có tiêu đề tự động cập nhật trong gnome-terminal cũng có khi bạn chuyển đổi các file bằng cách sử dụng :e foo.txt, :b0, :b#vv

Chỉ cần đặt nó trong ~/.vimrctập tin của bạn :

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

Hệ thống: Ubuntu 14.10, vim 7.4.273, gnome-terminal 3.6.2-0ubunt.


Không nên set titleở trên cùng một dòng, sau |?
Victor Sergienko

Liên quan đến câu hỏi: để khôi phục tiêu đề sau khi thoát vim, hãy thêm set titleold=vào .vimrc.
Victor Sergienko

5

Đơn giản chỉ cần thêm

set title

để của bạn ~/.vimrc.

Tiêu đề ví dụ: testfile (~ / Documents) - VIM


1
Đó là câu trả lời duy nhất có hiệu quả với tôi và là câu trả lời ngắn nhất.
dùng10089632

1

Bạn có thể nối thêm tên của tệp bạn đang chỉnh sửa vào tab theo cách sau:

  1. đi đến Menu trên cùng của thiết bị đầu cuối. Terminal-> Đặt tiêu đề-> Tại đây bạn thêm tên của tệp bạn đang chỉnh sửa

ví dụ: khi bạn mở thiết bị đầu cuối, tiêu đề của thiết bị đầu cuối chỉ hiển thị "~". chương trình pwd / nhà / xxx /

Giả sử tại vị trí này, bạn đang chỉnh sửa tệp ABC.cpp, bạn có thể đặt tiêu đề của tab thành "~ / ABC.cpp" bằng cách thêm "/ABC.cpp" vào trường Đặt tiêu đề.

Tương tự, bạn cũng có thể lặp lại điều này cho các tab khác.


4
Và bạn sẽ thực hiện những thay đổi này mỗi khi bạn chỉnh sửa một tập tin khác? Nghe có vẻ đau đớn ...
Radu Rădeanu

0

Điều này cũng thay đổi tiêu đề cửa sổ nếu bạn đổi tên bộ đệm:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

Đặt lệnh trong một nhóm sẽ tránh thực thi lệnh nhiều lần khi tìm nguồn cung ứng vimrcnhiều lần.

Điều này hoạt động độc đáo với vim-eunuch cho phép bạn đổi tên một tệp bằng cách sử dụng :Rename.

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.