Bagaimana cara menampilkan nama file yang saat ini saya edit dengan vim pada judul terminal?


20

Saya mengedit beberapa file yang terletak di folder yang sama, di banyak tab, pada satu terminal.

pwd(direktori di mana saya saat ini bekerja) ditampilkan di bagian atas judul terminal, tetapi bukan nama file yang saya edit. Itu jadi membingungkan ketika bekerja dengan banyak file dalam direktori yang sama.

Cara menampilkan nama file saat ini di bagian atas terminal selain pwd.

Saya menjalankan vimbash shell di gnome-terminal, pada 12,04 LTS.


1
Mengedit menggunakan editor apa? Di shell yang mana? Emulator terminal mana?
terdon

@terdon - Editing menggunakan Vim, bash Shell, xterm emulator
malhar

2
Harap edit pertanyaan Anda untuk menambahkan info tambahan, sulit dibaca dan mudah terlewatkan dalam komentar. Anda kemudian dapat melakukan ping pengguna yang meminta informasi dengan meninggalkan komentar dan memasukkan @sebelum nama pengguna mereka. Misalnya, untuk ping saya: @terdon.
terdon

xtermtidak memiliki tab. Apakah Anda yakin ini xterm? echo $TERMbiasanya tidak mengembalikan nama terminal emulator Anda jika itu yang Anda lakukan.
terdon

@terdon Ya, saya memang menggunakan echo $ TERM. ini menghasilkan "xterm". Saya menggunakan terminal default 64 bit ubuntu 64,04 LTS. Apakah ada cara lain untuk memeriksa detail emulator.
malhar

Jawaban:


13

Anda harus memiliki / membuat file bernama .vimrcdi direktori home Anda dengan kode di dalam:

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

masukkan deskripsi gambar di sini

Sumber: gnome-terminal tidak memungkinkan untuk mengubah judul


Untuk membuat ^ [, yang merupakan pelarian, Anda harus memasukkan CTRL + V <Esc>
tinmarino

8

Jawaban saat ini (diterima) tidak berfungsi jika Anda mengganti file / buffer dalam salah satu sesi vim Anda. Judul tidak akan diperbarui.

Berikut ini adalah cukup untuk memiliki judul secara otomatis diperbarui di gnome-terminal juga ketika Anda beralih file dengan menggunakan :e foo.txt, :b0, :b#, dll

Cukup letakkan ini di ~/.vimrcfile Anda :

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

Sistem: Ubuntu 14.10, vim 7.4.273, gnome-terminal 3.6.2-0ubunt.


Tidakkah seharusnya set titleberada di jalur yang sama |?
Victor Sergienko

Terkait dengan pertanyaan: untuk mengembalikan judul setelah keluar vim, tambahkan set titleold=ke .vimrc.
Victor Sergienko

5

Cukup tambahkan

set title

untuk Anda ~/.vimrc.

Contoh judul: testfile (~ / Documents) - VIM


1
Itulah satu-satunya jawaban yang bekerja untuk saya dan yang paling singkat.
user10089632

1

Anda dapat menambahkan nama file yang sedang Anda edit di tab dengan cara berikut:

  1. buka Menu di atas terminal. Terminal-> Set Title-> Di sini Anda menambahkan nama file yang sedang Anda edit

misal ketika Anda membuka terminal, judul terminal hanya menunjukkan "~". pwd shows / home / xxx /

Misalkan di lokasi ini, Anda mengedit file ABC.cpp, Anda dapat mengatur judul tab menjadi "~ / ABC.cpp" dengan menambahkan "/ABC.cpp" di bidang Set Title.

Demikian pula, Anda dapat mengulangi ini untuk tab lain juga.


4
Dan Anda akan melakukan perubahan ini setiap kali ketika Anda mengedit file lain? Kedengarannya menyakitkan ...
Radu Rădeanu

0

Ini juga mengubah judul jendela jika Anda mengganti nama buffer:

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

Menempatkan perintah dalam grup menghindari mengeksekusi perintah beberapa kali saat sumber vimrclebih dari sekali.

Ini berfungsi baik dengan vim-kasim yang memungkinkan Anda mengubah nama file menggunakan :Rename.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.