Tmux sekmelerini vim'de düzenlenen dosyanın adıyla nasıl etiketleyebilirim?


14

Terminalde bir tmux oturumu açtığımda, vim oturumları içeren tüm sekmeler etiketlenir vim.

Benim sorum: tmux sekmelerini düzenlenmiş dosyanın adıyla veya vim | test.cppsöz konusu sekmelerin başlığı olarak kullanılan bir şeyle etiketlemek için nasıl yapılandırılır .


1
bu yardımcı olabilir: stackoverflow.com/a/15124717/2558252 ?
nobe4

bunun için teşekkürler ama süreci biraz ayrıntılı olarak açıklayabilir misiniz? Üstelik cevap tam değil. Adam yeni bir ipucu verdi
Mayukh Sarkar

soru cevaplandığı gibi (ve IMHO doğru) bunu kabul edebilir misiniz?
nobe4

Yanıtlar:


19

İşte böyle:

autocmd BufReadPost,FileReadPost,BufNewFile,BufEnter * call system("tmux rename-window 'vim | " . expand("%:t") . "'")

Ayrıştırma:

autocmd BufReadPost,FileReadPost,BufNewFile,BufEnter * call

Tampon okumada, dosya okuma veya tamponlama yeni dosya olayı (bkz. :help autocmd-events) Sonraki komutu yürütün:

call system()

Bir sistem işlevini çağırın ve metni iletin:

"tmux rename-window 'vim | "  

Geçerli pencereyi ile başlayan bir dize ile yeniden adlandırma vim |

. expand("%:t") 

Dizeye dosya adı ekleme (bkz bu yazıyı biçimlendirme için ve bu yayını insert genişletmek için)

. "'"

'Komutu kapatmak için finali ekleyin .

Genişlettikten sonra (.vimrc dosyasını düzenlerken) şöyle görünecektir:

system("tmux rename-window 'vim | .vimrc'")

@Erthalion'un yorumda söylediği gibi, vim'den ayrılırken aşağıdakileri temizleyebilirsiniz:

autocmd VimLeave * call system("tmux rename-window 'tmux'")

1
BufEnterOlayı bu listeye dahil etmenin güzel olacağını düşünüyorum (mevcut arabellekler arasında geçiş yaptığımızda bile etiketi değiştirmek için) ve autocmd VimLeave * call system("tmux rename-window 'tmux'")temizlik için böyle bir şey .
erthalion

3

Vim'den çıkarken varsayılan tmux adlandırma düzenini geri yüklemek için şunları da yapabilirsiniz:

autocmd VimLeave * call system("tmux setw automatic-rename")

Bu uyum içinde kullanılan diğer cevap ile en iyi çözümü sağlar. Tmux yeniden adlandırma penceresi snippet'ini her yerde gördüm, ancak bu ilk kez otomatik yeniden adlandırma tmux pencere seçeneğini işaret etti. Teşekkür ederim.
f3xy

1

@Raphael'in cevabı sayesinde vimrc'ime koyduğum şey bu

Ayrıca FocusGained ve FocusLost olayları için tmux-plugins / vim-tmux-focus-events eklentisini de yükledim.

augroup tmux                                                                                                                                                                                                                                                                                                                 
  autocmd!                                                                                                                                                                                                                                                                                                                 
  if exists('$TMUX')                                                                                                                                                                                                                                                                                                       
    autocmd BufReadPost,FileReadPost,BufNewFile,FocusGained * call system("tmux rename-window " . expand("%:t"))                                                                                                                                                                                                         
    autocmd VimLeave,FocusLost * call system("tmux set-window-option automatic-rename")                                                                                                                                                                                                                                  
  endif                                                                                                                                                                                                                                                                                                            
augroup END
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.